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閉包

相關文章
相關標籤/搜索