这是我参与「第四届青训营 」笔记创作活动的第7天
什么是响应式系统
响应式系统的目标是灵敏度高,系统稳健一直有回复,松耦合和可扩展。我们定义响应式系统的4个显著特点:能灵敏响应请求的(Responsive),能回复的(Resilient),可伸缩扩展的(Elastic),基于消息驱动的(Message Driven)。
“基于消息驱动”的方式对 “系统一直有回复和可扩展” 提供支持,而“系统能回复和可扩展”的形态使 “系统可以灵敏响应请求”成为可能。最终的价值是“系统可以灵敏响应请求”,这样的系统就称为响应式系统(Reactive System
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的应用
- 前端应用开发,如Facebook,Instagram,Netflix网页版。
- 移动原生应用开发,如Instagram,Discord,Oculus。
- 结合Electron,进行桌面应用开发。
Reast的设计思路
UI编程痛点
- 状态更新 UI不会自动更新 需要手动地调用DOM进行更新
- 欠缺基本的代码层面的封装和隔离 代码层面没有组件化
- UI之间的数据依赖关系 需要手动维护 如果依赖链路长 则会遇到"Callback Hell"
响应式编程
- 状态更新,uI自动更新。“状态更新,ul不会自动更新.需要手动地调用DOM 进行更新。”
- 前端代码组件化,可复用﹐可封装。"欠缺基本的代码层面的封装和隔离.代码层面没有组件化。”
- 状态之间的互相依赖关系﹐只需声明即可。“UI之间的数据依赖关系.需要手动维护,如果依赖链路长.则会遇到" callback Hell”。”