这是我参加青训营的第六天分享要点:
- React 的发展历史
- React 的应用场景
- React 的设计思想
- 响应式编程/函数式编程的设计思想
- 其他 react 生态框架科普
详细内容
发展历史
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 的应用场景及设计思想
原生JS的UI痛点
- 状态更新,UI 不会自动更新,需要手动调用 DOM进行更新。
- 欠缺基本的代码层面的封装和隔离,代码层面没有组建化。
- UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到 Callback Hell。
响应式编程/函数式编程的设计思想
React有两大写法,用类写和用hooks写。React的实现要解决三个问题。JSX不符合JS标准语法;返回的JSX发生改变时,如何更新DOM;State/Props更新时,要重新触发render函数。对于第一个问题,React可以自动将JSX转化为JS语法。第二个问题,更新DOM时用到了虚拟DOM。虚拟DOM是一种用于与真实DOM同步,而在JS中维护的一个对象,能够和DOM建立一一对应的关系。实心虚拟DOM用到了diff算法。不同类型的元素进行替换,同类型的DOM元素更新,同类型的组件元素递归。
Reace状态管理库是为了解决共同属性不断向上传递的问题。一般用于业务场景。比如在同一个游戏的多个界面都需要访问用户头像,那么此时就可以用状态管理库。但是它的缺点是不利于组件的复用性。
其他 react 生态框架科普
next.js 硅谷明星创业公司Vercel的React开发框架,稳定,开发体验好,支持Unbundled Dev, SWC等,其同样有Serverless一键部署平台帮助开发者快速完成部署。口号是“Let's Make Web Faster” modern.js 字节跳动Web Infra 团队研发的全栈开发框架,内置了很多开箱即用的能力与最佳实践,可以减少很多调研选择I具的时间。 biltz 无API思想的全栈开发框架,开发过程中无需写API调用与CRUD逻辑,适合前后端紧密结合的小团队项目。