You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js项目中可复用SWR钩子的存放位置及替代方案咨询

Next.js中SWR可复用钩子的存放方案

如果你不想把SWR这类API请求钩子和普通hooks混在一起,有几个实用的方案可选:

  • 在hooks文件夹下建子目录区分
    保留根目录的hooks文件夹放普通钩子(比如useDebounce.ts),同时在里面新建api或data子文件夹,专门存放SWR数据请求钩子,比如hooks/api/useUser.ts。这样既沿用了hooks的统一存放逻辑,又通过子目录做了明确区分,找文件的时候一目了然。

  • 单独创建数据相关的顶层文件夹
    直接在项目根目录新建services或data文件夹,把所有和API请求、数据获取相关的SWR钩子都放在这里,比如data/useUser.ts、services/usePosts.ts。这种方式彻底把数据逻辑和普通UI钩子分开,适合项目规模较大、数据请求钩子较多的场景。

  • 和对应API路由关联存放
    如果你的API路由是放在app/api或pages/api目录下,可以在对应API的文件夹内新建hooks子目录,比如app/api/user/hooks/useUser.ts。这种方式让钩子和它对应的API接口直接绑定,维护时能快速找到关联的代码,适合每个API都有专属SWR钩子的项目。

不管选哪种方案,核心是保持项目结构的一致性,团队内部提前约定好规范就行,不用纠结“标准”,适合自己项目的就是最好的。

内容的提问来源于stack exchange,提问作者RonKon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:39:54