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

问题描述 投票:0回答:2

请我尝试使用外部 CDN 运行 React 应用程序,并且在 html 文件上遇到问题:

未捕获的ReferenceError:require未定义index.html:3 这是html代码:

    <!DOCTYPE html>
<html>
  <head>
    <meta charset='UTF-8'>
    <link rel="stylesheet" href="styles/style.css">
    <script src='https://unpkg.com/[email protected]/umd/react.production.min.js'></script>
    <script src='https://unpkg.com/[email protected]/umd/react-dom.production.min.js'></script>
    <script src='https://unpkg.com/[email protected]/umd/react-router-dom.min.js'></script>
    <script src='https://unpkg.com/[email protected]/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;
javascript html reactjs import cdn
2个回答
0
投票

您可以像这样从另一台服务器导入外部脚本:

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!
 }

另一种方法是使用react Helmet:

首先使用以下命令安装它:

npm install --save react-helmet

然后像这样使用它

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

  </Helmet>

请注意,这样您的脚本将加载到

<head>


0
投票
  1. 在您的index.html 文件中添加 Office.js 脚本引用:

    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
    
    
  2. 在 React 应用程序中初始化 Office.js 库。您可以在index.js 文件中执行此操作:

    const Office = window.Office;
    Office.initialize = () => {
      ReactDOM.render(
        <YourComponent />,
        document.getElementById('root')
      );
    };
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.