React是用于构建用户界面的JavaScript库 React 让你可以通过组件来构建用户界面 复制代码
1. React简介
1.1 React的特点
- 声明式
- 组件化
- 跨平台编写
1.2 React哲学
React是用JavaScript构建快速响应的大型Web应用程序的首选方式
由于前端我们是无法改变加载的网速,但是我们可以通过加入view界面提示加载,这样在响应的过程中不会让用户一直处于空白界面的状态。可以调用React中Lazy&Suspence
来实现。
如果项目崩溃或者网络崩溃的时候,可以使用ErrorBondary
,展示出自己定义渲染的“错误”的UI界面
1.3 更新流程
- 调度器
- 维护时间切片,会有多个切片
- 与浏览器任务调度
- 优先级调度
- 协调器
- 将JSX转化为Fiber
- Fiber树对比(双缓存)
- 确定本次更新的Fiber
- 渲染器
- 渲染器用于管理一颗React树
- 使其根据顶层平台进行不同的调度
fiberRoot是通过双缓冲来更新,通过alterbate将current Tree
和workInProgerss Tree
关联。整颗树构建完成后是通过workInProgerss Tree
去替代当前渲染的current Tree
,然后完成整个update。
1.4 优缺点
优点:
- 快速响应:Fiber
- 组件化:复用性强
- 声明式编程
- 跨平台
缺点:
- 大型应用需要配套学习状态管理、路由工具
- 不适合小型应用,需要用babel处理
2.1 React开发web应用
如果用React开发一个项目,大概可以需要这些储备知识
- 架构
- 路由
- UI
- 状态
- 数据
- 通信
- 性能
浏览器无法直接识别jsx,所以需要学习打包配置,如babel将jsx转换为浏览器可以识别的JS。路由则可以快速的添加视图和数据流,可以让页面和URL之间保持同步.UI可以通过组件组成。通信可以通过props
进行父子之间的通信,context&redux
可以用于组件信息的共享。