当前位置:首页 > VUE

vue中computed如何实现

2026-02-20 19:45:25VUE

computed 的基本用法

在 Vue 中,computed 是一个计算属性,用于基于响应式依赖进行复杂逻辑的计算。计算属性会缓存结果,只有依赖的响应式数据发生变化时才会重新计算。

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

computed 的 getter 和 setter

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

vue中computed如何实现

export default {
  data() {
    return {
      firstName: '张',
      lastName: '三'
    }
  },
  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 每次调用都会执行函数。

export default {
  data() {
    return {
      message: 'Hello'
    }
  },
  computed: {
    reversedMessage() {
      return this.message.split('').reverse().join('')
    }
  },
  methods: {
    reverseMessage() {
      return this.message.split('').reverse().join('')
    }
  }
}

computed 的依赖追踪

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

vue中computed如何实现

export default {
  data() {
    return {
      user: {
        name: '张三',
        age: 25
      }
    }
  },
  computed: {
    userInfo() {
      return `姓名:${this.user.name},年龄:${this.user.age}`
    }
  }
}

computed 在 Vue 3 中的使用

Vue 3 中可以通过 computed 函数来创建计算属性。

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 的性能优化

由于计算属性会缓存结果,适合用于性能开销较大的计算。避免在模板中使用复杂表达式,改用计算属性可以提高性能。

export default {
  data() {
    return {
      list: [1, 2, 3, 4, 5]
    }
  },
  computed: {
    filteredList() {
      return this.list.filter(item => item > 2)
    }
  }
}

标签: 如何实现vue
分享给朋友:

相关文章

vue实现选择分类

vue实现选择分类

Vue 实现选择分类的方法 使用 v-model 绑定选择值 在 Vue 中可以通过 v-model 指令实现双向数据绑定,适用于下拉选择框(<select>)。以下是一个基本示例:…

如何实现vue表格联动

如何实现vue表格联动

实现Vue表格联动的方法 使用Vue的响应式数据和计算属性 通过Vue的响应式数据特性,可以轻松实现表格之间的联动。定义一个共享的数据源,并在多个表格组件中使用这个数据源。利用计算属性对数据进行处理,…

vue实现muli

vue实现muli

Vue 实现多语言(i18n)支持 在 Vue 项目中实现多语言(i18n)功能,通常使用 vue-i18n 插件。以下是具体实现步骤: 安装 vue-i18n npm install vue-i…

vue实现遮罩

vue实现遮罩

Vue 实现遮罩层的方法 在 Vue 中实现遮罩层可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-show 或 v-if 控制显示 通过 Vue 的指令动态控制遮罩层的显示与隐藏。…

vue实现bootstrap

vue实现bootstrap

Vue 中集成 Bootstrap 的方法 在 Vue 项目中集成 Bootstrap 可以通过以下方式实现,涵盖样式、组件和交互功能。 安装 Bootstrap 依赖 通过 npm 或 yarn…

vue 实现pdf

vue 实现pdf

在Vue中实现PDF功能 在Vue项目中实现PDF功能通常涉及PDF生成、预览或下载。以下是几种常见实现方式: 使用vue-pdf库预览PDF 安装依赖: npm install vue-…