- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 React 组件,并使用 webpack 构建它并部署在服务器上。我想将此组件集成到 Aurelia 项目中。
我尝试使用以下 npm 模块: https://www.npmjs.com/package/aurelia-react-loader
在上面提到的模块中,组件名称需要传递到html文件中。就像示例 my-react-component.js 传递到 html 文件中一样。
但是我的 React 组件正在使用以下代码加载到 html 标签的根目录中:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render((
<App/>
), document.getElementById('root'));
运行 webpack 模块后,它会创建一个名为 index_bundle.js 文件的 JavaScript 文件。这里导入的App模块是主要的js组件。它通过 ReactDOM 渲染到根元素上的 index.html 中。
所以我不确定,如何将 React 组件链接或 url 集成到 Aurelia 应用程序中?
如果您有任何疑问,请告诉我。我可以详细解释一下。
提前致谢。哈里什
最佳答案
是的,将 React 组件集成到 Aurelia 应用程序中确实很容易。看看我的项目,我在这里做的就是:https://github.com/ashleygrant/aurelia-loves-react
我什至没有使用你提到的加载器插件。
以下是如何将第三方 React 组件包装在 Aurelia 自定义元素中:
import React from 'react';
import ReactDOM from 'react-dom';
import ReactDatePicker from 'react-datepicker';
import { noView, bindable, inject } from 'aurelia-framework';
@noView(['react-datepicker/react-datepicker.css'])
@inject(Element)
export class DatePicker {
@bindable selectedDate;
@bindable onChange;
constructor(element) {
this.element = element;
}
selectedDateChanged() {
this.render();
}
render() {
ReactDOM.render(
<ReactDatePicker
selected={this.selectedDate}
onChange={date => this.onChange({ date: date })}
/>,
this.element
);
}
// How to use native DOM events to pass the changed date
/*render() {
ReactDOM.render(
<ReactDatePicker
selected={this.selectedDate}
onChange={date => {
let event = new CustomEvent('change', { 'detail': date });
// Dispatch the event.
this.element.dispatchEvent(event);
}
}
/>,
this.element
);
}*/
}
以下是使用 Aurelia 项目一部分的自定义 React 组件时的操作方法:
import React from 'react';
import ReactDOM from 'react-dom';
import { noView, bindable, inject } from 'aurelia-framework';
import FormattedDate from '../react-components/formatted-date';
@noView()
@inject(Element)
export class ReactDate {
@bindable date;
@bindable format = 'dddd, MMMM D, YYYY';
constructor(element) {
this.element = element;
}
dateChanged() {
this.render();
}
formatChanged() {
this.render();
}
render() {
ReactDOM.render(
<FormattedDate
date={this.date}
format={this.format}
/>,
this.element
);
}
}
如您所见,这非常简单。我喜欢手动完成,而不是使用加载器,因为我可以为每个属性设置数据绑定(bind),因此它以更“Aurelia-ey”的方式工作。
关于reactjs - 我们可以将 React 组件集成到 Aurelia 项目中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46282448/
我想在 aurelia 中触发两种不同的方法,实现这一目标的最佳方法是什么? 最佳答案 我可能会做的是以下 HTML Javascript yourFunction(event, parts) {
我正在学习 Aurelia 的工作原理,并且我正在尝试让一个简单的自定义属性工作。它所做的就是根据某些值的变化来改变 div 文本的颜色。 我有一个 div,它有: high.bind="ch
我想在小型移动 Cordova 应用程序中使用 aurelia。是否可以省略任何模块加载器,如 requirejs 并直接在脚本标签中使用 aurelia 包,如 ? 谢谢, 乔治 最佳答案 您
我正在构建一个 aurelia 自定义元素库,供多个不同的 aurelia 应用程序使用,但在使用 CLI 进程将自定义元素 html 正确 Hook 到应用程序包时遇到了麻烦。 我目前认为该库将成为
我刚刚尝试了 aurelia 的入门应用程序,并注意到当在两个浏览器(chrome 和 ff)中打开时,它会保持导航同步。看起来路由器实例驻留在应用程序范围内。我在文档中没有找到任何有关范围的信息,所
Knockout JS 有虚拟元素的概念。这些是“ headless ”元素,您可以将其绑定(bind)到没有 HTML 元素作为容器的元素。这允许您在不发出外部 HTML 的容器中绑定(bind)数
最近我一直在玩不同的框架和库,寻找真正适合我需求的东西。 你看,我的工作主要涉及创建 asp.net mvc 应用程序,对于大多数使用 Razor 和一点点 jQuery 就足够了。但在某些情况下,仅
最后,我开始与 Aurelia 合作。有一个入门套件可用 Here这有助于初始化 Aurelia。但它是一个模板,应该在网站模板中使用。 我有一个预配置 WebApi项目,我想在其中使用 Aureli
在 Aurelia 从这里发布之前,我使用了启动工具包来构建我的应用程序: https://github.com/aurelia/skeleton-navigation 但是当 Aurelia 发布时
我已经使用 typescript 安装了一个全新的骨架导航,并尝试按照此处的说明进行操作: http://aurelia-ui-toolkits.github.io/demo-materialize/
我有以下按钮,我只想在满足给定条件时激活(点击启用),尽管视觉上禁用了按钮 click 事件在用户点击时仍会触发。 [更新]将 false 更改为 true 我在清理示例以在此处发布时错误地插入了错
在 aurelia 中,当在自定义元素中使用插槽时,是否可以以某种方式在插槽上使用 ref 元素(也许是 Aurelia 团队的新功能?github 问题据说是在 SO 而不是在 github 上发布
我正在为我的项目使用 Aurelia,现在我在导航到上一页时遇到问题。我想知道有什么方法可以从 Aurelia 路由器对象获取以前的路由器信息。 this.router.navigateToRoute
我正在寻找一种将类动态添加到 aurelia 模板的方法。如果特定的 li 可见,我必须添加一个事件类。 例子 {{title}}
我已经向我的路由器添加了授权管道步骤。一切正常,但是当我使用 Redirect 时类来将用户指向登录页面,它接受一个 URL 作为它的参数。如果我使用 Router.navigateToRoute()
我在将属性传递到自定义组件时遇到了一些问题。我尝试通过以下方式声明我的组件: import {customElement, bindable} from "aurelia-framework";
{ route: 'content/:id', name: 'Details', title: 'Details', viewPorts
我正在处理 Aurelia Sample app并希望将构建输出(vendor-bundle.js 和 app-bundle.js)部署到 www-root\scripts而不是默认 scripts目
我正在尝试创建一个简单的 Aurelia 可重用小部件,它封装了一个标签和一个文本输入字段。我们的想法是创建一个包含这些可重用 UI 小部件的库,以便更轻松地组合屏幕和表单——或许可以从“Angula
我正在尝试在复选框列表上使用去抖动绑定(bind)行为,但它似乎没有按我预期的方式工作(我不确定你是否可以去抖动复选框): Checkbox value "${v}" 单击任何复选框会导致
我是一名优秀的程序员,十分优秀!