观察计算属性
Watching computed properties
我有一个具有以下哈希值的组件
{
computed: {
isUserID: {
get: function(){
return this.userId?
}
}
}
我应该关注 isUserID
还是 userId
的变化?你能看计算属性吗?
是的,您可以设置 watcher on computed property, see the fiddle。
以下是在计算 属性 上设置监视的代码:
const demo = new Vue({
el: '#demo',
data() {
return {
age: ''
};
},
computed: {
doubleAge() {
return 2 * this.age;
}
},
watch: {
doubleAge(newValue) {
alert(`yes, computed property changed: ${newValue}`);
}
}
});
computed: {
name: {
get: function(){
return this.name;
}
}
},
watch: {
name: function(){
console.log('changed');
}
}
这样我们就可以监视计算 属性 如果它发生变化,我们会在控制台上收到通知。
以下是在 Vue 3 中使用 Composition 的方法 API:
<script setup>
import { ref, computed, watch } from 'vue'
const variable = ref(1)
const computedProperty = computed(() => {
return variable.value * 2
})
watch(computedProperty, (newValue, oldValue) => {
console.log('computedProperty was ' + oldValue + '. Now it is ' + newValue + '.')
})
</script>
<template>
<button @click="variable++">Click me</button>
</template>
我有一个具有以下哈希值的组件
{
computed: {
isUserID: {
get: function(){
return this.userId?
}
}
}
我应该关注 isUserID
还是 userId
的变化?你能看计算属性吗?
是的,您可以设置 watcher on computed property, see the fiddle。
以下是在计算 属性 上设置监视的代码:
const demo = new Vue({
el: '#demo',
data() {
return {
age: ''
};
},
computed: {
doubleAge() {
return 2 * this.age;
}
},
watch: {
doubleAge(newValue) {
alert(`yes, computed property changed: ${newValue}`);
}
}
});
computed: {
name: {
get: function(){
return this.name;
}
}
},
watch: {
name: function(){
console.log('changed');
}
}
这样我们就可以监视计算 属性 如果它发生变化,我们会在控制台上收到通知。
以下是在 Vue 3 中使用 Composition 的方法 API:
<script setup>
import { ref, computed, watch } from 'vue'
const variable = ref(1)
const computedProperty = computed(() => {
return variable.value * 2
})
watch(computedProperty, (newValue, oldValue) => {
console.log('computedProperty was ' + oldValue + '. Now it is ' + newValue + '.')
})
</script>
<template>
<button @click="variable++">Click me</button>
</template>