希望你一切都好!
这是我的问题。我应该在哪里存储函数?在组件中,还是直接在商店中?
假设我有一个名为 RevisionList 的组件。一个 RevisionList 呈现多个修订(修订组件)。您可以通过单击选择每个修订版。所以每次修订都需要使用名为 setCurRev 的方法。
所以,我在这里有两个选择。在Revision组件中定义它:
const curRevId = useStore(s => s.curRevId);
const hideRefRevFinalVer = useStore(s => s.hideRefRevFinalVer)
const app = useStore(s => s.app);
const setCurRev = (id: RevId) => {
if (id === curRevId) return;
hideRefRevFinalVer();
app.setRevisionById(id);
};
或者我可以直接在状态切片中定义它:
const setCurRev = (id: RevId) => {
if (id === get().curRev?.id) return;
get().hideRefRevFinalVer();
get().app.setRevisionById(id);
};
然后在 Revision 组件中使用它,如下所示:
const setCurRev = useStore(s => s.setCurRev)
您认为哪个是更好的选择?我猜第二个变体可能会导致更少的重新渲染,所以我应该使用它。谢谢!