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

70 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第13天,今天的课程是「响应式系统与 React」,老师主要讲解了 React历史与应用 、 React的设计思路 、 React的写法 、 React的实现 、 React状态管理库 等内容。

React历史与应用

应用

1、前端应用开发
如Facebook、Instagram、Netflix网页版
2、移动原生应用开发
如Instagram、Discord、Oculus
3、结合Electron,进行桌面应用开发

历史

  • 2010年,Facebook在其php生态中,引入了xhp框架,首次引入了组合式组件的思想,启发了后来的React的设计。
  • 2011年,Jordan Walke创造了FaxJS,也就是后来的React原型。
  • 2012年,在Facebook收购Instagram后,该FaxJS项目在内部得到使用,Jordan Walke基于FaxJS的经验,创造了React。
  • 2013年,React正式开源,在2013JSConf上,Jordan Walke介绍了这款全新的框架。
  • 2014年至今,生态大爆发,各种围绕React的新工具/新框架开始涌现。

React的设计思路

UI编程痛点

1、状态更新,UI不会自动更新,需要手动调用DOM进行更新。
2、欠缺基本的代码层面的封装和隔离,代码层面没有组件化。
3、UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“Callback Hell”

组件化

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

组件设计

1、组件声明了状态和UI的映射
2、组件有Props/State两种状态
3、组件可由其他组件拼装而成

生命周期

image.png

React(hooks)的写法

import React,{useState} from 'react';
...

React的实现

Problems

1、JSX不符合JS标准语法
2、返回的JSX发生改变时,如何更新DOM
3、State/Props更新时,要重新触发render函数

React状态管理库

核心思想:将状态抽离到UI外部进行统一管理。

推荐: image.png