0

希望你一切都好!

这是我的问题。我应该在哪里存储函数?在组件中,还是直接在商店中?

假设我有一个名为 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)

您认为哪个是更好的选择?我猜第二个变体可能会导致更少的重新渲染,所以我应该使用它。谢谢!

4

0 回答 0