React笔记 | 青训营笔记

114 阅读2分钟

这是我参加青训营的第六天分享要点:

  1. React 的发展历史
  2. React 的应用场景
  3. React 的设计思想
  4. 响应式编程/函数式编程的设计思想
  5. 其他 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痛点

  1. 状态更新,UI 不会自动更新,需要手动调用 DOM进行更新。
  2. 欠缺基本的代码层面的封装和隔离,代码层面没有组建化。
  3. 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逻辑,适合前后端紧密结合的小团队项目。