当前位置:首页 > VUE

vue计算属性 实现

2026-01-14 04:40:50VUE

计算属性的基本概念

计算属性是Vue中用于处理复杂逻辑的响应式属性,基于依赖的响应式数据自动缓存结果。当依赖数据变化时,计算属性会重新计算,否则直接返回缓存值。

基本语法实现

在Vue组件选项中通过computed定义计算属性:

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

模板中直接使用计算属性:

vue计算属性 实现

<p>{{ fullName }}</p>

计算属性 vs 方法

计算属性具有缓存特性,而方法每次调用都会执行:

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

方法调用需要加括号:

vue计算属性 实现

<p>{{ getFullName() }}</p>

计算属性的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] || ''
    }
  }
}

计算属性的缓存机制

计算属性基于响应式依赖进行缓存。以下示例中,只要message未改变,多次访问reversedMessage会立即返回缓存值:

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

计算属性的依赖追踪

计算属性会自动追踪响应式依赖。以下示例中,当books数组变化时,publishedBooksMessage会自动更新:

data() {
  return {
    author: {
      name: 'John',
      books: [
        'Vue 2 Advanced',
        'Vue 3 Basics',
        'Vue 4 Future'
      ]
    }
  }
},
computed: {
  publishedBooksMessage() {
    return this.author.books.length > 0 ? 'Yes' : 'No'
  }
}

计算属性的异步处理

计算属性默认不支持异步操作,需要借助其他方式处理异步逻辑。推荐使用watch或组合式API的computed处理异步场景。

标签: 属性vue
分享给朋友:

相关文章

vue 路由 实现

vue 路由 实现

Vue 路由实现方法 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是实现 Vue 路由的详细步骤: 安装 Vue Router 通过 npm 或 y…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

vue实现datalist

vue实现datalist

使用 Vue 实现 HTML5 的 datalist 功能 HTML5 的 <datalist> 元素提供了一种自动完成输入框的功能,允许用户在输入时从预定义的选项列表中选择。以下是几种在…

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axi…

vue 实现loading

vue 实现loading

Vue 实现 Loading 的方法 使用 v-if 和 v-show 控制显示 在 Vue 中可以通过 v-if 或 v-show 控制 loading 组件的显示与隐藏。v-if 会动态创建或销毁…

vue前端实现

vue前端实现

Vue 前端实现基础步骤 安装 Vue.js 和相关依赖 通过 npm 或 yarn 安装 Vue.js,建议使用 Vue CLI 快速搭建项目。运行命令 npm install -g @vue/cl…