React Query:所有查询/突变放单文件还是按组件分文件?
最佳实践:按组件归属拆分GraphQL请求代码
完全应该把组件专属的Queries/Mutations迁移到对应组件目录下,只保留真正共享的请求代码在公共文件中,原因如下:
- 组件职责边界更清晰:每个组件的专属请求逻辑和组件本身放在同一目录,维护时无需在庞大的公共文件中筛选无关代码,比如修改某个子组件的专属查询,直接进入该组件目录就能找到对应的请求文件,效率更高。
- 公共文件轻量化,避免冗余:公共文件只承载多组件复用的请求代码,不会随着业务迭代变成臃肿的“万能文件”,降低后续维护的心智负担。
- 提升组件独立性:专属请求和组件绑定后,子组件的可移植性更强——如果后续需要将某个子组件抽离到其他项目、或者直接删除,能连同它的请求逻辑一起处理,不会在公共文件中留下无用的“遗留代码”。
- 依赖关系更明确:避免组件间接引入自身不需要的请求代码,虽然打包工具可能会做Tree-Shaking,但从代码逻辑层面看,明确的归属能让项目结构更严谨,减少潜在的依赖混乱。
额外注意事项
- 明确“共享请求”的判定标准:只有三个及以上组件复用、或者属于全局通用逻辑(比如用户基础信息查询)的请求,才放在公共文件;如果仅1-2个组件使用,优先考虑移到对应组件目录,或根据团队协作约定灵活处理。
- 统一组件内请求文件命名:建议给每个组件目录下的请求文件统一命名,比如
[ComponentName]Api.js或use[ComponentName]Queries.js,保持项目结构一致性,降低团队成员的查找成本。
内容的提问来源于stack exchange,提问作者nick
相关产品推荐
相关产品推荐

