1

我有一个“浏览器”库,它定义了一些 React 组件,我想从 HTML 页面(从 Rails 应用程序提供)加载这些组件,然后实例化 React 组件,由 Rails 放入页面内的一些数据提供。

(总体情况是:我们有一个 TurboLinks 应用程序,我们希望将一些 React 组件用于非常特定的部分,需要更多
的反应性。Rails 页面将加载 React 运行时和所需的应用程序组件库,然后生成最少的原始JS 根据需要实例化 React 组件)

我发现的只是将外部库变量公开给我的库的方法,但我想将我的变量公开给全局浏览器范围。

我最终以一种相当丑陋的方式(window.Stuff = Stuff;)直接从.jsx源文件中导出类,但我觉得这段代码很臭......

有什么更好的方法来实现这样的事情吗?

4

1 回答 1

2

在您的 browserify 包中公开模块,例如:

browserify()
  .require('./whatever', {expose: 'whatever'})

然后从 Rails 页面 JS:

require('whatever');

或者:

创建一个独立的 browserify 包,如下所示:

browserify('./entry', {standalone: 'something'})

entry.js

module.exports = {
  whatever: require('./whatever')
};

然后从 Rails 页面 JS:

window.something.whatever;
于 2015-09-01T14:29:21.277 回答