如何使用在线CDN在react中导入js文件



请注意,我正在尝试使用外部CDN运行react应用程序,但在html文件上出现问题,显示:

未捕获引用错误:未定义require索引。html:3这是html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<link rel="stylesheet" href="styles/style.css">
<script src='https://unpkg.com/react@16.3.1/umd/react.production.min.js'></script>
<script src='https://unpkg.com/react-dom@16.3.1/umd/react-dom.production.min.js'></script>
<script src='https://unpkg.com/react-router-dom@5.0.0/umd/react-router-dom.min.js'></script>
<script src='https://unpkg.com/babel-standalone@6.26.0/babel.js'></script>
</head>
<body>
<div id='root'></div>
<script type='text/babel'>
import Todo from 'component/Todo.js';
const App = () =>(
<div>
<h1>My Todos</h1>
<Todo />
</div>
)
ReactDOM.render(<App />, document.querySelector('#root'));
</script>
</body>
</html>

这是JavaScript代码

function Todo (){
return (<div className="card">
<h2>TITLE</h2>
<div className="actions">
<button className="btn">Delete</button>
</div>
</div>);
}
export default Todo;

您可以从另一台服务器导入外部脚本,如下所示:

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() {
// your stuff to do!
}

另一种方法是使用反作用头盔:

首先使用安装

npm install --save react-helmet

然后像这个一样使用

<Helmet>
<script src="www.test.ts" />
</Helmet>

注意,通过这种方式,您的脚本将加载到<head>

最新更新