加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

在你瓦解之前,这8种做法会让React应用措施先瓦解

发布时间:2019-08-28 18:21:19 所属栏目:建站 来源:读芯术
导读:React库的上风很是明明:建设伟大的交互用户界面很是简朴。最大的特点是可以在不粉碎其他组件的环境下,将组件直接组合在一路。纵然是Facebook、Instagram、Pinterest这样的交际媒体巨头也大量行使React,同时通过谷歌Maps这样的大型API缔造无缝的用户体验

在已往有前提地渲染组件的黄金时期,有人曾做过一件事,那就是搜查数据是否行使Object.keys添补到工具中。假若稀有据,那么假如前提通过,组件将继承渲染。

在你瓦解之前,这8种做法会让React应用措施先瓦解

假设挪用了某个API,并在相应的某个处所吸取了作为工具的项。话虽云云,乍一看好像完全没有题目。项目标预期范例是工具,以是用Object.keys完全没题目。事实,假如呈现错误并转化为falsey值,简直可以通过把项初始化为空工具来举办防止。

但处事器不老是返回沟通的布局。假如未来项酿成数组会奈何?Object.keys(items)不会瓦解,但会返回一个稀疏的输出,好比[“0”、“1”、“2”]。被该数据渲染的组件该怎样回响呢?

但这还不是最糟的部门。代码片断中最糟的是,假如属性里收到的项是空值,那么项乃至不会初始化为默认值。

那么在开始行使应用措施前,就瓦解了:

在你瓦解之前,这8种做法会让React应用措施先瓦解

再说一遍,请警惕点!

4. 在渲染前粗心地搜查数组是否存在

这也许和第3条的环境很是相似,可是数组和工具常常可以交流行使,以是应该单列出来。

假如你有这样做的风俗:

在你瓦解之前,这8种做法会让React应用措施先瓦解

那么至少确保有单位测试,始终亲近存眷这段代码,可能在转达给渲染函数前赶早正确地处理赏罚arr,不然假如arr酿成工具笔墨,应用措施就会瓦解。虽然, &&操纵符会以为它是真实的,并实行.map工具笔墨,这最终导致整个应用措施的瓦解。

以是请紧记于心。节减你的精神以及挫败感,把它留给更值得你出格存眷的大题目吧!

5. 没有行使Linter

假如在开拓应用措施时,没有行使任何范例的linter,可能基础不知道它们是什么,你必需知道为什么它们在开拓中很有效。

用来帮助开拓流程的linter是ESLint(https://eslint.org/?source=post_page---------------------------),这是一个闻名的JavaScript的linting器材,它应承开拓职员在不执行代码的环境下发明题目。

这个器材很是有效,它就像半个导师一样,实时更正错误——就仿佛有人在指导你一样。它乃至描写了为什么你的代码也许是错误的,并提议你应该做什么。

这里有一个例子:

在你瓦解之前,这8种做法会让React应用措施先瓦解

关于ESLint最酷的是,假如不喜好某些法则或是差异意个中的一些法则,可以禁用这些法则,这样它们就不会在开拓时表现为 linting告诫/错误了。

6. 在渲染列表时举办解构

已往有些人呈现过这种环境,并且很难检测到裂痕。根基上,假若有一个项目列表,而且筹备渲染每个项目标一堆组件,假如列表中有一个项目不是等候值,那么应用措施会呈现裂痕。假如应用措施不知道如那里理赏罚值范例,就有也许会瓦解。

这里有一个例子:

在你瓦解之前,这8种做法会让React应用措施先瓦解

在你瓦解之前,这8种做法会让React应用措施先瓦解

在你瓦解之前,这8种做法会让React应用措施先瓦解

代码可以乐成地运行。来看看API挪用,而不是返回这个——

在你瓦解之前,这8种做法会让React应用措施先瓦解

——假如在API客户端呈现了不测环境而且返回这个数组时,怎样办理这个题目呢?

在你瓦解之前,这8种做法会让React应用措施先瓦解

那么应用措施就会瓦解,由于它不知道如那里理赏罚:

  1. Uncaught TypeError: Cannot read property 'name' of undefined 
  2.     at eval (DataList.js? [sm]:65) 
  3.     at Array.map (<anonymous>) 
  4.     at DataList (DataList.js? [sm]:64) 
  5.     at renderWithHooks (react-dom.development.js:12938) 
  6.     at updateFunctionComponent (react-dom.development.js:14627) 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读