当前位置:首页 > 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 按钮实现截屏的方法 在 Vue 项目中实现截屏功能可以通过多种方式完成,以下是几种常见的方法: 使用 html2canvas 库 安装 html2canvas 库: npm ins…

vue tag实现

vue tag实现

Vue 标签实现方法 在 Vue 中实现标签功能可以通过多种方式完成,常见场景包括动态标签生成、标签输入框、标签管理等。以下是几种典型实现方案: 动态标签列表渲染 使用 v-for 指令渲染标签数组…

vue实现公式

vue实现公式

在Vue中实现公式展示或计算可以通过多种方式实现,以下为具体方法: 使用模板插值与计算属性 若公式较简单,可直接在模板中使用插值表达式或计算属性。例如计算圆的面积: <template>…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue实现route

vue实现route

Vue 路由实现方法 Vue 中实现路由通常使用 vue-router 库,这是 Vue 官方推荐的路由管理器。以下是具体实现步骤: 安装 vue-router 通过 npm 或 yarn 安装…

vue实现切换

vue实现切换

Vue 实现切换功能的方法 在 Vue 中实现切换功能可以通过多种方式实现,以下是一些常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染实现切换功能,适用于简单的显示/隐藏场景。…