最近在写一个三维相关的项目, 按照经验我用的是 Zustand 而非之前我更习惯的 Jotai 了.
这以后我的代码里就多了很多 useXXX.ts
的文件, 按照我原来用 Jotai 习惯的思路我是将 Zustand 的这些 store 尽量和相关的组件贴着, 然后在相关的组件里暴露, 比如一个 KitAside
的组件里要选用不同的 Kit, 那么就 import KitAside, {useKit} from "..."
这样去引入.
但是随着我的业务变得复杂, 我发现我很难再组织一个 store 是和哪个组件相关的, 因为 Zustand 的状态里往往掺杂着逻辑, 而且没法像 Jotai 那样很容易的拆分成子状态. 所以我现在的文件就出现了很多很多的相对引用去引用一个不相干的组件文件里的 store.
我目前的改动是发现有这样的引用就把暴露改到那个 useXXX.ts
文件去, 这样虽然解决了引用的地方来源莫名其妙, 但是已经没能解决大量的相对引用.
各位是如何处理 Zustand 的 store 文件的呢? src 下有个专门的 stores
文件夹还是说和我一样放在相关的组件旁边?
1
foolishcrab 19 小时 18 分钟前 via iPhone
文件夹组织也是样板代码的一部分
zustand 的优点是无样板,放哪按你项目其他部分的分割逻辑来就行了 |
2
foolishcrab 19 小时 15 分钟前 via iPhone
你现在这个问题的根本原因是不是一些应该存在上层的公共状态,错误下沉到了组件里?
你说的两种方式组合起来也是可以的 |