引入
在基础的学习中,先不会使用create-react-app
创建项目,所以先用到以下包作为学习react
的依赖
- react:包含必须的核心代码
- react-dom:渲染在不同平台所需的核心代码
- babel:识别
JSX
语法
- 可以通过
CDN
的方式进行引入
<!-- React核心 -->
<script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
<!-- ReactDOM -->
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
<!-- babel -->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
- 下载到本地,进行使用
直接赋值上面
CDN
的链接访问下载即可
按照这两种方式引入完相关依赖之后就可以使用React
了
基本使用
在React 18
中,通过react-dom
中的createRoot
方法来创建一个react
根元素,他接受一个真实DOM
作为参数,并且通过返回对象的render
方法来渲染React
元素
<body>
<div id="root"></div>
<script src="./lib/react.js"></script>
<script src="./lib/react-dom.js"></script>
<script src="./lib/babel.js"></script>
<script type="text/babel">
const root = ReactDOM.createRoot(document.getElementById("root"))
root.render(<h1>Hello React</h1>)
</script>
</body>
使用
jsx
时记得给script
标签加上type="text/babel"
,才可以正确的使用babel
转义
可以看见界面效果如下
这样就表明了成功的应用了React
组件
之前的render
函数传入的react
元素是一个普通的DOM
标签,但是这也可以是我们自定义的组件。React 的组件可以定义为类组件或函数组件。
在这里就先使用类组件了
用es6
的类语法来创建一个App
类,该类继承于 React.Component
并且必须实现一个render
方法,render
方法的返回值就会被渲染,具体如下
class App extends React.Component {
render() {
return <h1>Hello React</h1>
}
}
const root = ReactDOM.createRoot(document.getElementById("root"))
root.render(<App />)
如果要在组件中拥有数据,也就是类的属性,可以在constructor
中进行定义
数据可分为参与页面更新的,与不参与更新的
参与更新的数据(响应式)一般写于当前对象的state
中,并且通过setState
来修改数据
class App extends React.Component {
constructor() {
super()
this.state = {
messgae: "Hello React",
}
}
render() {
return <h1>{this.state.messgae}</h1>
}
}
const root = ReactDOM.createRoot(document.getElementById("root"))
root.render(<App />)
结束语
这里对React
进行了初步的认识,以及学习了如何创建一个类组件,并且在组件中使用数据,但也是最基础,并未在jsx
中使用太多js
,之后就是对于jsx
的学习。