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

120 阅读2分钟

响应式系统与React 笔记

React的发展

  • 2010年,Facebook 在其 php 生态中,引入了 xhp 框架,首次引入了组合式组件的思想,启发了后来的React的设计。

  • 2011年, Jordan Walke 创造了FaxJS,也就是后来的React原型:

    image.png

  • 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(提供状态和生命周期的组件)等。

对于一个新的知识或技术,一开始最重要的是去了解为什么它会出现,从而明确它的应用场景。其次,不要怕麻烦,认真去看代码,去吸收新的知识。最后,就是老生常谈的,好记性不如烂笔头,多实践多使用,才能真正吸收。