⚛️ React 开发最佳实践

2022-07-26 23:00:17 +08:00
 nanxiaobei

非常基础非常初级非常幼稚的 React 开发看了想打人的 React 开发最佳实践,但我保证每个大公司都有这样的代码,所有的屎山项目都是这么累计起来的而且大家不以为意。

  1. 多层 props 传递,保持命名一致
    onChangeonChangeonChange
    onChangehandleChangechange

  2. 若对函数包装后传递,保持命名不一致
    onChangeonTextChange = () => { onChange() }onTextChange
    onChangeonChange = () => { props.onChange() }onChange

  3. 保持命名简洁
    onChange
    handleChange

  4. 保持命名明确
    onChange paginationTotal
    change pagiTotal

  5. 传递不同组件的 props ,保持前缀区分
    tableColumns tableLoading btnType btnText
    columns loading type text

  6. 将 props 按照一定的规则排序,例如 UI 中出现顺序、或变量类型、或重要程度等

  7. 保持文件与目录的命名,单复数符合常规
    common config components utils
    commons configs component util

  8. ''0 在 jsx 中一定要做判断
    val !== '' && 123 val !== 0 && 123
    val && 123

  9. 保持文件、文件夹大小写一致
    ShopList ShopDetail
    shop-list ShopDetail

  10. 保持文件夹命名与 url 对应
    /Shop/List.jsx/shop
    /BestShop/List.jsx/shop

  11. 保持文件夹层级与 url 一致
    /Shop/A.jsx/shop/a/Shop/B.jsx/shop/b
    /Shop/A.jsx/shop/a/Shop/Center/B.jsx/shop/b

  12. 理清文件、文件夹设置逻辑,尽量减少数目,思考是否有必要新增

9696 次点击
所在节点    React
82 条回复
Oktfolio
2022-07-27 10:17:32 +08:00
换 Angular✅
qiumaoyuan
2022-07-27 10:26:35 +08:00
其实你们所谓的“屎山”跟这些所谓的规范关系不大。屎的主要来源是重复代码,完。
avv
2022-07-27 10:33:28 +08:00
竟然没人提 VUE✅
duanxianze
2022-07-27 10:35:38 +08:00
不做前端了✅
lankunblue
2022-07-27 10:38:21 +08:00
@bthulu 比如说?
CodingNaux
2022-07-27 10:39:09 +08:00
比起这些,代码的可读性更重要吧
linkopeneyes
2022-07-27 10:59:31 +08:00
@churchill 不够直观,每个人你不知道他的水平,接手别人的代码,每个 hook 都要点进去从头到尾看一遍,hook 看似很美好,但是纯函数的组件我写起来就觉得奇怪,好像有洁癖一样的组件和 hook 要纯洁单一,但是写业务的时候没法纯洁单一,每次为了代码看起来整洁一点,抽了一堆 hook 出来,结果没整洁反而更奇怪了,不过也可能是我 angular 写习惯了
TWorldIsNButThis
2022-07-27 11:16:44 +08:00
@sjhhjx0122 写成 service 不是也要看一遍?这个区别在哪
linkopeneyes
2022-07-27 11:27:14 +08:00
@TWorldIsNButThis 没什么区别,可能是写 class 更符合我的直觉
v2pxpx
2022-07-27 11:41:21 +08:00
不用 React ✅
v2pxpx
2022-07-27 11:43:43 +08:00
@qiumaoyuan 我认为的”屎“,是简洁。你可以通过一种更加简洁的代码实现相同的功能,不仅仅是代码量
nzbin
2022-07-27 12:53:44 +08:00
《 Angular 代码风格指南》自取
https://angular.cn/guide/styleguide
mingdongshensen
2022-07-27 12:54:25 +08:00
作为初学者,觉得 hook 挺不错的,第三方库的 hook 都设计的挺好用起来也方便,自定义 hook 写不太多,大家不想用 hook 可能是因为自定义 hook 设计难度?
mingdongshensen
2022-07-27 12:56:14 +08:00
不用 class ✅
zxCoder
2022-07-27 13:04:55 +08:00
不用 jsx✅
fo0o7hU2tr6v6TCe
2022-07-27 13:47:21 +08:00
最近正在学习 react ,很好奇为啥不用 hooks.....
bzw875
2022-07-27 13:54:43 +08:00
用不用 Hooks 听老板的,我都行
linzhipeng
2022-07-27 14:23:01 +08:00
不用 react✅
w6a
2022-07-27 14:28:00 +08:00
用 JQuery ✅
vampuke
2022-07-27 15:02:38 +08:00
想问问第 8 条

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

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

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

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

© 2021 V2EX