You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React入门疑问:为何我的页面没有发生变化?

问题原因及解决方案

你的页面没渲染出内容,核心问题是浏览器原生不支持JSX语法,你代码里的<h1>Hello,world</h1>属于JSX,直接运行会报错,导致代码无法执行。

下面是两种可行的解决办法:

方法一:引入Babel转译JSX

在HTML中添加Babel的CDN,并将包含JSX的代码放在type="text/babel"的script标签内(如果是外部JS文件,也要给script标签加上这个属性)。修改后的完整HTML示例:

<body>
    <div id="root"></div>

    <!-- Load React. -->
    <!-- Note: when deploying, replace "development.js" with "production.min.js". -->
    <script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
    <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
    <!-- 引入Babel用于转译JSX -->
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <!-- 用type="text/babel"标记需要转译的代码 -->
    <script type="text/babel">
        const root = ReactDOM.createRoot(
            document.getElementById('root')
        );
        const element = <h1>Hello,world</h1>;
        root.render(element);
    </script>
</body>

方法二:改用React.createElement写法

直接用React提供的createElement方法替代JSX,不需要额外引入转译工具,浏览器可以直接执行。修改后的JavaScript代码:

const root = ReactDOM.createRoot(
    document.getElementById('root')
);
// 替换JSX为React.createElement调用
const element = React.createElement('h1', null, 'Hello,world');
root.render(element);

另外要注意:如果你的JavaScript是外部文件,必须确保引入该文件的script标签放在React和ReactDOM的script标签之后,否则会找不到React或ReactDOM对象。

内容的提问来源于stack exchange,提问作者nox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:39:21