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

63 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10天 
青训营课程笔记

React介绍

学习React前需要具备的知识:

  • HTML/JS/CSS基础
  • 基础的数据结构/算法知识如二叉树、深度、遍历等
  • 会使用浏览器提供的DOM API来修改DOM,更新UI

React历史

  • 2010年,facebook在PHP生态中引入了xhp框架,首次引入了组合式组件的思想,启发了后来React框架的设计
  • 2011年,Jordan Walke创造了FaxJS,这是React的原型
  • 2012年,Jordan Walke基于FaxJS的经验,创造了React

React的设计思路

思路——解决UI编程的痛点 痛点

  • 状态更新。UI不会自动更新,需要手动的调用DOM
  • 欠缺基本的代码层面的封装和隔离,代码未组件化
  • UI之间的数据依赖关系,需要手动维护 **设计实现
  • 状态更新。UI自动更新
  • 前端代码组件化,可复用,可封装
  • 状态之间的互相依赖关系,只需声明即可,不需要手动维护

React组件化

  • 组件是组件的组合/原子组件
  • 组件内拥有状态,外部不可见
  • 父组件可将状态传入组件内部

思考

eact是单向数据流还是双向数据流

React是单向数据流,遵循从上到下的数据流向,与Vue不同,Vue是双向绑定数据流

何解决状态不合理上升的问题

进行状态提升,进行兄弟组件间的简单通信

件状态改变后,如何更新DOM

React并不会把更新的内容挂在真的DOM上,而是使用虚拟DOM,React提供了组件的一个私有的,其他任何组件没有权限改变的属性:state(状态),当组件内容需要变化,我们改变state的对应的值就可以了

组件设计

  • 组件声明状态和UI映射
  • 组件有Props/state两种状态
  • 组件可由其他组件拼装而成

React实现

使用虚拟DOM,它赋予React声明式的API,使React确保DOM匹配相应状态