Vueの基本的な説明-Vueのcomputedとwatchの使用シーンと方法
watchとcomputedは、Vueの依存追跡メカニズムに基づいて、あるデータ(依存データと呼ばれる)が変化すると、このデータに依存するすべての「関連」データが「自動的に」変化し、つまり関連する関数を自動的に呼び出してデータの変動を実現することを処理しようとしています.
methodsは関数を定義するために使用され、手動で呼び出す必要があります.「fuc()」のように呼び出す必要があります(関数がfucであると仮定します).
computedは計算属性で、実際にdataオブジェクトのデータ属性と同じクラス(使用上)で、値を取るときにthisを使います.fullNameが取りに行くのは、dataを取るのと同じです(関数として呼び出さないでください!!)
watchとcomputedはそれぞれ処理するデータ関係シーンが異なる.watchの処理が得意なシーン:1つのデータが複数のデータに影響する.computedの処理が得意なシーン:1つのデータが複数のデータの影響を受ける
computedはmethodsに比べて、computedにはキャッシュがあり、性能オーバーヘッドが小さい.computedキャッシュとは何か.number(computedに関連しないデータのいずれか)を変更すると、アプリケーション全体が再レンダリングされ、getName()メソッドを使用している場合、このメソッドは繰り返し呼び出され、computedは再計算されず、依存する値が変化した場合(この例ではnumberはcomputed依存の値ではない)のみ再計算されます.これがcomputedのキャッシュです
君と共に励ます:どんなに牛が追い詰める夢でも、馬鹿に追い詰めるような堅持には耐えられない.
methodsは関数を定義するために使用され、手動で呼び出す必要があります.「fuc()」のように呼び出す必要があります(関数がfucであると仮定します).
computedは計算属性で、実際にdataオブジェクトのデータ属性と同じクラス(使用上)で、値を取るときにthisを使います.fullNameが取りに行くのは、dataを取るのと同じです(関数として呼び出さないでください!!)
watchとcomputedはそれぞれ処理するデータ関係シーンが異なる.watchの処理が得意なシーン:1つのデータが複数のデータに影響する.computedの処理が得意なシーン:1つのデータが複数のデータの影響を受ける
computedはmethodsに比べて、computedにはキャッシュがあり、性能オーバーヘッドが小さい.computedキャッシュとは何か.number(computedに関連しないデータのいずれか)を変更すると、アプリケーション全体が再レンダリングされ、getName()メソッドを使用している場合、このメソッドは繰り返し呼び出され、computedは再計算されず、依存する値が変化した場合(この例ではnumberはcomputed依存の値ではない)のみ再計算されます.これがcomputedのキャッシュです
import Vue from 'vue'
new Vue({
el: '#root',
template: `
Name: {{name}}
Name: {{getName()}}
Number: {{number}}
FullName: {{fullName}}
FirstName:
LastName:
Name:
Obj.a:
`,
data: {
firstName: 'Wang',
lastName: 'HaiLi',
number: 0,
fullName: '',
obj: {
a: 0
}
},
computed: {
name: {
get () {
console.log('new name')
return `${this.firstName} ${this.lastName}`
},
set (name) {
const names = name.split(' ')
this.firstName = names[0]
this.lastName = names[1]
}
}
},
watch: {
'obj.a': {
handler () {
console.log('obj.a changed')
// this.obj.a += 1 // watch computed ,
},
immediate: true // , , true
// deep: true
}
},
methods: {
getName () {
console.log('getName invoked')
return `${this.firstName} ${this.lastName}`
}
}
})
君と共に励ます:どんなに牛が追い詰める夢でも、馬鹿に追い詰めるような堅持には耐えられない.