请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师这里有点疑问

老师看你一会用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。


0 回复 有任何疑惑可以回复我~
  • 提问者 幻城163630 #1
    嗯嗯,非常详细的解答感谢老师。
    回复 有任何疑惑可以回复我~ 2021-07-27 13:46:43
  • 沁尘 回复 提问者 幻城163630 #2
    不客气,有空来水群,push your hands~~~
    回复 有任何疑惑可以回复我~ 2021-07-27 14:11:59
  • 提问者 幻城163630 回复 沁尘 #3
    嗯嗯,老师更新完了?
    回复 有任何疑惑可以回复我~ 2021-07-27 20:21:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信