Vue computed 的嵌套

好比下面的例子:javascript

<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,并从新renderjava

可是注意v3的闭包中也有v1的watcher,由于v2的get方法被重写了,页面上显示v1的时候,会调用的v3的get方法。因此++的时候v1的dirty也为true闭包

相关文章
相关标签/搜索