老师这里有点疑问
来源:7-2 服务详情页面骨架搭建与路由传参实践

幻城163630
2021-07-26
老师看你一会用this.data.赋值,一会又用this.setData({})赋值,这两者有啥区别吗?
写回答
1回答
-
这个我记得在课程里有专门提到过,我不记得在哪个小节了。
this.setData 和 this.data. 都会把一个值赋值到当前页面或者组件的data 属性中,可以被当前页面或者组件中任意一个方法中访问到,这是他们的共同点。
不同点有如下几点,是需要特别注意的:
1. this.setData 是“数据绑定”操作,会触发页面重新渲染,只有被 setData 过的变量,才能够在页面中动态的渲染。而 this.data这种赋值,不会触发页面重新渲染!this.data. 这种赋值的意义在于把这个被赋值的变量当成一个页面或者组件的全局变量来使用。
2. this.setData 是异步执行的,this.data.是同步执行的。
当一个变量会在页面或者组件中多个地方被使用,但不需要被用于在页面上动态渲染的时候,就只需要 this.data. 赋值,因为即便你没有在页面使用这个变量,你做了 setData 就会触发页面更新,这是不必要的性能浪费。
反之,这个变量需要用于在页面动态渲染的时候,那就必须 setData。
062022-08-18
相似问题