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

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

github 仓库地址为:openapi-ui

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

9659 次点击
所在节点    程序员
76 条回复
rencoo
2024-06-07 11:29:52 +08:00
@qingshui33 tailwindcss ,避免样式体积不断增大
rookie2luochao
2024-06-07 11:30:24 +08:00
@rookie2luochao deps 要修复,这个建议接纳,还没来得及更新上去。文件命名我组件就是 XxxXxx ,文件夹是 xx-xx-xx ,入口、utils 、config 就是 xx ?那我用了很多 useState 要怎么改进才有可读性?
rookie2luochao
2024-06-07 11:31:24 +08:00
@rencoo 我感谢你的指出,但是没必要直接就说一坨大便吧,素养?
rookie2luochao
2024-06-07 11:32:43 +08:00
@qingshui33 前几年流行 cssinjs, 最近流行 tailwindcss 这些预制 css ,但是 tailwindcss 不写熟练随时对着文档看,而且超难维护,个人感觉
rookie2luochao
2024-06-07 11:33:24 +08:00
@qingshui33 尽量不要写行内样式,我是样式确实很少,所以写了点行内样式
MMM25O7lf09iR4ic
2024-06-07 11:34:16 +08:00
作为一个非资深后端程序员,我有一个疑问,为啥文件名一会大写一会小写开头?是有什么规范吗?
rookie2luochao
2024-06-07 11:35:25 +08:00
@erwsd32ew 文件名大写是前端领域里面组件的概念,组件建议大写命名,其他 utils 这些建议小写
rencoo
2024-06-07 11:36:06 +08:00
@rookie2luochao 4 年经验写成这样,还有脸?
rookie2luochao
2024-06-07 11:42:08 +08:00
@rencoo 感谢你的建议,我不会在回复你了,感觉你的话语好像充斥着被社会毒打的不满,人其实心态也很重要
chanChristin
2024-06-07 11:42:48 +08:00
@rookie2luochao #27
可以把组件都放到 components 文件夹里,方便区分,你这组件和其他文件都写在同一层级里了。
路由写的有点麻烦了,每个文件夹里都有一个 route 文件,可以统一写到一个路由文件里,方便查找维护。
rookie2luochao
2024-06-07 11:44:51 +08:00
@rencoo 我刚刚已经修复了大部分 eslint 警告,而且你也可以看下我上面发的那个关于 deps 的文章,大佬们对 deps 的见解也不一样
rencoo
2024-06-07 11:46:28 +08:00
@erwsd32ew 他就是瞎搞的,还以为自己很优雅,mac 上文件名大小写不敏感,使用大写的话,会导致 bug
rookie2luochao
2024-06-07 11:46:55 +08:00
@chanChristin 我是业务组件就和模块一起放的,纯组件放到了 components 里面,不知道你说的可以把组件都放到 components 文件夹里是说的业务组件吗,文件夹里都有一个 route 文件也是个人习惯,vue 里面一直都是一个 route 文件
yohane3016
2024-06-07 11:51:08 +08:00
整个项目有 0 个 useCallback 和 1 个 useMemo ,MainLayout 第一个 useEffect 就有问题,整个项目不必要触发的更新数不胜数。文件名大小写连字符无所谓,但是你得统一啊,那么大一个 Section 是看不见吗,还有单复数,要么都单数要么都复数,这种你随便找个规范遵循都行,别只遵循你自己的规范。
4Et5ShxMIq58n6Lr
2024-06-07 11:51:15 +08:00
不喜欢 内联样式
chanChristin
2024-06-07 11:51:32 +08:00
@chanChristin 文件名看的我好难受啊,有大驼峰小驼峰还有-连接的。
我提个小建议,你所有的组件都用大驼峰的形式来写,src/components 里面的就写文件夹,比如 app-title ,就写个文件夹叫 AppTitle ,里面写 index.jsx ,如果需要修改样式就写 index.css ,引用的时候就直接引用 src/components/AppTitle 就可以了。

```
useEffect(() => {
valueRef.current = v;
});
```
这个代码有问题,没有依赖,还有 readme 里面的
```
const SetUpOpenApiUI = () => {
useEffect(() => {
import("openapi-ui-dist")
}, []);
```
import 不需要用 useEffect
chanChristin
2024-06-07 11:53:21 +08:00
@rookie2luochao #33
业务组件和模块放一起没毛病,那也可以在业务组件旁边新建一个 components 文件夹,把组件都放进去。
每个文件夹里都有 route 不觉得很繁琐吗?新建一个组件就需要写一个路由文件,整合在一起方便查方便写。
otakustay
2024-06-07 12:17:09 +08:00
没看出什么特征,几乎没有抽象的感觉,一堆可以往外提的函数写在组件里面,代码大概率过不了 react-hooks 的 lint 规则。比较像 4 个月经验的人的代码
XCFOX
2024-06-07 12:32:21 +08:00
整个项目没有任何性能优化,根组件的 update 将导致整个页面的 update 。没有 memo 。只有两个 useMemo ,其中一个 useMemo 根本没必要,应该直接提升出组件外作为常量。
qfdk
2024-06-07 12:46:59 +08:00
看了下... 感觉就是个玩的项目. 可复用组件放在 components 里面并且需要大写开头. 没必要 每个都建立一个文件夹放一个 index.... 这个都不方便代码查找. 比如里面的 curl 是个什么鬼? 第一眼就没看明白. 另外页面最好建一个文件夹叫做 pages 扔里面.....
非专业前端, 但是看了代码以及项目结构 跟我校大一新生差不多....
建义找下最佳实践看看

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

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

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

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

© 2021 V2EX