logo头像

前端从未如此简单有趣

React【文档学习】01

React【文档学习】01

1. react是什么

  • 官方文档
  • 查阅书籍
  • 练习github项目

https://zh-hans.reactis.org/

image-20240724133608908

  • 声明式
  • 组件化
  • 跨平台

2. 声明式编程

image-20240724133945034

3. 组件化开发

image-20240724134011432

4. 多平台适配

image-20240724134337283

5. React开发依赖&引入方式

image-20240724135727095

  • CDN引入

  • 下载引入

  • npm下载引入(脚手架)

    image-20240724140705997

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello react</title>
<!-- 需要依赖三个包-->
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<!-- babel 将jsx 转成 js-->
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root">

</div>
<div id="app">

</div>
<script type="text/babel">
// ReactDOM.render() react 18之前 的语法
// ReactDOM.render(vdom,document.getElementById('app'));
const root = ReactDOM.createRoot(document.querySelector('#root'));
root.render(<h1>Hello, world!</h1>);
// const app = ReactDOM.createRoot(document.querySelector('#app'));
// app.render(<h1>Hello, React!</h1>)
</script>
</body>
</html>

6. babel 和 React的关系

image-20240724135909045

7. hello-react案例

image-20240724144530568

image-20240724150901547

步骤

image-20240724151747557

8. react组件化开发

image-20240724153102973

image-20240724153622980

先通过类的方式来封装组件:

image-20240724153652729

9. 数据依赖

组件化问题一:那么数据定义在哪儿?

image-20240724153950207

10. 数据修改

image-20240724161047282

  • 难点:bind绑定
  • this的指向问题(严格模式下)

11. 事件绑定

组件化问题二:事件绑定的this指向?

image-20240724162642124

12. hello-react案例重构

image-20240724161651687

  • 数据:state
  • 修改数据:this.setState({})

提前绑定this

image-20240724161952200

13. 电影列表的展示【demo】

image-20240724164459984

14. 计数器【demo】

image-20240724165639959