前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >react 编码规范

react 编码规范

作者头像
程序员王天
发布2023-10-18 19:36:26
1560
发布2023-10-18 19:36:26
举报

# 函数名称

按照惯例,通常将事件处理程序命名为 handle,后接事件名。你会经常看到 onClick={handleClick},onMouseEnter={handleMouseEnter} 等。

传递一个函数(正确)

调用一个函数(错误)

<button onClick={() => alert('...')}>

<button onClick={alert('...')}>

如果按如下方式传递内联代码,并不会在点击时触发,而是会在每次组件渲染时触发:

代码语言:javascript
复制
// 这个 alert 在组件渲染时触发,而不是点击时触发!

<button onClick={alert('你点击了我!')}>

如果你想要定义内联事件处理函数,请将其包装在匿名函数中,如下所示:

代码语言:javascript
复制
<button onClick={() => alert('你点击了我!')}>

# 参数传参:

# 1、箭头函数中执行

代码语言:javascript
复制
function handeClick(data){
  alert(data)
}
<button onClick={()=>handeClick('点我')}> 点我 </butotn>

箭头函数,都会创建一个新的函数实例,因此容易引起性能问题。但是在大多数情况下,性能影响并不显著。

# 2、推荐写法:bind方法

在这种情况下,我们使用 Function.prototype.bind 方法来绑定 handleClick 函数的上下文为 null,并传递参数 param

代码语言:javascript
复制
function handeClick(data) {
  alert(data);
}
<button onClick={handeClick.bind(null, "点我	")}>点我</button>;

# 3、错误写法

以下代码中 handleClick 会在渲染时立即执行

代码语言:javascript
复制
<button onClick={handeClick('韩庆元')>点我</button>

这种行为与 React 的事件处理机制不一致。 在 React 中,事件处理函数应该是一个函数引用,而不是一个函数的调用结果。当你使用 button onClick={handeClick('韩庆元')} 这样的方式时,实际上会立即执行 handeClick('韩庆元') 函数,并将其返回值作为事件处理函数,而不是绑定函数本身。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 函数名称
    • # 参数传参:
      • # 1、箭头函数中执行
      • # 2、推荐写法:bind方法
      • # 3、错误写法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档