当前位置:首页 > VUE

computed vue 实现

2026-03-07 03:17:37VUE

computed 的基本用法

在 Vue 中,computed 用于声明计算属性,基于响应式依赖进行缓存计算。当依赖的响应式数据变化时,计算属性会自动重新计算。

const app = Vue.createApp({
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe'
    }
  },
  computed: {
    fullName() {
      return this.firstName + ' ' + this.lastName
    }
  }
})

computed 的 setter 和 getter

计算属性默认只有 getter,但也可以提供 setter 用于在需要时修改依赖的数据。

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

computed 与 methods 的区别

计算属性基于响应式依赖进行缓存,只有当依赖发生变化时才会重新计算。methods 每次调用都会执行函数。

methods: {
  getFullName() {
    return this.firstName + ' ' + this.lastName
  }
}

computed 在 Composition API 中的使用

在 Vue 3 的 Composition API 中,使用 computed 函数创建计算属性。

import { ref, computed } from 'vue'

setup() {
  const firstName = ref('John')
  const lastName = ref('Doe')

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

  return {
    fullName
  }
}

computed 的响应式依赖

计算属性会自动追踪响应式依赖,当这些依赖发生变化时,计算属性会重新计算。

computed: {
  reversedMessage() {
    return this.message.split('').reverse().join('')
  }
}

computed 的性能优化

由于计算属性会缓存结果,只有当依赖变化时才重新计算,因此比在模板中使用复杂表达式或频繁调用 methods 更高效。

computed: {
  filteredItems() {
    return this.items.filter(item => item.isActive)
  }
}

computed 的异步操作

计算属性默认不支持异步操作,需要结合其他 API 如 async/await 或使用 watch 来实现。

computed vue 实现

computed: {
  asyncComputed: {
    get() {
      return Promise.resolve('Async Value')
    },
    set() {}
  }
}

标签: computedvue
分享给朋友:

相关文章

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue聊天实现

vue聊天实现

Vue 聊天应用实现步骤 创建 Vue 项目 使用 Vue CLI 或 Vite 初始化项目,安装必要依赖(如 Vue 3、Element UI 或 Vuetify 用于 UI 组件)。 npm c…

vue 方法实现

vue 方法实现

在 Vue 中,方法的实现通常通过 methods 选项完成。以下是 Vue 方法实现的核心要点和示例: 基本方法定义 在 Vue 组件中定义方法时,需将函数声明放在 methods 对象内。这些方…

vue实现缩放

vue实现缩放

Vue 实现缩放的方法 在 Vue 中实现缩放功能可以通过多种方式完成,以下是一些常见的方法: 使用 CSS transform 属性 通过 CSS 的 transform: scale() 属性可…

vue实现剪辑

vue实现剪辑

Vue 实现视频剪辑功能 在Vue中实现视频剪辑功能通常需要结合HTML5的<video>元素和第三方库(如FFmpeg.js或Video.js)。以下是几种常见的实现方法: 使用FFm…