React的历史和应用
通过本节课的学习,我了解到了React能应用在前端应用开发,移动原生应用开发React-Native和桌面应用开发Electron。React开发解决了UI编程痛点,将状态与UI更新绑定在一起,而不用每次都我们自己去调用DOM进行更新,同时能将页面的组件通过代码层面进行封装和隔离,将页面分成一个个组件,便于维护和更新,同时解决了UI之间的数据依赖关系,只需要我们进行声明就行。
React的设计思路和实现
React通过组件设计,声明了状态和UI的映射,组件拥有了Props和State两种状态,能由其他组件拼接而成,同时拥有生命周期进行组件的挂载,渲染,更新和卸载。React中有Virtual DOM,其是一种用于和真实DOM同步,在JS内存中维护的一个对象,是通过JSX转换为ReactElement再到fiber树间转换。Jsx语法书写的节点会被转换为一个与之对应的ReactElement对象,而fiber对象会通过ReactElement对象进行创建,多个fiber树再构成一棵fiber树,fiber树的改动最终会体现在DOM树上。当虚拟DOM树的状态改变时,会通过diffing算法进行鉴别,然后重新渲染出新的虚拟DOM树,Diff算法在不同类型的元素间体现为替换,同类型的DOM元素间体现为更新,同类型的组件元素为递归。
React的状态管理库和应用级框架
React的状态管理库是将状态抽离到UI外部进行统一管理(即利用store进行管理状态),目前主流的有redux,mobx,xstate和recoil,应用级框架有nextJs(源代码更新后页面刷新很快),modernJs(内置了很多开箱即用的能力和最佳实践),Blitz(无api思想的全栈开发框架)。