【发布时间】:2017-09-24 21:22:34
【问题描述】:
我无法在 reactjs 中使用 npm 配置 pusher 和 fetch。另外,有没有办法在你的 react 代码中使用 cdn?
【问题讨论】:
标签: reactjs
我无法在 reactjs 中使用 npm 配置 pusher 和 fetch。另外,有没有办法在你的 react 代码中使用 cdn?
【问题讨论】:
标签: reactjs
您可以使用 react-async-script-loader 作为高阶组件:https://github.com/leozdgao/react-async-script-loader
只需通过 npm 安装即可:
npm install --save react-async-script-loader
然后导入它并使用 scriptLoader 扩展需要 cdn javascripts 的组件,为其提供您希望包含在组件中的 url。
import scriptLoader from 'react-async-script-loader';
// Your component code:
class YourComponent extends React.Component {
render() {
return <p>{
this.props.isScriptLoadSucceed ? 'Scripts loaded.' : 'Loading...'
}</p>;
}
}
export default scriptLoader([
'https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.5/marked.min.js'
])(YourComponent);
这样,文件只会加载到您真正需要的地方。加载后,它们不会再次被包含(如果您更新组件)。
如果您喜欢装饰器 (ES7) 语法而不是 HOC 实现,它也可以工作,这在项目 README 中有记录。
【讨论】:
最后我想出了一个非常简单的答案
安装 npm pusher-js、es6-promise 和 isomorphic-fetch 并将其导入为
var Pusher=require('pusher-js');
var fetch=require('isomorphic-fetch');
require('es6-promise').polyfill();
【讨论】: