在纯html使用react并使用组件
最近有个邪门项目
本身有一个vue3+vite的项目
但是需要新写一个门户页面
但是代码还需要托管到这个项目的git上
页面直接使用nginx静态部署
所以也不能使用现有的架构了
准备直接写html
但是这几个页面有复用的地方
所以准备直接在html里写react
看到几篇文章
分享一下
引用react,react-dom,babel
https://unpkg.com/react@17/umd/react.development.js
https://unpkg.com/react-dom@17/umd/react-dom.development.js
https://unpkg.com/@babel/standalone/babel.min.js
按顺序引用
<script src="./js/react.js"></script>
<script src="./js/react-dom.js"></script>
<script src="./js/babel.js"></script>
初始化react应用
body里定义一个带id的div
然后在script里初始化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="./js/react.js"></script>
<script src="./js/react-dom.js"></script>
<script src="./js/babel.js"></script>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
function App() {
return (
<div>
</div>
);
}
ReactDOM.render(<App/>, document.getElementById('app'));
</script>
</body>
</html>
这个时候就ok了可以使用了
如果想引用组件的话,需要创建jsx文件,文件名大写,class或者function的名字和文件名一样,然后在页面引用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script src="./js/react.js"></script> <script src="./js/react-dom.js"></script> <script src="./js/babel.js"></script> </head> <body> <div id="app"></div> <script type="text/babel" src="./info/Info.jsx"></script> <script type="text/babel"> function App() { // 声明一个叫 "count" 的 state 变量。 // 事件方法名"setCount" // 使用html引入react所以需要在方法前加React,如果node.js搭建项目忽略 // React.useState()括号内为初始值 const [count, setCount] = React.useState(0); return ( <div> <p>开始数字{count} </p> <button onClick={() => setCount(count + 1)}> 点击 </button> <Info></Info> </div> ); } ReactDOM.render(<App/>, document.getElementById('app')); </script> </body> </html>
info.jsx
function Info(){ return ( <div> sfdsfdsfdsf </div> ) }
效果:
ok 到这基本大功告成
在纯html使用react并使用组件
http://xuyuanhang.com//archives/zai-chun-htmlshi-yong-reactbing-shi-yong-zu-jian