翻去年的项目发现的,当时用这个库替换了zustand,现在完全不记得在哪里看到的了。
不过写起来非常简单,约等于直接使用useState的钩子。
这个库就是resy - npm (npmjs.com)
// src/store.js
import { createStore } from "resy";
// 创建一个状态管理
export const customStore = createStore({
count: 0,
data: await fun()
});
// src/app.js
import { useStore } from "resy";
import { customStore } from "./store";
function App() {
const { count } = useStore(customStore); // or customStore.useStore();
return (
<>
{count}
<button onClick={() => customStore.count++}>increase</button>
</>
);
}
在zustand里面,点击的回调要写成 customStore.setState( {count:count+1} )。
前年逛掘金学到zustand的时候就惊为天人,写起来省事太多了。现在觉得这个玩意更简单。大家觉得怎么样,一起玩玩看吧。