4 年 React 经验 写出这样的业务代码,请问代码质量如何,有什么值得改进的地方吗

2024-06-07 09:31:08 +08:00
 rookie2luochao

github 仓库地址为:openapi-ui

求各位大佬 review 代码,并指导一二

9648 次点击
所在节点    程序员
76 条回复
vczyh
2024-06-07 09:46:27 +08:00
学习学习
rookie2luochao
2024-06-07 09:48:12 +08:00
@vczyh 后端都要疯狂卷前端了吗?给我们留口饭吃😭😭😭
maocat
2024-06-07 10:02:50 +08:00
学习学习,粗略看了下,内联样式比较多,可以用用 tw
rookie2luochao
2024-06-07 10:06:18 +08:00
@maocat 没有用 tailwindcss 完全是个人爱好😭,本人以前一直就比较喜欢 cssinjs 这种接近内联样式的写法(因为写 css 写的不多), 后面为了考虑剥离 cssinjs ,所以将其改成了内联样式写法
gdtdpt
2024-06-07 10:43:11 +08:00
学习学习,看了一下 http 的源码,刚好最近也遇到关于 antd 主题的问题,就是 axios 的拦截器定义是在 react 环境外的,所以在拦截器中直接使用 message 、notification 、modal 静态方法无法响应 antd 的全局主题配置,antd 官方也不建议直接使用此类静态方法。我看 demo 中切换为暗色主题后,当出现"Network Error"的 notification 依然是亮色主题,说明也存在这个问题。想问一下有没有什么好的解决方案,我是用了 vanillajs 的事件机制,不知道有没有其他方案想学习一下。
jones2000
2024-06-07 10:54:00 +08:00
数据请求为什么不放在 woker 里面, 这样后续做批量压测也好搞点, 放 UI 线程里面,又慢,还不能批量。
enchilada2020
2024-06-07 10:55:38 +08:00
@jones2000 能详细讲讲吗 或者给个参考资料啥的也行
jones2000
2024-06-07 10:57:51 +08:00
rookie2luochao
2024-06-07 10:58:42 +08:00
@gdtdpt 确实也遇到了这个问题,但是 message 、notification 、modal 静态方法不能切换主题,就弹一下,好像就暂时忽略了
vczyh
2024-06-07 10:59:38 +08:00
@rookie2luochao 有个疑问,cssinjs 这种对缓存影响大吗?
rookie2luochao
2024-06-07 11:00:40 +08:00
@jones2000 请问这个要怎么理解?数据请求放 worker 里面?
rookie2luochao
2024-06-07 11:01:31 +08:00
@vczyh 不会,打包后,hash 都是算好固定了的,可以支持缓存的
rencoo
2024-06-07 11:08:05 +08:00
文件命名比较随意,有中划线格式的,也有驼峰的;用 useEffect deps 都是不对的,eslint 一打开全是报错;组件的状态和视图逻辑未分离,可以用 useReducer 抽一下。
总体感觉,像一坨大便,估计在大公司要被喷死
jones2000
2024-06-07 11:08:54 +08:00
@rookie2luochao 多线程
realJamespond
2024-06-07 11:17:37 +08:00
不应该用 axios 的拦截器这样写所有实例都被拦截你和别人写的项目别人会疯掉,可以自己写个 hook 包一层,useTryCatch(request),返回结果和 loading 状态,同时在自己的 hook 里面也能用 antd 通知组件
rookie2luochao
2024-06-07 11:22:27 +08:00
@rencoo useEffect deps 确实是不对的,执行 package.json 里面的 lint 可以看到,需要手动修复,这里[有篇文章]( https://developers.pub/article/1020466)你也可以看下,eslint 一打开全是报错是因为我加了强行排序 props 的 warn, 但是我还没有来得及推 eslint --fix 后的代码。命名如何随意了,与你认知不一样而已?组件大写开头,文件夹、函数小写字母 + 中划线?非玻璃心,但是你的一坨大便的评价太随意。我并没有用任何模板,自己能加这么多 eslint 规则,你觉得我会不知道那些 eslint 警告和报错?
rencoo
2024-06-07 11:25:24 +08:00
@rookie2luochao 你用了 useEffect 确不显式的声明依赖,会导致各种奇怪的 bug ;另外我说的是文件命名,有的是 xx-xx-xx ,有的是 XxxXxx 这种,就很乱?另外每个组件里都很多 useState 会让渲染组件失去可读性
rookie2luochao
2024-06-07 11:26:27 +08:00
@realJamespond 不应该用不应该用 axios 的拦截器?可否标记到 github 上面的某一行代码?
rencoo
2024-06-07 11:27:44 +08:00
你是找人 review ,所以给你指出问题,你不会以为自己代码写的很优雅吧?笑死
qingshui33
2024-06-07 11:27:57 +08:00
最近正好在看 React 来着,想咨询个问题,React 中比较流行的编写 CSS 的方式是啥啊?
我看 op 好像是行内样式居多,我个人在写的时候,用的 CSS Module ,但是遇到了这么个问题,就是有的组件,通常一个文件就可以解决,这个时候不想新建文件夹,因为文件夹下就只有这么一个文件,但是如果要把 CSS Module 文件放一起的话,就得新建个文件夹,否则组件多了,感觉就会很乱,大家都是怎么处理这种情况的?

还有个问题就是,React + ts 的时候,大家都是怎么快速找到各种事件对象的类型?

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

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

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

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

© 2021 V2EX