React基本概念
React是一个基于组件的声明式UI库,用于构建高效、快速的用户界面。
React的历史与应用
React应用场景
- 前端应用开发,如Facebook,Instagram,Netflix网页版
- 移动原生应用开发,如Instagram,Discord,Oculus
- 结合Electron,进行桌面应用开发
React 的设计思路
UI 编程痛点
- 状态更新,UI 不会自动更新,需要手动地调用 DOM 进行更新
- 欠缺基本的代码层面的封装和隔离,代码层面没有组件化
- UI 之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“Callback Hell”
响应式与转换式 & 响应式编程
- 转换式系统:给定输入求解输出,如编译器、数值计算
- 响应式系统:监听事件、消息驱动,如监听事件、UI界面
响应式系统:事件->执行既定的回调-> 因此React设计思路是:
- 状态更新,UI自动更新
- 前端代码组件化,可复用可封装
- 状态之间的互相依赖关系,只需声明即可
React的特点
- 声明式写法 你只需要描述UI(HTML)看起来是什么样,就跟写HTML一样,React负责将你写的HTML渲染出来
- 组件化 React 中一切都是组件(万物皆可组件)。 我们通常将应用程序的整个逻辑分解为小的单个部分。 我们将每个单独的部分称为组件。 通常,组件是一个javascript函数,它接受输入,处理它并返回在UI中呈现的React元素。
React生命周期:
- 生命周期是一个抽象的概念,在生命周期的整个过程,分成了很多个阶段;
- 比如初始化阶段(Constructor),通过给 this.state 赋值对象来初始化内部的state。
- 比如装载阶段(Mount),组件第一次在DOM树中被渲染的过程;
- 比如更新过程(Update),组件状态发生变化,重新更新渲染的过程;
- 比如卸载过程(Unmount),组件从DOM树中被移除的过程;
- React内部为了告诉我们当前处于哪些阶段,会对我们组件内部实现的某些函数进行回调,这些函数就是生命周期函数:
- 比如实现componentDidMount函数:组件已经挂载到DOM上时,就会回调;
- 比如实现componentDidUpdate函数:组件已经发生了更新时,就会回调;
- 比如实现componentWillUnmount函数:组件即将被移除时,就会回调;
- 我们可以在这些回调函数中编写自己的逻辑代码,来完成自己的需求功能;