vue 中 watch 監聽 Object對象 變化


針對Object對象,如:

# Object 監聽值
tobj:{
'a':1
}


第一種

watch: {
    tobj(new_value,old_value){
        console.log(new_value,old_value)
    }
}


上面的寫法只會監聽tobj是否有值的變化,如果內部,如a的值發生了變化,不會觸發watch
第二種

watch: {
    tobj:{
        handler(new_value,old_value){
            console.log(new_value,old_value)
        },
        deep: true
    }
}


添加deep屬性,向下添加監聽到每一個key,deep默認是false
這種可以監聽a的變化,但是這個不能由單一改變一個值觸發watch,例如:

tobj['a']=2

 

就不會觸發watch

如果需要改變內部值並且觸發watch,需要用Vue.$set

this.$set(tobj,'a',2)

 

如此,便可以觸發watch!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM