【问题标题】:what is 'require' function is ReactJS?什么是'require'函数是ReactJS?
【发布时间】:2015-12-13 22:10:30
【问题描述】:

以下面的示例代码为例。

require('react-bootstrap-datetimepicker');

...

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

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

【问题讨论】:

  • JS 生态系统有几个相互竞争的模块系统,其中一些可以运行,一些需要预处理。例如,此特定示例将与 Browserify 工作流程一起使用,其中 Browserify 会将您的所有 JS 文件“编译”为一个。

标签: javascript reactjs


【解决方案1】:

你可以做到

npm install -g requirejs

然后

var requirejs = require('requirejs');

【讨论】:

    【解决方案2】:

    require 函数旨在将单独的代码片段(“模块”)添加到当前作用域,该功能在 ES2015 specification 之前不是 JavaScript/ECMAScript 语言的一部分。

    因此,此函数不是特定于 ReactJS,也不是该语言的一部分,这就是当您尝试在 vanilla 浏览器环境中使用它时 Firefox 抛出错误的原因。

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

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

    • 在浏览器中显式使用模块加载器:使用&lt;script&gt;标签,带上SystemJS之类的加载器,立即用它来加载你自己的代码。
    • 将您的代码捆绑到单个脚本中: 使用诸如 BrowserifyWebpackJSPM 之类的捆绑器,并使用单个 &lt;script&gt; 标记加载结果。打包器自带了自己的模块加载器。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 2023-03-13
      • 2016-07-06
      • 1970-01-01
      • 2021-03-03
      • 2019-08-08
      • 1970-01-01
      相关资源
      最近更新 更多