react的知识点总结(1)
admin
2024-05-20 01:54:42
0

React中的key值的作用是什么?

react中key值主要是用来识别组件的,key值相同时,在后期操作的时候,react在创建key值相同的组件时,遇到key值相同的,不会重新创建;
有了key值之后,key值与组件就会形成一种对应的关系,react会根据key值来绝对组件的创建销毁或者更新;
如果key值相同,组件的属性发生了变化,这时组件不会被销毁,只会对响应的属性进行更新;
如果key值不同,那么组件会先被销毁,之后再重新创建;

react中的性能优化有哪些方式?

1)react通过操纵虚拟DOM,不进行节点操作,最大限度的减少与真实DOM的交互,这样可以提高性能;
2)shouldComponentUpdate,在这个生命周期内,我们可以进行新旧两个state和props的对比,如果数据没有发生变化,这个函数就会返回false,这样后面的生命周期就不会执行,render函数也不会重新渲染,这样也可以提升性能;
3)immutable,immutable的特点就是不可修改,改变它的任何数据时,都会重新生成一个新的对象,修改只会在新生成的对象上修改,原数据不会发生改变,这样就可以避免把所有节点都复制一遍,降低性能损耗;immutable的实现原理就是数据结构共享;

react中如何修改state中的数据?this.setState是同步的还是异步的?this.setState中的第二个参数的作用是什么?为什么是异步的?

1)通过this.setState来修改state中的数据;
2)this.setState是异步的;
3)其中有两个参数,第一个参数是一个对象或者是一个函数(必须返回一个对象),
函数中的第一个值为(prevState),第二个参数是(prevProps)
例:


this.setState((prevState,prevProps)=>({ }))

4)为什么是异步的,一位state可以批量执行,也就是说当多个setState一起同时执行时会被合并,提高DOM的渲染效率;
5)this.setState什么时候是同步的?原生js绑定的事件,setTimeout/setInterval等,(就是不受react机制控制时)
6)this.setState本身其实是一个同步的,异步不是因为本身的运行机制或者代码,而是因为他所在的合成事件和钩子函数的调用顺序在更新之前,导致函数内没法立即拿到更新后的值,形成了所谓的异步,可以通过第二个参数中的callback拿到更新后的结果;

render函数什么时候会执行?

当this.setState发生变化时就会更新;

this.setState执行后会执行哪些生命周期函数?

shouldComponentUpdate、componentWillUpdate、render、componentDidUpdate

call、apply、bind三者之间的区别?

call和apply都是直接调用函数的;
bind每次调用执行的时候都会返回一个新的函数体,新的函数体内部的this指向才是我们需要改变指向的this;

组件第一次加载时执行的生命周期有哪些?

constructor、componentWillMount、render、componentDidMount

哪些生命周期会执行一次?

constructor、componentwillMount、componentDidMount、componentWillUnmount

哪些生命周期会执行多次?

render、componentWillReceiveProps、shouldComponentUpdate、componentWillUpdate、componentDidUpdate

当this.props执行后会执行哪些生命周期?

componentWillRecevieProps、shouldcomponentUpdate、componentWillUpdate、render、componentDidUpdate

当组件的key值发生变化时会执行哪些生命周期?

componentWillMount、constructor、componentWillMount、render、componentDidMount

react中如何创建一个组件?

1)class 组件名称 extends Component{ };
2)var App=React.createClass({ });

react中如何定义自定义属性,以及限制外部数据的类型?

自定义属性:
组件名称.defaultProps={
key:val,
}
限制外部数据类型:引入第三方依赖propsTypes;
组件名称.propsTypes={
key:propsTypes.类型
}

react中常用的路由配置项?

BrowserRouter 路由根组件,路径不带#号history路由
HashRouter 路由根组件,路径带#号hash路由
withRouter 对非路由渲染的组件组件进行包裹,让其具备三个属性
Route 定义路由
Link 路由跳转,没有动态属性,使用场景,非tabBar
NavLink 路由跳转,有动态属性,使用场景,tabBar
Switch 路由渲染,被其包裹的组件只会被渲染一个,包裹时最好将子组件 放在这个标签之外,父组件放在内部
Redirect 路由重定向

reatc路由中Route渲染组件的方法有哪几种?区别是什么?

1)component:使用component渲染的路由组件会有三个自带的属性,localtion、history、match,他的缺点是不可以进行传参,不可以渲染非组件标签;
2)render:使用render渲染的路由组件可以进行路由传参,可以渲染非组件标签,但是不具备三个属性,如果需要使用的话,需要传参传递进来;

如何控制路由的路径完全匹配?

在NavLink或者Route标签中添加exact属性,是路径完全匹配

react中路由传递参数的方法有哪些?

动态路由:
定义路由时:采用/😕:这种形式;
路由跳转时:路径+key形式;
接收:this.props.match.params;
query传值:
定义路由时:与正常时相同;
路由跳转时:使用字符串拼接;
接收:this.props.location.search
对象传值:
定义路由时:与正常时相同;
路由跳转时:使用对象,内部包含定义路径的对象和传递参数的对象;
接收:this.props.history.query
编程式导航:
this.props.history.push({路径部分},{参数部分})
注意:使用对象传值以及编程式导航传值时如果页面刷新,那么传递的值就会消失;

为什么要使用虚拟DOM?(什么是 Virtual DOM?)

虚拟DOM
那就是虚拟DOM概念出现的地方,并且其性能要比真实DOM好得多。虚拟DOM只是DOM的虚拟表示。每当我们的应用程序状态更改时,虚拟DOM就会更新,而不是真实DOM。
React如何使用虚拟DOM
在React中,每个UI块都是一个组件,每个组件都有一个状态。React遵循可观察的模式,并监听状态变化。当组件的状态改变时,React更新虚拟DOM树。虚拟DOM更新后,React然后将虚拟DOM的当前版本与虚拟DOM的先前版本进行比较。此过程称为“差异化”。
一旦React知道哪些虚拟DOM对象已更改,然后React就会在真实DOM中仅更新那些对象。与直接操作真实DOM相比,这使性能好得多。
原因:对于局部的小视图的更新,重新构造整棵 DOM没问题;但是对于大型视图,如全局应用状态变更的时候,需要更新页面较多局部视图的时候,这样的做法不可取。 Virtual DOM只是加了一些特别的步骤来避免了整棵 DOM 树变更。
总结来说就是:
频繁的DOM操作昂贵且性能沉重。
虚拟DOM是真实DOM的虚拟表示。
React使用虚拟DOM来增强其性能。
JS 和 DOM 之间的缓存

相关内容

热门资讯

手机被偷,第一件事情应该干什么... 手机被偷,第一件事情应该干什么?首先打开电脑并登陆手机的账户,对手机实行定位,之后远程打开挂失模式,...
餐厅服务员,遇到退菜该怎么办? 餐厅服务员,遇到退菜该怎么办?餐厅服务员碰到客人退菜,首先要问清楚退菜的原因,自己能解释清楚就自行处...
刘家成委员称,影视剧选角不能唯... 刘家成委员称,影视剧选角不能唯流量论,你觉得演技重要还是流量重要?其实我们都知道很多时候有一些明星是...
作文灰太狼回乡记童话故事 作文灰太狼回乡记童话故事这是我本人原创,而且是第一次创作童话,想必有不妥之处,请君参考! ...
前世今生布莱恩魏斯孩子适合看吗 前世今生布莱恩魏斯孩子适合看吗适合。《前世今生》是2008年由江苏人民出版社出版的图书,讲述一个27...
假期读完这六本书我突然不浮躁了 假期读完这六本书我突然不浮躁了读完这6本书我突然不浮躁了!《就这样读懂心理学》作者:璞玉英华科普小分...
手机内存卡哪里买 手机内存卡哪里买一般,手机店都有。新蛋网或京东网,4G的TF卡只卖几十元,有正品保障.并且有发票,比...
求好听的古代嫔妃封号 求好听的古代嫔妃封号虞、笙、晟、萌、艾、魅、珂、晗墨 湘 茗 曦 璃 萧 懿 娴
古筝考级 有用吗? 古筝考级 有用吗?有用的,如果你的级别到8级以上,考大学在同龄人面前,录取的几率就大一些
爱无悔中罗仁杰什么时候见到高明... 爱无悔中罗仁杰什么时候见到高明月你好,很高兴帮助你为你解答问题,疑问祝你生活愉快,幸福: 你确定了是...
和尚敲钟三更起什么意思 和尚敲钟三更起什么意思佛教的早课一般在凌晨2.3点钟起来,念经,念佛。。。。。。。。。。。。和尚敲钟...
单腿鹅的故事说明了什么道理 单腿鹅的故事说明了什么道理告诉我们的道理是嫉妒这个东西,害处十分大。我们一定要从小克服它,过好自己的...
人如其名是什么意思? 人如其名是什么意思?“人如其名”是一句谚语,意为一个人的名字与他的个性、性格和特点相对应。人们普遍认...
MP3内部问题 MP3内部问题记住要用 MP3 格式化盘来格式化 否则对机器本身不好 有可能使MP3芯片坏掉!本人...
有一种想念叫做望眼欲穿。这句话... 有一种想念叫做望眼欲穿。这句话是什么意思啊?1、比喻非常想念或想见到一个人的心情。2、这是一种极其迫...
家的,N次方 什么叫幸福?我想... 家的,N次方 什么叫幸福?我想知道这句话的含义 谢谢 急急急急n次方,说明的是这个数很大,寓意家庭中...
推荐点古风歌曲类似倾尽天下和天... 推荐点古风歌曲类似倾尽天下和天下这类的喜欢倾尽天下和天下那种大气的古风,很有那种武侠范儿,最好不推荐...
对爱人超级宠爱,是真正的暖男的... 对爱人超级宠爱,是真正的暖男的星座你知道有哪些吗?应该就是双子座白羊座和处女座的男生,因为他们能够给...
怎么写书 怎么写书写作是一个很庞大的领域,这个领域有不同的分支,所以你要先想好自己适合写什么风格类型的,并且先...
狼的典故,狼的典故有哪些?​ 狼的典故,狼的典故有哪些?​狼的典故有哪些?《狼来了》、《小红帽》、蒲松龄的《狼》