valtio
使用proxy实现响应式,直接对状态对象修改,自动追踪并重新渲染相关组件
无法追踪状态对象中的对象的属性
import { proxy, useSnapshot } from 'valtio';
const state = proxy({ count: 0 });
const Counter = () => {
const snap = useSnapshot(state); // 自动追踪状态变化
return (
<div>
<p>{snap.count}</p>
<button onClick={() => state.count++}>Increase</button>
</div>
);
};
zustand
状态存储在一个store中,显式调用set来更新状态,调用subscribe来订阅状态更新,