vue如何实现计算
Vue 计算属性的实现方法
在 Vue 中,计算属性(computed properties)是一种基于响应式依赖进行缓存的属性,适用于需要复杂逻辑计算的场景。以下是实现计算属性的几种方式:
使用 computed 选项
在 Vue 选项对象中,通过 computed 属性定义计算属性。计算属性会根据其依赖的响应式数据自动更新。
new Vue({
data: {
firstName: 'John',
lastName: 'Doe'
},
computed: {
fullName: function() {
return this.firstName + ' ' + this.lastName;
}
}
});
计算属性的 setter
计算属性默认只有 getter,但可以通过定义 setter 实现双向绑定。

computed: {
fullName: {
get: function() {
return this.firstName + ' ' + this.lastName;
},
set: function(newValue) {
var names = newValue.split(' ');
this.firstName = names[0];
this.lastName = names[names.length - 1];
}
}
}
在 Vue 3 中使用 computed
Vue 3 引入了 Composition API,可以通过 computed 函数定义计算属性。
import { ref, computed } from 'vue';
export default {
setup() {
const firstName = ref('John');
const lastName = ref('Doe');
const fullName = computed(() => {
return firstName.value + ' ' + lastName.value;
});
return {
firstName,
lastName,
fullName
};
}
};
计算属性 vs 方法

计算属性是基于依赖缓存的,只有依赖变化时才会重新计算。方法则会在每次调用时重新执行。
methods: {
getFullName: function() {
return this.firstName + ' ' + this.lastName;
}
}
计算属性的依赖追踪
计算属性会自动追踪其依赖的响应式数据,并在依赖变化时重新计算。避免在计算属性中产生副作用(如异步操作或修改 DOM)。
通过以上方法,可以灵活地在 Vue 中实现计算属性,提升代码的可读性和性能。






