什么是'require'函数是ReactJS?

IT技术 javascript reactjs
2021-04-15 05:39:02

以下面的示例代码为例。

require('react-bootstrap-datetimepicker');

...

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

datatimepicker是第三方库,可以在我自己的代码中使用,但是如果我在js中添加这段代码,firebug会告诉我找不到require如果我应该翻译这段代码或做些什么?非常感谢

2个回答

require函数旨在向当前作用域添加单独的代码段(“module”),该功能在ES2015 规范之前不是 JavaScript/ECMAScript 语言的一部分

因此这个函数不是ReactJS 特有的,也不是语言的一部分,这就是为什么当你尝试在普通浏览器环境中使用它时 Firefox 会抛出错误。

使用require同步加载module通常是称为 CommonJS 的方法的一部分(有关module格式的更多信息,请参阅此答案)。虽然 Node.js 等环境提供了与此规范类似module API,但浏览器没有;所以你必须自己带这个功能。

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

  • 在浏览器中显式使用module加载器:使用<script>标签,带上SystemJS加载器,并立即使用它来加载您自己的代码。
  • 将您的代码捆绑到单个脚本中:使用诸如BrowserifyWebpackJSPM 之类的捆绑器,并使用单个<script>标签加载结果捆绑器带来了自己的module加载器。

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

你可以做

npm install -g requirejs

然后

var requirejs = require('requirejs');