React 灵魂拷问:你真的理解它的运行本质吗?

0 阅读3分钟

React的本质:

React是基于状态驱动的声明式的UI库,用组件构建可预测的用户界面

1. React的第一本质

UI = f(state)

即用户界面是由state来决定的例如:图片当state改变的时候:setCount(5)则React会自动更新UI:

<h1>5<h1>

则无需手动操作DOM,React直接帮你完成。

问React为什么存在?

为了解决DOM操作复杂的问题,通过state自动更新UI

2. React的第二本质:声明式的编程(Declarative)

React是声明式的,而不是命令式的;命令式的传统JS:

document.getElementById("title").innerText = "Hello"

React声明式:

<h1>{title}</h1>

只需要声明即可,React会自动地更新。

React的核心思想:

React描述UI,而不是操作UI

3. React的第三本质:Component组件

React是一个组件系统组件的本质:

Component = Function

例如:图片组件可以组合:

function App() {  return (    <div>      <Button />      <Button />    </div>  )}

组件可以让UI:

  • 可复用
  • 可维护
  • 可组合

这是React的核心优势;所以说,React不是在写页面,而是在构建组件系统。

4. React的第四本质:State系统

state是react的核心驱动力

state是UI的数据来源

例如:图片UI会根据state的改变:图片state改变:

setIsLoggedIn(true)

UI会自动更新

React不直接更新UI

state更新 -> React重新渲染 -> UI更新

5. React的第五本质:重新渲染机制(Render)

React核心机制:

state change -> Render -> UI update

流程:

  1. state改变
  2. Component重新执行
  3. React更新UI

例如:图片点击按钮:React:

重新执行 APP()

重新生成 UI。

React re-render 是什么?

Component function re-executes when state changes.

6. React的第六本质:Virtual DOM

React使用Virtual Dom 来提升性能。传统DOM: 修改慢React: 使用Virtual Dom

Virtual DOM -> diff -> real Dom

React只更新改变的部分,不是全部更新,这是react快的原因。

为什么React 快 ?

  1. Virtual DOM
  2. Diff algorithm
  3. Selective updates

7. React的第七本质:单向数据流(One-way data flow)

数据流:

Parent -> Child

通过Props:

function Parent() {
  renturn <Child name="Zane" />
}
function Child(props) {
  return <h1>{props.name}</h1>
}

Props是只读的,不可以修改

props.name = 'John' ❎

React是单向数据流架构

8. React第八本质:React是函数驱动系统

React Component 是函数:

function App() {
  return <h1>Hello</h1>
}

React 的本质:

Component(state) -> state

React 就是不断执行函数,生成UI

9. React的第九本质:Hooks是状态管理机制

Hook让函数拥有state例如:

useState
useEffect
useContext

Hook的本质:

给function 添加state 和 lifecycle能力

这是 React modern architectureClass Component 基本淘汰

10. React的第十本质:React是UI Library,非Framework

React只负责:

UI rendering

不负责:

routing
state management
API

这些需要:

React
Router
Zustand
Axious

这叫 React ecosystem, React生态

React是UI层的解决方案

11. React真正的工作流程

流程:图片这是React的本质流程。

12. React本质总结:

一个基于state的函数执行系统,用组件构建UI,并通过Virtual DOM来高效更新界面

或者更工程化:

React is a state-dirven component rendering engine.

13. 必须理解的React核心能力

核心概念:

Component
State
Props
Render
Hooks
Virtual DOM

14. 你应该把React理解为:

不是:

一个JS库

而是:

UI的操作系统

负责:

state -> UI

15. React本质总结为5条:

React is component-based
UI is driven by state
React uses Virtual DOM
React re-renders when state changes
React uses one-way data flow