前端小结之响应式系统与React| 青训营笔记

97 阅读2分钟

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

引言

React中响应式原理开发者只需关注状态转移(数据),当状态发生变化,React框架会自动根据新的状态重新构建UI。

React框架在接收到用户状态改变通知后,会根据当前渲染树,结合最新的状态改变,通过Diff算法,计算出树中变化的部分,然后只更新变化的部分(DOM操作),从而避免整棵树重构,提高性能。

1、React的应用

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

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

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

2、响应式编程

1、状态更新,UI自动更新。

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

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

3、React组件化

1、组件是 组件的组合/原子组件

2、组件内拥有状态,外部不可见

3、父组件可将状态传入组件内部

组件设计:

1、组件声明了状态和UI的映射

2、组件有Props/State两种状态

3、组件可由其他组件拼装而成

4、React 的实现

如何解决 JSX 不符合 JS 的标准的问题?

将 JSX 转译为 JS

返回的 JSX 发生改变时,如何更新 DOM ?

JSX 的改变会引起 Virtual DOM 的改变

对改变前后的 Virtual DOM 进行 Diff(How to Diff?)

根据 Virtual DOM 与 DOM 的映射关系,进而更新 DOM

react 组件的 render 函数,在哪些情况下,会被重新执行?

当组件的状态(Props/State)发生改变时,组件和其所有的子组件,会递归地重新执行 render 函数。

5、React 状态管理库

核心思想:将状态抽离到 UI 外部进行统一管理,将状态保存在 Store。

状态全部抽离到 UI 外部的弊端:组件与 Store 强耦合,不适用于 library 的开发,在业务代码中可以将组件公用状态防止在 Store 中

推荐使用:
redux
xstate
mobx
recoil

总结

React VS Vue

  • React 优点

    • React 的开发本身是 jsx,开发时具有高自由度。
    • React 调试更方便。
  • Vue 优点

    • vue 的写法更容易收敛。 今天介绍了响应式系统与React相关知识,还有许多语法知识内容值得关注。 一起打卡学习吧!!!

烟火向星辰,所愿皆成真!