我有一个项目,我正在使用CDN加载脚本。我直接通过useEffect
在我的组件中加载它。简化代码:
React.useEffect(() => {
const script = document.createElement('script');
script.src = "https://cdn.cubing.net/js/cubing/twisty";
script.type= "module";
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
}
}, []);
return (
<twisty-player>
</twisty-player>
)
Twisty-player是来自脚本的自定义HTML标记(它不是react组件)。它的文档在这里:https://js.cubing.net/cubing/twisty/
我有几个问题
1.这段代码对我来说是有效的,但我不明白为什么,因为我们没有等待任何东西。我在加载脚本后立即渲染了twisty-player
,但我们没有等待脚本下载完成,所以我不确定如何渲染它。
1.这是为twisty-player
添加脚本的推荐方法吗?有没有更好的办法?
1.我尝试将脚本直接加载到HTML头部,然后从组件中删除整个useEffect
语句,但这不起作用,为什么?
1条答案
按热度按时间rqmkfv5c1#
如果你尝试在ReactJs上使用
cubing/twisty
。您可以通过
npm install cubing
通过npm使用cubing
这里是你可以做到这一点的简单方法。