⚛️ 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. 理清文件、文件夹设置逻辑,尽量减少数目,思考是否有必要新增

8614 次点击
所在节点    React
82 条回复
sechi
2022-07-27 08:48:07 +08:00
不用电脑✅
Mark24
2022-07-27 08:49:18 +08:00
@HFX3389 说明对技术缺乏基本判断。hooks 太容易出问题 😂
plk403
2022-07-27 08:54:59 +08:00
不上 V2✅
vivipure
2022-07-27 09:05:14 +08:00
all in hooks
zed1018
2022-07-27 09:17:51 +08:00
不用 axios ✅
Lyv5
2022-07-27 09:24:12 +08:00
我们都是菜狗✅
kangyan
2022-07-27 09:28:30 +08:00
月经贴了属于是
ryougifujino
2022-07-27 09:28:37 +08:00
on 和 handle 命名本来就是都要用的啊。
https://reactjs.org/docs/handling-events.html
抄自官网:
function Form() {
function handleSubmit(e) {
e.preventDefault();
console.log('You clicked submit.');
}

return (
<form onSubmit={handleSubmit}>
<button type="submit">Submit</button>
</form>
);
}
mxT52CRuqR6o5
2022-07-27 09:30:38 +08:00
@Mark24
https://stackoverflow.com/questions/38926574/react-functional-components-vs-classical-components
官方态度也是 encourage ,你不想用当然可以不用,但请不要到处宣传谬论 ok ?
ke2933
2022-07-27 09:37:10 +08:00
@Mark24
@Aloento
@sjhhjx0122
公司要求用 Hooks ,个人贼讨厌
jason94
2022-07-27 09:53:45 +08:00
第 3 条就不对

https://reactjs.org/docs/handling-events.html

reactjs 官方示例就是用的 handle ,这样的好处是可以将事件处理函数和其他处理函数区分开。
christin
2022-07-27 09:57:26 +08:00
不用 class 组件 ✅
dont27
2022-07-27 10:01:15 +08:00
不改需求✅
churchill
2022-07-27 10:02:31 +08:00
以我个人浅薄的 react 使用经验来说,hooks 是 react 用起来最舒服的特性之一
我的焦点可以一直在数据上面,不用考虑什么 Mount, Update 各种东西,就好比手指不离开键盘主行
不理解为什么这么多人不喜欢
人与人的悲喜确实不尽相同
guchengzhihuan
2022-07-27 10:04:10 +08:00
不用 React✅
NTZONE
2022-07-27 10:06:56 +08:00
最让我疑惑的句式之一就是最...之一,我认为「最」和「之一」是矛盾的。
dreamerblue
2022-07-27 10:10:02 +08:00
不用 Hooks ✅
不用 React ✅
yuuko
2022-07-27 10:10:29 +08:00
换 Solidjs
lmshl
2022-07-27 10:14:27 +08:00
All in hooks ✅
kongkx
2022-07-27 10:16:44 +08:00
保持一致性就好了,注意命名规范,没那么多条条框框

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

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

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

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

© 2021 V2EX