细数那些“合法但有病”的JS操作,看看有几个你中招了?

“合法但有病”:顾名思义就是,你这行为虽然合法,但是多少有点大病的意思。这个梗起源于抖音上的短视频博主。写这篇文章的初衷,是为了纪念我最近在做“代码重构”的过程中,所见到的“谜之操作”,我尊称为“合法但有病”之JS操作系列。来看看有几个你中招了?

一、Array.prototype.map()

因为 map 生成一个新数组,当你不打算使用返回的新数组却使用 map 是违背设计初衷的,请用 forEach 或者 for-of 替代。

二、使用Math.random()做React/Vue列表组件的key

<div>
{
  [1,2,3].map((_d)=>{
    return <div key={Math.random()}>{_d}</div>
  })
}
</div>

key是节点的唯一标识,react基于key识别节点,做diff算法。

我曾经很暴力的替同事改过一个echarts 渲染错乱的bug,用Math.random()作为key,控制强制更新组件,真的很有用。但是不建议用。

未完待续......

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值