React笔记 (五)

  • 当state或props发生改变的时候,render函数就会重新执行,所以每当数据更新的时候,页面都会同步变化。

虚拟DOM

传统操作DOM:

1、state数据
2、JSX模板
3、数据与模板结合,生成真实DOM
4、state数据发生变化
5、数据与模板结合,生成真实DOM,来替换之前的DOM

虚拟DOM:

1、state数据
2、JSX模板
3、数据与模板结合,生成真实DOM
4、同时生成一个虚拟DOM,(虚拟DOM就是一个用来描述真实DOM的对象)
5、state数据发生变化
6、新生成一个虚拟DOM
7、与之前的虚拟DOM作比较,找出区别
8、最后操作DOM改变有去别的内容

diff算法 diffrence Key值

  • React限制setState的频率。
  • diff算法是虚拟dom向比对用到的算法,React虚拟dom比对规则为同级向比较,先比较第一层,如果不一样,则停止比较直接覆盖新的dom,如果一样,则继续向下级比较。
  • React的key值的目的是为了进一步优化性能,react在渲染列表的时候优先会那key值一样的dom去对比,之后会很容易的区分出区别然后替换。所以列表的key值尽量不要用index,因为index会根据列表的变化而改变,key值最好选用item,或者其他唯一标识。

转载于:https://juejin.im/post/5cb830885188251b23422f13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值