logo

useState 的实现原理

Published on

故事背景

useState 是最常用的 Hook,我通过源码探索了它的工作机制。

设计思路

  • 分析 Hook 的存储机制。
  • 理解状态更新的流程。
  • 伪代码

js

let hookStates = [];
let cursor = 0;

function useState(initialValue) {
  const currentCursor = cursor++;
  hookStates[currentCursor] = hookStates[currentCursor] || initialValue;
  const setState = (newValue) => {
    hookStates[currentCursor] = newValue;
    rerender();
  };
  return [hookStates[currentCursor], setState];
}
🤪 您也可以编辑此页: