handler:監(jiān)聽數(shù)組或?qū)ο蟮膶傩詴r用到的方法
deep:深度監(jiān)聽,為了發(fā)現(xiàn)對象內(nèi)部值的變化捺僻,可以在選項參數(shù)中指定deep:true 奸焙。注意監(jiān)聽數(shù)組的變動不需要這么做烫扼。
immediate: 在選項參數(shù)中指定 immediate: true 將立即以表達式的當前值觸發(fā)回調(diào)
tips: 只要bet中的屬性發(fā)生變化(可被監(jiān)測到的),便會執(zhí)行handler函數(shù)牌借;如果想監(jiān)測具體的屬性變化度气,如pokerHistory變化時,才執(zhí)行handler函數(shù)膨报,則可以利用計算屬性computed做中間層磷籍。
1哲虾、普通的watch
data() {
return { frontPoints: 0 }
},
watch: {
frontPoints(newValue, oldValue) {
console.log(newValue)
}
}
2、數(shù)組的watch
data() {
return {
winChips: new Array(11).fill(0)
}
},
watch: {
winChips: {
handler(newValue, oldValue) {
for (let i = 0; i < newValue.length; i++) {
if (oldValue[i] != newValue[i]) {
console.log(newValue)
}
}
},
}
}
3择示、對象的watch
data() {
return {
bet: {
pokerState: 53,
pokerHistory: 'local'
}
}
},
watch: {
bet: {
handler(newValue, oldValue) {
console.log(newValue)
},
deep: true
}
}
4束凑、對象具體屬性的watch[活用computed]
data() {
return {
bet: {
pokerState: 53,
pokerHistory: 'local'
}
}
},
computed: {
pokerHistory() {
return this.bet.pokerHistory
}
},
watch: {
pokerHistory(newValue, oldValue) {
console.log(newValue)
}
}
5、watch和computed各自處理的數(shù)據(jù)關(guān)系場景不同
watch擅長處理的場景:一個數(shù)據(jù)影響多個數(shù)據(jù)
computed擅長處理的場景:一個數(shù)據(jù)受多個數(shù)據(jù)影響
6栅盲、method和computed觸發(fā)條件不同
computed只提供了緩存的值汪诉,而沒有重新計算
只有符合:1.存在依賴型數(shù)據(jù) 2.依賴型數(shù)據(jù)發(fā)生改變這兩個條件,computed才會重新計算。
而methods下的數(shù)據(jù)谈秫,是每次都會進行計算的