为什么 import React, ReactDOM 不起作用

huangapple go评论103阅读模式
英文:

Why is import React, ReactDOM not working

问题

In my index.js页面中,我有以下代码:

  1. import React from "react";
  2. import ReactDOM from "react-dom";
  3. const page = (
  4. <div>
  5. <h1 className="header">This is JSX</h1>
  6. <p>This is a paragraph</p>
  7. </div>
  8. )
  9. console.log(page)
  10. const container = document.getElementById("root");
  11. ReactDOM.render(
  12. page,
  13. container
  14. );

在我的index.html中,我有以下内容:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <!-- <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
  8. <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
  9. <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> -->
  10. <title>Document</title>
  11. </head>
  12. <body>
  13. <div id="root"></div>
  14. <script src="index.js"></script>
  15. </body>
  16. </html>

如果要解决在本地主机上未呈现元素的问题,请取消注释以下代码:

  1. <!-- <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
  2. <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
  3. <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> -->

然后移除您的导入语句。

英文:

In my index.js page I have

  1. import React from &quot;react&quot;;
  2. import ReactDOM from &quot;react-dom&quot;;
  3. const page = (
  4. &lt;div&gt;
  5. &lt;h1 className=&quot;header&quot;&gt;This is JSX&lt;/h1&gt;
  6. &lt;p&gt;This is a paragraph&lt;/p&gt;
  7. &lt;/div&gt;
  8. )
  9. console.log(page)
  10. const container = document.getElementById(&quot;root&quot;);
  11. ReactDOM.render(
  12. page,
  13. container
  14. );

In my index.html I'm having

  1. &lt;!DOCTYPE html&gt;
  2. &lt;html lang=&quot;en&quot;&gt;
  3. &lt;head&gt;
  4. &lt;meta charset=&quot;UTF-8&quot;&gt;
  5. &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
  6. &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  7. &lt;!-- &lt;script crossorigin src=&quot;https://unpkg.com/react@18/umd/react.development.js&quot;&gt;&lt;/script&gt;
  8. &lt;script crossorigin src=&quot;https://unpkg.com/react-dom@18/umd/react-dom.development.js&quot;&gt;&lt;/script&gt;
  9. &lt;script src=&quot;https://unpkg.com/babel-standalone@6/babel.min.js&quot;&gt;&lt;/script&gt; --&gt;
  10. &lt;title&gt;Document&lt;/title&gt;
  11. &lt;/head&gt;
  12. &lt;body&gt;
  13. &lt;div id=&quot;root&quot;&gt;&lt;/div&gt;
  14. &lt;script src=&quot;index.js&quot;&gt;&lt;/script&gt;
  15. &lt;/body&gt;
  16. &lt;/html&gt;

Im not getting the elements rendered in my localhost.
It works if I uncomment
&lt;!-- &lt;script crossorigin src=&quot;https://unpkg.com/react@18/umd/react.development.js&quot;&gt;&lt;/script&gt;
&lt;script crossorigin src=&quot;https://unpkg.com/react-dom@18/umd/react-dom.development.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;https://unpkg.com/babel-standalone@6/babel.min.js&quot;&gt;&lt;/script&gt; --&gt;

and remove my imports.

Please help check in this issue.

答案1

得分: 2

这是一个关于如何在不使用Webpack、Rollup或Vite等打包工具的情况下,将React作为UMD使用的示例,同时使用了独立的Babel。

index.html:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>Home</title>
  5. <meta charset="UTF-8" />
  6. <meta name="viewport" content="width=device-width" />
  7. <script
  8. crossorigin
  9. src="https://unpkg.com/react@16.14.0/umd/react.development.js"
  10. ></script>
  11. <script
  12. crossorigin
  13. src="https://unpkg.com/react-dom@16.14.0/umd/react-dom.development.js"
  14. ></script>
  15. <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  16. </head>
  17. <body>
  18. <div id="root"></div>
  19. <script type="text/babel" src="script.js"></script>
  20. </body>
  21. </html>

script.js:

  1. const Page = () => (
  2. <div>
  3. <h1 className="header">This is JSX</h1>
  4. <p>This is a paragraph</p>
  5. </div>
  6. );
  7. const container = document.getElementById('root');
  8. ReactDOM.render(<Page />, container);

stackblitz

英文:

It seems you want to use React as a UMD with Babel standalone and without any bundle tools like Webpack, Rollup, and Vite.

A working example using react@16.14.0

index.html:

  1. &lt;!DOCTYPE html&gt;
  2. &lt;html lang=&quot;en&quot;&gt;
  3. &lt;head&gt;
  4. &lt;title&gt;Home&lt;/title&gt;
  5. &lt;meta charset=&quot;UTF-8&quot; /&gt;
  6. &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&gt;
  7. &lt;script
  8. crossorigin
  9. src=&quot;https://unpkg.com/react@16.14.0/umd/react.development.js&quot;
  10. &gt;&lt;/script&gt;
  11. &lt;script
  12. crossorigin
  13. src=&quot;https://unpkg.com/react-dom@16.14.0/umd/react-dom.development.js&quot;
  14. &gt;&lt;/script&gt;
  15. &lt;script src=&quot;https://unpkg.com/@babel/standalone/babel.min.js&quot;&gt;&lt;/script&gt;
  16. &lt;/head&gt;
  17. &lt;body&gt;
  18. &lt;div id=&quot;root&quot;&gt;&lt;/div&gt;
  19. &lt;script type=&quot;text/babel&quot; src=&quot;script.js&quot;&gt;&lt;/script&gt;
  20. &lt;/body&gt;
  21. &lt;/html&gt;

script.js:

  1. const Page = () =&gt; (
  2. &lt;div&gt;
  3. &lt;h1 className=&quot;header&quot;&gt;This is JSX&lt;/h1&gt;
  4. &lt;p&gt;This is a paragraph&lt;/p&gt;
  5. &lt;/div&gt;
  6. );
  7. const container = document.getElementById(&#39;root&#39;);
  8. ReactDOM.render(&lt;Page /&gt;, container);

stackblitz

huangapple
  • 本文由 发表于 2023年5月13日 10:40:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/76240862.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定