关于 react 项目结构的疑惑

111 天前
 iGmainC

现在手头的一个项目需要从零开始

现在搭的项目结构为:

src
├── api
│   ├── auth
│   └── index.ts
├── components
│   ├── A
│   ├── B
│   └── C
├── pages
│   ├── APage
│   ├── BPage
│   └── CPage
├── route.tsx
├── store
│   ├── XXX
│   └── XXX
└── utils

技术栈为:vite + tailwindcss + nextui + zustand + axios

问题 1:这套项目结构和技术栈有什么问题吗

问题 2:在使用过程中 api 出错式报错的 alert 应该采取什么方案,我现在是错误边界来处理组件本身的异常错误,window.onunhandledrejection 来捕获 api 错误,有没有什么更优雅的 api 报错方案

2127 次点击
所在节点    React
8 条回复
shipLoad
111 天前
第一个问题 项目结构和技术栈目前来说已经够用了 基本上都是新的技术 没什么问题
第二个问题 axios 里面有内部的 error 接口 你可以去 axios 文档看看
XCFOX
111 天前
我建议你放弃思考直接用框架的答案。
如果当前项目是基于 React-Router 的话上 remix: https://remix.run/
不然的话直接上 https://nextjs.org/

啥目录结构、错误处理框架都给你安排得明明白白:
https://remix.run/docs/en/main/guides/errors
https://nextjs.org/docs/app/building-your-application/routing/error-handling
iGmainC
111 天前
@shipLoad 请教一下,如果 api 有报错,我是应该包成统一的 ApiError 格式往上 throw ,监听那里接到就按照错误渲染 alert ,还是应该搞一个 store ,报错之后往 store 里塞错误信息
iGmainC
111 天前
@XCFOX 现在用的确实是 React-Router ,主要是对前端的这种技术栈不是特别了解
vance123
111 天前
无所谓的,能跑起来就行,将来慢慢优化
stimw
111 天前
如果是 TypeScript ,那么 router 更推荐 https://tanstack.com/router/v1

React Router 这个逆天库已经不想评价了。。

然后新项目的话可以无脑 nextjs ,也不需要关心 router 。

我不太喜欢 nextui ,shadcn 自主性更强一点。不过这个见仁见智。
stimw
111 天前
api 错误是指 fetch 报错?
新项目的话纯 axios 也可以扔了,看一下 react-query (一天内足够)。
ZSeptember
111 天前
react-query 内部再使用 axios ,而不是自己 useEffect 套 axios 。
react-query 有 onError ,axios 也有 interceptors 可以统一处理报错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1010728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX