在 React 组件中争取最低要求的状态
·
尽量减少组件状态并避免不必要的状态同步。
🚫 重构之前 - b 是一个冗余状态,应该是同步的:
export default function App() {
const [a, setA] = useState(1);
const [b, setB] = useState(1);
function updateA(x) {
setA(x);
};
function updateB() {
setB(1 + a);
};
useEffect(() => {
updateB()
},[a])
return (
<div>
<button onClick={() => updateA(a+1)}>Click</button>
<p>a: {a}</p>
<p>b: {b}</p>
</div>
)
};
进入全屏模式 退出全屏模式
✅ 重构后 - a 是一个最小的充分状态,只从它派生 b:
export default function App() {
const [a, setA] = useState(1);
function updateA(x) {
setA(x);
};
function updateB() {
return a+1
};
return (
<div>
<button onClick={() => updateA(a+1)}>Click</button>
<p>a: {a}</p>
<p>b: {updateB()}</p>
</div>
)
};
进入全屏模式 退出全屏模式
更多推荐
所有评论(0)