当前位置:首页 > VUE

vue计算属性如何实现

2026-01-21 10:07:25VUE

vue计算属性的实现方法

计算属性是Vue中用于处理复杂逻辑的响应式属性,基于依赖的响应式数据自动缓存计算结果。以下是实现计算属性的几种方式:

基础用法 在Vue组件选项中定义computed属性:

vue计算属性如何实现

export default {
  data() {
    return {
      firstName: '张',
      lastName: '三'
    }
  },
  computed: {
    fullName() {
      return this.firstName + ' ' + this.lastName
    }
  }
}

带setter的计算属性 计算属性默认只有getter,需要时可以提供setter:

computed: {
  fullName: {
    get() {
      return this.firstName + ' ' + this.lastName
    },
    set(newValue) {
      const names = newValue.split(' ')
      this.firstName = names[0]
      this.lastName = names[1] || ''
    }
  }
}

组合式API中的计算属性 在setup()函数中使用computed函数:

vue计算属性如何实现

import { ref, computed } from 'vue'

export default {
  setup() {
    const firstName = ref('张')
    const lastName = ref('三')

    const fullName = computed(() => {
      return firstName.value + ' ' + lastName.value
    })

    return {
      firstName,
      lastName,
      fullName
    }
  }
}

计算属性缓存特性 计算属性基于响应式依赖进行缓存,只有当依赖变化时才会重新计算:

computed: {
  now() {
    // 不会更新,因为Date.now()不是响应式依赖
    return Date.now()
  }
}

与方法的区别 方法调用每次都会执行函数,而计算属性会缓存结果:

methods: {
  getFullName() {
    // 每次调用都会执行
    return this.firstName + ' ' + this.lastName
  }
},
computed: {
  fullName() {
    // 只有firstName或lastName变化时才会重新计算
    return this.firstName + ' ' + this.lastName
  }
}

分享给朋友:

相关文章

vue如何实现拖动

vue如何实现拖动

Vue 实现拖动的几种方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,通过 draggable 属性和相关事件实现拖动功能。 <template> &…

h5如何实现定位

h5如何实现定位

使用HTML5 Geolocation API HTML5提供了Geolocation API,可以获取用户的地理位置信息。通过navigator.geolocation对象实现,支持获取经纬度、海拔…

vue如何实现

vue如何实现

Vue 实现方法 Vue 提供了多种方式来实现功能,具体取决于需求。以下是一些常见场景的实现方法: 数据绑定 使用 v-model 指令实现双向数据绑定,适用于表单输入元素。在组件中可以通过 pro…

vue如何实现mvvm

vue如何实现mvvm

Vue 的 MVVM 实现原理 Vue 通过数据绑定和响应式系统实现 MVVM(Model-View-ViewModel)模式。其核心在于将数据模型(Model)与视图(View)通过 ViewMod…

vue如何实现单选

vue如何实现单选

使用原生 HTML 单选按钮 在 Vue 中可以直接使用 HTML 的原生单选按钮,通过 v-model 绑定数据。 <template> <div>…

vue如何实现id

vue如何实现id

Vue 中实现 ID 的方法 在 Vue 中,可以通过多种方式为元素或组件分配唯一的 ID。以下是几种常见的方法: 使用 v-bind 绑定 ID 通过 v-bind 动态绑定 ID,可以在模板中直…