import React from "react";
import ReactDOM from "react-dom";
let state = []; // 为了可以储存多个值
let setters = []; // 存储改变值的方法
let stateIndex = 0; // 根据这个下标查找对应的值和改变值的方法
function useState(initialState) {
// 1. 因为useState可以调用多次,单独一个变量无法存储多个值,所以使用数组进行存储
state[stateIndex] = state[stateIndex] ? state[stateIndex] : initialState; // 每次改变值都会重新渲染,每次渲染都会重新调用useState方法,这个判断是为了组件渲染前是否有存储过值,如果有就取出来,如果没有就取初始传递的值
// 2. 将改变值的方法存储到数组中
setters.push(createSetter(stateIndex))
// 3. 根据下标在存储值的数组查出值,根据下标在存储改变方法的数组查出方法
let value = state[stateIndex]
let setter = setters[stateIndex
useEffect 原理
最新推荐文章于 2024-06-24 09:10:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)