页面 data 的更新
页面的 data 是与视图绑定的,微信小程序的视图层和逻辑层是分离的。在修改 data 中的属性时,如果不通过 this.setData(),视图不会自动更新。框架需要通过 this.setData() 来通知框架更新视图。使用 = 修改 data 并不会自动触发视图更新机制。
为什么全局变量可以直接用 = 赋值?
因为全局变量本身并不与页面的视图层进行绑定,它们只是存储数据。当你修改一个全局变量的值时,实际上只是改变了内存中的数据。视图更新是由 data 的变化触发的,而全局变量只是数据的存储,没参与视图的渲染更新。
总结:
全局变量:
可以直接使用 = 来修改,因为它们只是存储数据,不直接影响视图。
页面 data:
需要使用 this.setData() 来更新,因为视图和 data 之间存在绑定,直接修改 data 不会自动更新视图。
如果你希望在改变全局变量后让页面显示最新的全局变量数据,你就需要在改变全局变量后,通过 this.setData() 来更新页面的视图。