vueでのwatchリスニングプロパティの詳細
1297 ワード
使用方法:
(2)watchでdocDataデータの変化を傍受し、データが変化した場合、this.change_number++(深度リスニングを使用)
watchでdataデータの変化を傍受し、データが変化した場合にchangeDataメソッドを実行する
2、watchのimmediate、handler、deep属性(1)immediate、handlerのようにwatchを使用する場合、値が最初にバインドされたときにリスニング関数が実行されず、値が変更されたときにのみ実行されるという特徴があります.最初に値をバインドするときに関数を実行する必要がある場合は、immediateプロパティを使用する必要があります.
(2)deepオブジェクトの変更を傍受する必要がある場合,通常のwatchメソッドではオブジェクト内部の属性の変更を傍受できないため,deep属性がオブジェクトを深く傍受する必要がある.
watch:{
data(val, newval) {
console.log(val)
console.log(newval)
}
}
(2)watchでdocDataデータの変化を傍受し、データが変化した場合、this.change_number++(深度リスニングを使用)
watch: {
docData: {
handler(newVal) {
this.change_number++
},
deep: true
}
}
watchでdataデータの変化を傍受し、データが変化した場合にchangeDataメソッドを実行する
watch: {
data: 'changeData' // methods
},
methods: {
changeData(curVal,oldVal){
conosle.log(curVal,oldVal)
}
}
2、watchのimmediate、handler、deep属性(1)immediate、handlerのようにwatchを使用する場合、値が最初にバインドされたときにリスニング関数が実行されず、値が変更されたときにのみ実行されるという特徴があります.最初に値をバインドするときに関数を実行する必要がある場合は、immediateプロパティを使用する必要があります.
watch: {
docData: {
handler(newVal) {
this.change_number++
},
immediate: true
}
}
(2)deepオブジェクトの変更を傍受する必要がある場合,通常のwatchメソッドではオブジェクト内部の属性の変更を傍受できないため,deep属性がオブジェクトを深く傍受する必要がある.
data() {
return {
docData: {
'doc_id': 1,
'tpl_data': 'abc'
}
}
},
watch: {
docData: {
handler(newVal) {
this.change_number++
},
deep: true
}
}