编写首个React程序遇故障:浏览器无用户界面渲染求助
排查React示例页面未渲染UI的问题
嘿,我来帮你搞定这个问题!从你给出的代码片段来看,有几个很关键的点没做到位,导致浏览器没法渲染出React界面,咱们一步步来修复:
核心问题分析
缺失JSX转译工具
React里的JSX语法(就是那种在JavaScript里写HTML标签的写法)浏览器本身根本不认识,必须用Babel来转译成浏览器能理解的普通JS。你第三个<script>标签的链接明显截断了(https://unpk...),这应该是你原本想引入Babel的CDN,但没写完整。缺少渲染必备的两个要素
- 页面里没有用来挂载React应用的DOM容器节点
- 你没编写任何React组件,也没调用
ReactDOM.render()来把组件渲染到页面上
脚本资源加载不完整
截断的script链接会导致资源加载失败,直接影响后续的React代码执行。
修复后的完整代码
把你的Day.html替换成下面的内容,保存后重新在浏览器打开就能看到效果了:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>React! React! React!</title> <!-- 引入React核心库 --> <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script> <!-- 引入ReactDOM渲染库 --> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <!-- 引入Babel用于转译JSX,链接补全 --> <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script> </head> <body> <!-- 新增:React应用的挂载容器 --> <div id="root"></div> <!-- 新增:React组件和渲染逻辑,注意type="text/babel"属性 --> <script type="text/babel"> // 定义一个简单的函数组件 function HelloReact() { return <h1>Hey, React渲染成功啦!</h1>; } // 将组件挂载到页面的root容器中 ReactDOM.render(<HelloReact />, document.getElementById('root')); </script> </body> </html>
额外排查小技巧
如果还是没显示,按F12打开浏览器的开发者工具-控制台,看看有没有报错信息:
- 如果提示
React is not defined:说明React的CDN资源加载失败,检查网络或者链接是否正确 - 如果提示JSX语法错误:说明Babel没正确加载或者脚本没加
type="text/babel"属性
内容的提问来源于stack exchange,提问作者maddy
相关产品推荐
相关产品推荐

