玩转 React Hook:提升开发效率的实用技巧与经验分享

224 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

React hooks - 平时开发细节最佳实践

开头

个人平时对工作开发时的一些积累与心得。

内容

使用ES6

干净的代码总是值得被赞赏的, 使用ES6语法让你的代码更干净。

箭头函数

箭头函数可以使函数定义更加简洁。它们可以减少代码行数,并且自动绑定this。另外,箭头函数还可以更好地处理闭包。

使用模版字符串

模板字符串可以使字符串拼接更加简洁易读,并且支持在字符串中插入表达式,这在一些情况下非常有用。

使用 const & let

使用constlet声明变量可以避免变量提升和意外修改变量的问题,并且可以使代码更加健壮。

对象的解构

对象的解构可以使代码更加简洁易读,并且可以从对象中提取需要的属性,这在访问API返回的数据时非常有用。

简洁的定义对象

ES6提供了简洁的方式来定义对象,可以使代码更加简洁易读。使用对象简洁定义语法时,可以使用变量名作为属性名和值。

使用map遍历数据时,记得带上key

我们如果经常使用react相关表格ui库,就会知道如果缺少key或者key并不唯一,显示会出现问题或者报错以及一些列性能问题等等,关于key介绍

命名问题

组件开头的方法名应该遵守PascalCase(大驼峰)命名

文件夹命名问题

  • React 组件的文件夹命名都是 大驼峰

  • 如果是组件文件,则使用 大驼峰,如 MyComponent.js

  • 如果组件是一个目录,则组件主入口命名为 index,如 index.js

  • 其他文件或文件夹均为小驼峰

普通变量 & 方法名 & 常量

采用一致的命名约定可以使代码更易于阅读。在JavaScript中,通常使用camelCase(小驼峰)格式来命名变量和方法,而常量则使用全大写格式,并使用下划线分隔多个单词。

ID & Class名单词与单词之间应该使用 -

在HTML和CSS中,ID和Class名应该使用连字符 "-" 来分隔单词,以提高可读性。

react Api

react不应随便使用原生DOM元素

避免在 React 中使用原生 DOM 元素:推荐使用 React 提供的 DOM 元素操作方法(如 refs)来替代。

使用 useEffect去监听事件时,记得rmove它

使用 useEffect 去监听事件时,记得在组件卸载时进行清除操作,避免内存泄漏。

有条理的数理文件夹和文件

保持有条理的文件夹和文件结构:根据功能或模块划分文件夹,并在文件夹内使用有意义的文件命名规则,以提高代码可读性和可维护性。

组件是index命名的入口文件

如果组件文件名为 index.js,则在导入时可以省略文件名。

props过多,采用对象的方式收集再传给子组件

如果需要传入大量的 props,可以考虑将它们收集到一个对象中,然后将该对象作为单个 prop 传递给子组件。

不要尝试在修改完setState, 立即可以看到变化 详情可查看

1避免在 setState 后立即访问修改后的 state 值,因为 setState 是异步的,它可能不会立即更新 state 的值。如果需要在 state 更新后执行某些操作,可以使用 useEffect 或 setState 的回调函数。

useEffect 的依赖数组中不要使用引用类型

在 React 中,当依赖数组中的值发生变化时,会触发 useEffect 的回调函数执行,如果依赖数组中有引用类型的值,那么在每次渲染时,该值都会创建新的引用。这意味着在每次渲染时,依赖数组中的引用类型值都是新的,即使它们的值没有实际发生变化,这会导致 useEffect 认为依赖项发生了变化,从而重复执行回调函数。

使用 useMemo 对计算量较大的操作进行优化,以避免重复计算和提高性能。

将组件逻辑拆分为自定义 hook,以提高代码的可重用性和可维护性。

避免在 useEffect 中直接使用 async/await,因为 useEffect 不能直接返回 Promise,可以使用一个自执行的 async 函数来解决。

规范方面

使用 ESLint 和 Prettier 等工具来进行代码规范化和格式化,以提高代码质量和可读性。

细节方面

边界问题处理

在处理对象和数组时,应该考虑到边界情况,如对象和数组中的null和undefined值。这些值可能会导致代码出错或产生。

避免过多使用行内样式

避免过多使用行内样式:推荐使用外部样式表或 CSS-in-JS 库,以提高代码可读性和可维护性。

结尾

路过的小伙伴觉得有用的话,点点赞收藏下哦❤