React代码无法渲染Hello World,请求排查代码问题
排查你的React代码不显示"Hello World"的问题
嘿,我来帮你梳理下代码里可能导致页面没显示内容的几个关键点:
1. 缺少JSX编译工具(最核心的问题)
你代码里用了JSX语法——就是那个直接把<h1>Hello, world!</h1>写在JavaScript里的写法,但浏览器本身根本不认识JSX!得靠Babel把这种语法转成浏览器能理解的普通JS代码才行。你现在只引入了React和ReactDOM的库,没加Babel的编译脚本,这肯定跑不起来。
解决办法:在<head>里加上Babel的CDN脚本,记得放在React脚本之后、你的自定义脚本之前:
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
2. 检查React/ReactDOM的本地路径是否正确
你用的是本地路径theme/public/js/react.production.min.js,得确认这个路径真的对应到了文件所在位置。如果路径错了,浏览器加载不到React库,代码自然没法执行。可以按F12打开浏览器开发者工具,切换到Network标签,看看这两个脚本是不是报了404错误。
3. 脚本的type属性要搭配Babel使用
你写了type="text/babel",这个属性是对的,但前提是你已经引入了Babel——它的作用是告诉Babel“这个脚本里有JSX,帮我转译一下”。没Babel的话,这个属性就没啥用。
给你改好的完整代码示例
<html> <head> <!-- 先加载React和ReactDOM库 --> <script src="theme/public/js/react.production.min.js"></script> <script src="theme/public/js/react-dom.production.min.js"></script> <!-- 再加载Babel编译工具 --> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> </head> <body> <div id="root"></div> <script type="text/babel"> ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root') ); </script> </body> </html>
另外提一嘴,如果是正式项目,更推荐用Webpack、Vite这类构建工具提前把JSX编译好,Babel的standalone版本主要适合快速调试,生产环境用它性能会差点。
内容的提问来源于stack exchange,提问作者codex
相关产品推荐
相关产品推荐

