什么是'require'函数是ReactJS?

lia*_* xu 5 javascript reactjs

以下面的示例代码为例。

require('react-bootstrap-datetimepicker');

...

render: function() {
  return <DateTimeField />;
}
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*don 7

require函数旨在将单独的代码段 (\xe2\x80\x9cmodules\xe2\x80\x9d) 添加到当前作用域,该功能在 ES2015 规范出现之前并不是 JavaScript/ECMAScript 语言的一部分

\n\n

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

\n\n

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

\n\n

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

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

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

\n