响应式编程与React|青训营笔记

78 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

React历史与应用

1、前端应用开发.如Facebook,Instagram,Netflix网页版。

2、移动原生应用开发,如Instagram.Discord,Oculus。

3、结合Electron.进行桌面应用开发。

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

React的设计思路

UI编程痛点

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

响应式与转换式

image-20230130152630281.png

image-20230130152914771.png

image-20230130152929194.png

响应式编程

  • 状态更新,UI自动更新。

    状态更新,U1不会自动更新,需要手动地调用DOM进行更新。

  • 前端代码组件化,可复用,可封装。

    “欠缺基本的代码层面的封装和隔离,代码层面没有组件化。·3

  • 状态之间的互相依赖关系,只需声明即可

    “U1之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到

    “Callback Hell"。"

组件化总结

  1. 组件是组件的组合/原子组件
  2. 组件内拥有状态,外部不可见
  3. 父组件可将状态传入组件内部

组件设计

1.组件声明了状态和U1的映射。

2.组件有Props/State两种状态。

3.“组件”可由其他组件拼装而成。

组件化代码是什么样子

1.组件内部拥有私有状态State。

2.组件接受外部的Props状态提供复用性。

3.根据当前的State/Props,返回一个Ul。

React(hooks)的写法

image-20230130153908506.png

image-20230130153926721.png

React的实现

React的实现Problems

1、JSX不符合JS标准语法

2、返回的JSX发生改变时如何更新DOM

3、State/Props更新时要重新触发render函数

Virtual DOM(虚拟DOM) Virtual DOM是一种用于和真实DOM同步,而在JS内存中维护的一个对象,它具有和DOM类似的树状结构,并和DOM可以建立一一对应的关系。它赋予了React声明式的API:您告诉React希望让UI是什么状态,React就确保DOM匹配该状态。这使您可以从属性操作、事件处理和手动DOM更新这些在构建应用程序时必要的操作中解放出来。

不同类型的元素同类型的DOM元素同类型的组件元素
替换更新递归

应用级框架科普

1、硅谷明星创业公司vercel的React开发框架.稳定,开发体验好,支持Unbund1 ed Dev,swC等,其同样有Serverless一键部署平台帮助开发者快速完成部署。口号是“Let's Make Web Faster“ 2、字节跳动Web Infra团队研发的全栈开发框架内置了很多开箱即用的能力与最佳实践.可以减少很多调研选择工具的时间。 3、无AP1思想的全栈开发框架,开发过程中无需写AP1调用与cRUD逻辑,适合前后端紧密结合的 小团队项目。