当前位置:首页 > 科技  > 软件

深度探讨 useEffect 使用规范

来源: 责编: 时间:2023-12-22 09:36:09 328观看
导读我们在乘坐地铁或者公交车的时候,在地铁门或者公交车门的旁边往往会有「禁止依靠」这样的标识。目的是为了警告乘客不要依靠车门,否则开门的时候容易出现不可预测的危险。但是如果我们仔细去分析这个危险的话,就会知道,他

gnI28资讯网——每日最新资讯28at.com

我们在乘坐地铁或者公交车的时候,在地铁门或者公交车门的旁边往往会有「禁止依靠」这样的标识。目的是为了警告乘客不要依靠车门,否则开门的时候容易出现不可预测的危险。gnI28资讯网——每日最新资讯28at.com

但是如果我们仔细去分析这个危险的话,就会知道,他的真实情况是,在车辆运行过程中,车门紧闭,你依靠在车门上也并不会出现危险,我们在上班高峰期挤地铁的时候,大量的人也不得不紧靠车门,甚至有的人被挤扁压在车门上。gnI28资讯网——每日最新资讯28at.com

在制定团队项目规范时也会这样,例如,我在带领团队时,一定会制定一条规范,要求每次代码提交之前,个人必须检查你的代码里是否存在意外的修改,可能有的人在提交之前手抖往代码里输入了一个空格或者逗号,从而导致重大事故。这是一个低概率发生的事情,但是我仍然会要求每次提交都要检查。gnI28资讯网——每日最新资讯28at.com

那么,是不是也就意味着,如果不遵守我这个规范,就一定会发现不可预测的重大事故呢?其实并非如此,我们制定规范的目的是为了让程序变得可控,比如团队里面有10个人的习惯都比较好,从来不会出现意外内容提交的情况,但是只要有一个人出现两次因为手抖把意外的修改提交到了代码仓库,那么这条规范就会出现。gnI28资讯网——每日最新资讯28at.com

既然这条规范的出现是为了避免意外的发生,于是有一个项目成员就对我的规范提出了质疑,他认为可以在配置上增加 pre-commit 的代码规则检测,如果有意外的发生,那么代码规则检测不会通过,我们就不用每次在提交之前花费心力去检查每一条 diff 里的修改了。gnI28资讯网——每日最新资讯28at.com

虽然我最终没有同意他的提议,但这是一个非常好的思路gnI28资讯网——每日最新资讯28at.com

所以作为一个优秀的开发者,我们到底是应该只要遵循规范就是完事了,还是应该去看懂规范出现的背后逻辑,从而灵活的运用他,或者探寻更好的解决方案呢?gnI28资讯网——每日最新资讯28at.com

我的答案是后者。gnI28资讯网——每日最新资讯28at.com

如果在这个观念的基础之上我们能达成共识,我们再来一起结合 React 官方文档,对 useEffect 的使用规范进行深入探讨。gnI28资讯网——每日最新资讯28at.com

在这之前,我们要首先明确一下 useEffect 的语法规则,useEffect 的依赖项必须是 state 与 props,否则依赖项发生了变化,effect 也不会执行。所以有的人说:我不愿意把 state 放到依赖项里,甚至反感这样的行为,我认为是没有任何理论依据的。gnI28资讯网——每日最新资讯28at.com

一、计算属性

在 vue 和 mobx 里都有计算属性这样的概念。因此有的人就想,在 react hook 中,是否可以借助 useEffect 来达到计算属性的目的。gnI28资讯网——每日最新资讯28at.com

官方文档明确的建议是,不需要这样做gnI28资讯网——每日最新资讯28at.com

// 案例来自官方文档// https://zh-hans.react.dev/learn/you-might-not-need-an-effectfunction Form() {  const [firstName, setFirstName] = useState('Taylor');  const [lastName, setLastName] = useState('Swift');  //  
                

本文链接:http://www.28at.com/showinfo-26-51826-0.html深度探讨 useEffect 使用规范

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 14张图巧妙的理解数据结构

下一篇: Python 中的 Time 和 Datetime 模块

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 中兴AX5400Pro+上手体验:再升级 双2.5G网口+USB 3.0这次全都有

    2021年11月的时候,中兴先后发布了两款路由器产品,中兴AX5400和中兴AX5400 Pro,从产品命名上就不难看出这是隶属于同一系列的,但在外观设计上这两款产品可以说是完全没一点关系
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
  • 中关村论坛11月25日开幕,15位诺奖级大咖将发表演讲

    11月18日,记者从2022中关村论坛新闻发布会上获悉,中关村论坛将于11月25至30日在京举行。本届中关村论坛由科学技术部、国家发展改革委、工业和信息化部、国务
Top