Javascript 如何使用添加到react JS的外部脚本?
我想在我的react组件a中添加Javascript 如何使用添加到react JS的外部脚本?,javascript,reactjs,Javascript,Reactjs,我想在我的react组件a中添加 http://xxx.xxx/XX.js 我知道我可以简单地使用JSX添加它,但我不知道如何使用它 例如,此脚本有一个名为a.Sort()的函数,如何从组件调用和使用它?您可以在/public/index.html中包含该标记,然后在普通JS代码中使用该脚本,例如,如果您想使用jQuery: 在public/index.html中包括以下内容: <script src="https://ajax.googleapis.com/ajax/libs/jquer
http://xxx.xxx/XX.js
我知道我可以简单地使用JSX添加它,但我不知道如何使用它
例如,此脚本有一个名为a.Sort()的函数,如何从组件调用和使用它?您可以在/public/index.html中包含该标记,然后在普通JS代码中使用该脚本,例如,如果您想使用jQuery: 在public/index.html中包括以下内容:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
您可以通过添加所需的脚本来修改index.html文件(如果正在使用)
或者,如果您无法编辑或不使用它,则有一组附加组件可以解决此问题,例如,您可以异步加载脚本并在加载时访问它
componentDidMount() {
const script = document.createElement("script");
script.src = "/static/libs/your_script.js";
script.async = true;
script.onload = () => this.scriptLoaded();
document.body.appendChild(script);
}
它应该连接到窗口
scriptLoaded() {
window.A.sort();
}
或
有时我们需要使用外部js库,在这种情况下,我们需要将脚本标记插入到组件中,但在react中,我们使用jsx,因此我们不能像在HTML中添加脚本标记那样直接添加脚本标记 在本例中,我们将看到如何将外部脚本文件加载到头部、主体元素或组件中
componentDidMount() {
const script = document.createElement("script");
script.async = true;
script.src = "https://some-scripturl.js";
script.onload = () => this.scriptLoaded();
//For head
document.head.appendChild(script);
// For body
document.body.appendChild(script);
// For component
this.div.appendChild(script);
}
将此脚本添加到index.html后
<script>http://xxx.xxx/XX.js</script>
我认为这可能是最简单的方法。请记住,您必须在函数的左侧写入“窗口”。您可以使用npm 步骤1:npm i反应头盔 步骤2:
<Helmet>
<script src="/path/to/resource.js" type="text/javascript" />
</Helmet>
您是否尝试过使用类似于从“我的js脚本”导入的东西导入它代码>它的外部脚本,来自web,我不能像你提到的那样导入它..所以文件来自CDN?它的可能副本不是副本,问题与CDN无关:脚本来自何处并不重要,问题是如何在脚本中调用函数。为什么要引用jQuery?我引用jQuery作为引用外部JS的示例,以展示如何包含和使用JS文件啊!我明白了,对不起,我没有得到你的上下文。这对我不好,因为我想动态添加它,而不是硬编码它。。所以我必须在组件内部使用它…如果您的外部脚本需要包含在标题中,您可以使用React头盔动态管理进入index.html页面标题的内容好的,React load脚本似乎可以工作,但在我加载它之后,如果我使用react load script加载脚本,如何使用脚本中的函数?如前所述,例如,使用脚本中的函数A.sort(),我不确定这是否是在ReactJS中加载外部脚本的最佳方法?您是否测试过使用CDN将脚本添加到index.html或在组件中执行的操作的性能?您节省了时间!window.A
引用是指什么?每次在我的loaded
函数中调用它时,我都会得到一个运行时错误无法读取未定义的属性“sort”
@GROVER。是一个加载的模块,它将自身附加到窗口对象。A仅用于说明目的。
<script>http://xxx.xxx/XX.js</script>
window.A.sort();
<Helmet>
<script src="/path/to/resource.js" type="text/javascript" />
</Helmet>