前端基础概述-React|青训营笔记

65 阅读2分钟

这是我参与

「第四届青训营」笔记创作活动的第8天

简述React

React主要用于构建UI,起源于Facebook内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。

特点:

  • 采用声明式写法
  • 通过使用模拟DOM减少与DOM的交互
  • 实现了单项响应的数据流

React 的设计思路

UI编程问题

  • 状态更新UI需要手动调用DOM更新
  • 缺少基本的封装和隔离,代码层面没有组件化
  • UI之间依赖复杂需要手动维护,依赖链路长会遇到 'CallBack Hell'

响应式系统

转换式: 通过给定的输入值经过编译器的数值计算后得到输出

响应式: 通过监控系统监听事件来更改UI界面

运行过程

  • 绑定的事件发生
  • 执行既定的回调函数
  • 状态变更
  • 更新UI界面

通过声明就能确定状态间的依赖关系,代码可复用可封装,每当状态更新时UI会相应更新

组件化

  • 将UI界面分割成若干小部分,形成包含root节点的树形结构
  • 父组件可以将状态传入组件内部
  • 组件内拥有状态,外部不可见

image.png

状态归属问题

子组件可以继承父组件的状态,讨论状态的归属可以寻找离组件最近的父节点,直到最顶节点

image.png

React是单向数据流 数据只会影响下一级节点,父组件数据通过props传递给子组件,子组件更新了props,会导致父组件和其他关联的数据更新,UI渲染也会随数据变化而更新
单向数据流是框架本身对数据流向的限制

组件设计

  • 组件声明了状态和UI的映射
  • 组件拥有Props(外部)/State(私有) 两种状态
  • 组件可由其他组件合成
  • 会根据当前 Props(外部)/State(私有) 返回UI

生命周期

image.png