响应式系统与React 笔记
React的发展
-
2010年,Facebook 在其 php 生态中,引入了 xhp 框架,首次引入了组合式组件的思想,启发了后来的React的设计。
-
2011年, Jordan Walke 创造了FaxJS,也就是后来的React原型:
-
2012年,在Facebook 收购 Instagram 后,该 FaxJS 项目在内部得到使用, Jordan Walke 基于 FaxJS 的经验开发出了
React -
2013年,React正式开源——在 2013 JSConf 上 Jordan Walke 介绍了这款全新的框架
React : A JavaScript library for building user interfaces.
-
2014年 - 至今,生态大爆发,各种围绕React的新工具/新框架开始涌现
React的设计思路
UI的痛点
1、状态更新时,UI不会自动更新,需要手动调用DOM接口进行更新。
2、欠缺基本的代码层面的封装和隔离,代码层面没有组件化。
3、UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到"Callback Hell"。
React的出现,就是为了解决这三大痛点
响应式与转换式
- 转换式系统:给定【输入】求解【输出】。
-
- 常用于编译器的实现,数值计算等场景
- 响应式系统:监听事件,消息驱动,需要监控系统去关注并响应事件,以更新UI界面。
响应式编程(针对UI痛点做出解决方法)
- 状态更新,UI自动更新。
- 前端代码组件化,可复用,可封装。
- 状态之间的互相依赖关系,只需声明即可。
React的设计与实现
组件化
1、组件是 组件的组合 / 原子组件
2、组件内拥有状态,外部不可见
3、父组件可将状态传人组件内部
组件设计
1、组件声明了状态和UI的映射
2、组件有 Props / State 两种状态
3、“组件”可由其他组件拼接而成
总结
实际上,React就是一个用于构建用户界面的 JavaScript 库,引用React库后即可使用,常结合JSX(JavaScript XML)语法创建,要点在于组件化、Hooks(提供状态和生命周期的组件)等。
对于一个新的知识或技术,一开始最重要的是去了解为什么它会出现,从而明确它的应用场景。其次,不要怕麻烦,认真去看代码,去吸收新的知识。最后,就是老生常谈的,好记性不如烂笔头,多实践多使用,才能真正吸收。