你们如何看待 setData 这个坑?
发布于 6 年前 作者 syao 10460 次浏览 来自 问答

我们先来看看小官是怎么说明这个setData的用法的,直接截图:

上面说得很清楚了,视图层的数据异步更新,逻辑层的this.data同步更新,这么说就是不需要赋值语句了对吧,但是实际上并非如此,比如下面的语句:

        this.a = “a”;

        this.setData({

            a: “a”

        })

如果没有第一个语句的话,就只能更新视图层,this.a却不发生变化,这样一来不就跟官方的说法相违背了吗?你们怎么看?小程序是基于MVVM模式的吗?有没有大佬解释一下,我入坑没多久,不喜勿喷,因为我喷不过你

/个性签名,不服不行;突破1万小时,你就是高手!😄

3 回复

首先

     this.a = "a";

        this.setData({

            a: "a"

        })

没什么联系的。

这两句才有联系

     this.data.a = "a";

        this.setData({

            a: "a"

        })

 this.data.a = “a”;    是  this.data.a更新了   。但是wxml的显示没有更新。

  this.setData({

            a: "a"

        })

 this.data.a更新了   和wxml的显示也更新。

官方的说法哪里违背了?  看不出来


直接修改  this.data是无法改变页面状态的。

是this.data.a  不是this.a   注意区分和vue的区别

setData相当于page.update的局部刷新

回到顶部