以下面的示例代码为例。
require('react-bootstrap-datetimepicker');
...
render: function() {
return <DateTimeField />;
}
datatimepicker是第三方库,可以在我自己的代码中使用,但是如果我在js中添加这段代码,firebug会告诉我找不到require。如果我应该翻译这段代码或做些什么?非常感谢
以下面的示例代码为例。
require('react-bootstrap-datetimepicker');
...
render: function() {
return <DateTimeField />;
}
datatimepicker是第三方库,可以在我自己的代码中使用,但是如果我在js中添加这段代码,firebug会告诉我找不到require。如果我应该翻译这段代码或做些什么?非常感谢
该require
函数旨在向当前作用域添加单独的代码段(“module”),该功能在ES2015 规范之前不是 JavaScript/ECMAScript 语言的一部分。
因此这个函数不是ReactJS 特有的,也不是语言的一部分,这就是为什么当你尝试在普通浏览器环境中使用它时 Firefox 会抛出错误。
使用require
同步加载module通常是称为 CommonJS 的方法的一部分(有关module格式的更多信息,请参阅此答案)。虽然 Node.js 等环境提供了与此规范类似的module API,但浏览器没有;所以你必须自己带这个功能。
这样做有很多选择,您可以选择最适合您的工作流程和个人品味的选择。但总的来说,模式归结为:
<script>
标签,带上SystemJS等加载器,并立即使用它来加载您自己的代码。<script>
标签加载结果。捆绑器带来了自己的module加载器。一般来说,第二个选项更针对生产环境,而第一个选项在开发环境中更实用。
你可以做
npm install -g requirejs
然后
var requirejs = require('requirejs');