响应式系统与 React | 青训营笔记

87 阅读2分钟

这是我参与[第五届青训营]笔记创作活动的第六天

本课堂重点内容:

  • React 历史与应用
  • UI 编程的痛点
  • 响应式与转换式
  • React 设计与实现
  • Live Code
  • React 实现的基本概要
  • React 状态管理库
  • 应用级框架的科普

详细知识点介绍:

React 的应用

  • 前端应用开发
  • 移动原生应用开发
  • 结合 Electron 的桌面应用开发

React 历史

  • 2010年, Facebook 在其 php 生态中,引入了 xhp 框架,首次引入组合式组件思想,这启发了之后的 React 的设计
  • 2011年,Jordan Walke 创造 FaxJS,这便是之后的 React 原型
  • 2012年,Facebook 收购 Instagram,该 FaxJS 项目在内部得到使用,开发者基于 Faxjs的经验,创造了 React
  • 2013年,React 正式开源
  • 2014年 - 至今,生态爆发,无数基于 React 的工具和框架涌现

React 设计思路

UI编程的痛点:

  1. 状态更新,UI 不会自动更新,需要手动去调用 DOM 更新
  2. 欠缺基本的代码层面的封装和隔离,代码层面没有组件化
  3. UI 之间的数据依赖关系,需要手动维护,如果依赖链路过长,会遭遇“回调地狱”即(Callback Hell)

响应式编程:

  1. 状态更新,UI 自动更新
  2. 前端代码组件化,可复用,可封装
  3. 状态之间的互相依赖关系,只需声明即可

组件化:

  1. 组件可以由其他组件拼接而来
  2. 组件内拥有私有状态 State,外部不可见
  3. 组件可接受外部传入的 Props 状态,提高复用性
  4. 根据当前的 State/Props,返回一个 UI

状态归属问题:

状态归属于两个节点向上寻找到的最近的父级节点

生命周期:

React 状态管理库

核心思想:

将状态抽离到 UI 外部进行统一管理

个人课后总结:

React 的学习门槛较高,需要花费时间去不停的研究