使用CDN时使用没有'require'的库

时间:2016-11-21 09:31:32

标签: javascript reactjs browserify chart.js cdn

我想使用此Chart JS reactJs wrapper library

我正在使用library from a CDN,因为我没有为此项目设置任何模块捆绑过程。我知道我可以,但想知道如何在不使用require的情况下使用此库。我认为对于那些对一些较新的js实践仍感到有点不舒服的人来说,解释如何做到这一点的答案会很有用。

在反应包装器Chart JS示例中,您将看到它显示:

var LineChart = require("react-chartjs").Line;

var MyComponent = React.createClass({
  render: function() {
    return <LineChart data={chartData} options={chartOptions} width="600" height="250"/>
  }
});

在使用CDN时,如果没有require仍然可以为LineChart分配相同的值吗?

1 个答案:

答案 0 :(得分:2)

只需查看CDN提供的文件并自行查找。

它有这样的形式:

(function (root, factory) {
    // Do some stuff to detect the environment
    // When everything fails, just assign a global variable:

    root["react-chartjs"] = factory(root["React"], root["ReactDOM"], root["Chart"]);


})(this, function ( ... ) {
    ....
});

其中root是全局对象(浏览器中为window),factory只是一个接受依赖项并返回库的函数。

获取LineChart

window['react-chartjs'].Line

请注意factory需要ReactReactDOMChart。并假设所有这些都将以相同的方式命名为全局变量。