Vue computed详解

简介: computed是Vue中一个计算属性,它可以根据依赖的数据动态计算出一个新的值,并将其缓存起来。computed属性是基于它们的依赖进行缓存的,只有当依赖发生变化时,才会重新计算。computed属性具有以下特性:• 缓存:computed属性会缓存计算结果,在依赖不变时直接返回缓存值,提高性能。• 响应式:当依赖发生变化时,computed属性会自动重新计算并更新。• 依赖追踪:Vue会自动追踪computed属性所依赖的数据,并在其发生变化时触发重新计算。

1. 特性

computed是Vue中一个计算属性,它可以根据依赖的数据动态计算出一个新的值,并将其缓存起来。computed属性是基于它们的依赖进行缓存的,只有当依赖发生变化时,才会重新计算。

computed属性具有以下特性:

  • 缓存:computed属性会缓存计算结果,在依赖不变时直接返回缓存值,提高性能。
  • 响应式:当依赖发生变化时,computed属性会自动重新计算并更新。
  • 依赖追踪:Vue会自动追踪computed属性所依赖的数据,并在其发生变化时触发重新计算。

2. 与methods对比

虽然computed属性和methods方法都可以用于处理数据和逻辑,但它们之间有一些重要的区别。

  1. computed属性是基于它们的依赖进行缓存的,只有当依赖发生变化时才会重新计算。而methods方法在每次调用时都会执行一次。
  2. computed属性是响应式的,当依赖发生变化时会自动更新。而methods方法需要手动调用才能执行。
  3. computed属性具有缓存功能,在多次访问同一个计算属性时效率更高。而methods方法则没有缓存功能。

综上所述,在处理需要根据依赖动态计算出新值并且需要自动更新的情况下,推荐使用computed属性。而对于需要手动调用或不需要缓存的情况,可以使用methods方法。

3. 使用示例

下面是一些使用computed属性的示例:

示例1:计算属性的基本用法

<template><div><p>原始值: {{ value }}</p><p>计算属性: {{ computedValue }}</p></div></template><script>exportdefault {
data() {
return {
value: 5    };
  },
computed: {
computedValue() {
returnthis.value*2;
    }
  }
};
</script>

示例2:计算属性的set方法

<template><div><p>原始值: {{ value }}</p><p>计算属性: {{ computedValue }}</p><button@click="updateValue">更新值</button></div></template><script>exportdefault {
data() {
return {
value: 5    };
  },
computed: {
computedValue: {
get() {
returnthis.value*2;
      },
set(newValue) {
this.value=newValue/2;
      }
    }
  },
methods: {
updateValue() {
this.computedValue=Math.random() *10;
    }
  }
};
</script>

示例3:计算属性的依赖监听

<template><div><p>原始值1: {{ value1 }}</p><p>原始值2: {{ value2 }}</p><p>计算属性: {{ computedValue }}</p><button@click="updateValue1">更新值1</button><button@click="updateValue2">更新值2</button></div></template><script>exportdefault {
data() {
return {
value1: 5,
value2: 10    };
  },
computed: {
computedValue() {
returnthis.value1+this.value2;
    }
  },
methods: {
updateValue1() {
this.value1+=1;
    },
updateValue2() {
this.value2+=1;
    }
  }
};
</script>

总结

本文详细介绍了Vue computed的特性、与methods的对比,并提供了多个使用示例。computed属性可以根据依赖的数据动态计算出一个新的值,并将其缓存起来。它具有缓存、响应式和依赖追踪等特性,可以帮助我们避免在模板中编写复杂的逻辑和计算,并提高性能。

与methods方法相比,computed属性具有缓存功能、自动更新和更高的效率。通过多个示例,我们展示了computed属性的基本用法、set方法和依赖监听。

目录
相关文章
|
22小时前
|
JavaScript
vue页面加载时同时请求两个接口
vue页面加载时同时请求两个接口
|
22小时前
|
JavaScript
vue里样式不起作用的方法,可以通过deep穿透的方式
vue里样式不起作用的方法,可以通过deep穿透的方式
14 0
|
22小时前
|
移动开发 JavaScript 应用服务中间件
vue打包部署问题
Vue项目`vue.config.js`中,`publicPath`设定为&quot;/h5/party/pc/&quot;,在线环境基于打包后的`dist`目录,而非Linux的`/root`。Nginx代理配置位于`/usr/local/nginx/nginx-1.13.7/conf`,包含两个相关配置图。
vue打包部署问题
|
22小时前
|
JavaScript 前端开发
iconfont 图标在vue里的使用
iconfont 图标在vue里的使用
17 0
|
22小时前
|
JavaScript
vue打印v-model 的值
vue打印v-model 的值
|
22小时前
|
JavaScript
Vue实战-组件通信
Vue实战-组件通信
7 0
|
22小时前
|
JavaScript
Vue实战-将通用组件注册为全局组件
Vue实战-将通用组件注册为全局组件
7 0
|
22小时前
|
JavaScript 前端开发
vue的论坛管理模块-文章评论02
vue的论坛管理模块-文章评论02
|
22小时前
|
JavaScript Java
vue的论坛管理模块-文章查看-01
vue的论坛管理模块-文章查看-01
|
22小时前
|
资源调度 JavaScript 前端开发
vue 项目运行过程中出现错误的问题解决
vue 项目运行过程中出现错误的问题解决
13 1