html引入react以及hook的使用

html引入react

效果

分享react demo片段的时候,如果是整个工程项目就有点太麻烦了,打开速度慢,文件多且没必要,这个时候用html就很方便。

在html中能正常使用useStateuseEffect 等hook。

代码

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>React App</title>
</head>
<body>
  <div id="root"></div>
  <script crossorigin src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
  <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>

  <script type="text/babel">

    function App() {
        const [count, setCount] = React.useState(0);

        React.useEffect(() => {
        console.log('Component is mounted');
        return () => {
          console.log('Component will unmount');
        };
      }, []); 

      return (
        <div>
          <h1>Hello, React!</h1>
          <p>This is a simple React component.</p>
          <p>开始数字{count} </p>
                <button onClick={() => setCount(count + 1)}>
                    点击
          </button>
        </div>
      );
    };

    ReactDOM.render(<App />, document.getElementById('root'));
  </script>
</body>
</html>

注意

这一段很重要,type="text/babel" 和 cdn 引用错误会导致失效。

复制代码
  <script crossorigin src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  <script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
  <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
	<script type="text/babel">
相关推荐
SendTomo14 分钟前
P2P文件传输工具对比:SendTomo vs send.wang
javascript·网络协议·webrtc·html5·p2p
zh_xuan21 分钟前
github搭建个人主页
html·github
SendTomo2 小时前
WebRTC文件互传工具实测对比
javascript·网络·webrtc·html5·p2p
雪碧聊技术2 小时前
Vue + Element Plus 实现文本溢出显示省略号及悬浮提示
前端·javascript·css·vue.js·文本溢出省略
小妖6663 小时前
设置了 box-sizing: border-box; 不管用,下边框还是被挤压没了
前端·css·html
张元清5 小时前
React useLatest Hook:在异步回调里读到最新状态 (2026)
javascript·react.js
Asize5 小时前
为什么写代码前要先规划组件树?Next.js + Redis 笔记系统实战
前端·javascript·next.js
meilindehuzi_a6 小时前
Next.js 全栈基础实战:从 SPA、SSR 到 App Router 与 Todo API
开发语言·javascript·ecmascript
光影少年6 小时前
react navite图片加载优化、大图卡顿、缓存策略
前端·react native·react.js
渣波6 小时前
重构旅行体验:基于 React 的 AI 旅游助手对话系统实战解析
前端·javascript