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

50 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第7天

什么是响应式系统

响应式系统的目标是灵敏度高,系统稳健一直有回复,松耦合和可扩展。我们定义响应式系统的4个显著特点:能灵敏响应请求的(Responsive),能回复的(Resilient),可伸缩扩展的(Elastic),基于消息驱动的(Message Driven)。

“基于消息驱动”的方式对 “系统一直有回复和可扩展” 提供支持,而“系统能回复和可扩展”的形态使 “系统可以灵敏响应请求”成为可能。最终的价值是“系统可以灵敏响应请求”,这样的系统就称为响应式系统(Reactive System

image.png

React的历史与应用

React的历史

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

React的应用

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

Reast的设计思路

UI编程痛点

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

响应式编程

  • 状态更新,uI自动更新。“状态更新,ul不会自动更新.需要手动地调用DOM 进行更新。”
  • 前端代码组件化,可复用﹐可封装。"欠缺基本的代码层面的封装和隔离.代码层面没有组件化。”
  • 状态之间的互相依赖关系﹐只需声明即可。“UI之间的数据依赖关系.需要手动维护,如果依赖链路长.则会遇到" callback Hell”。”