比如下面的例子:
<div id="app"> {{v1}} <button @click="v3++">点击</button> </div>
data(){ return { v3: 3, } }, computed: { v1() { return this.v2 }, v2() { return this.v3 } }
v3++,因为v3的get方法中收集了v2的watcher和render的watcher到自己的闭包中,所以++的时候的set方法会导致v2的dirty为true,并重新render
但是注意v3的闭包中也有v1的watcher,因为v2的get方法被重写了,页面上显示v1的时候,会调用的v3的get方法。所以++的时候v1的dirty也为true