关于javascript:什么是’require’函数是ReactJS?

what is 'require' function is ReactJS?

以下面的示例代码为例。

1
2
3
4
5
6
7
require('react-bootstrap-datetimepicker');

...

render: function() {
  return <DateTimeField />;
}

DataTimePicker是一个第三方库,可以在我自己的代码中使用,但是如果我在JS中添加一段代码,Firebug会告诉我找不到这个需求。我应该翻译这段代码还是做点什么?非常感谢


require函数旨在向当前作用域添加单独的代码段("模块"),在ES2015规范之前,该功能不是javascript/ecmascript语言的一部分。

因此,这个函数不特定于reactjs,也不属于该语言的一部分,这就是为什么当您试图在普通浏览器环境中使用它时,firefox会抛出一个错误的原因。

使用require同步加载模块通常是名为commonJS的方法的一部分(有关模块格式的更多信息,请参阅此答案)。虽然node.js等环境提供了类似于此规范的模块API,但浏览器不提供;因此您必须自己携带该函数。

这样做有很多选择,您可以选择最适合您的工作流程和个人品味的方案。但总的来说,这些模式可以归结为:

  • 在浏览器中显式使用模块加载程序:使用标记,携带一个加载程序(如systemjs)并立即使用它加载您自己的代码。
  • 将代码绑定到单个脚本:使用bundler(如browserify、webpack或jspm)并使用单个标记加载结果。邦德勒带来了自己的模块加载器。

通常,第二个选项更针对生产环境,而第一个选项在开发环境中更实用。


你可以的

1
npm install -g requirejs

然后

1
var requirejs = require('requirejs');