计算属性及计算属性与methods的使用区别

简介: 本文解释了Vue.js中的计算属性(computed properties)的概念和使用方法,并与methods方法进行了对比。计算属性基于现有数据自动重新计算,具有缓存效果,适用于数据的处理和结果展示。而methods方法每次调用都会执行,适合处理业务逻辑。通过示例代码,展示了计算属性和methods方法的区别。

1.计算属性的概念和简单使用

计算属性:基于现有的数据,计算出来的新属性。依赖的数据变化,自动重新计算。

语法:

  1. 声明在computed配置项中,一个计算属性对应里面的一个函数
  2. 使用起来和普通属性一样使用 { {计算属性名}}

示例:

<div id="app">
  {
  {sum}}
</div>

<script>
  let app = new Vue({
    
    el:'#app',
    data:{
    
      num1:10,
      num2:20
    },
    computed:{
    
      sum(){
    
        let rs = this.num1+this.num2
        return rs
      }
    }
  })
</script>

通过上面的代码,可以看出计算属性貌似和方法差不多,但实际上不是,计算属性会有一个缓存,效率高的多。

2.计算属性 vs methods 方法

  1. computed 计算属性
    作用:封装了一段对于数据的处理,求得一个结果。
    语法:
    ① 写在 computed 配置项中
    ② 作为属性,直接使用 → this.计算属性 { { 计算属性 }}

计算属性的缓存特性 ,计算属性会对计算出来的结果缓存,再次使用直接读取缓存,
依赖项变化了,会自动重新计算 然后 并再次缓存。

  1. methods 方法
    作用:给实例提供一个方法,调用以处理业务逻辑。
    语法:
    ① 写在 methods 配置项中
    ② 作为方法,需要调用 → this.方法名( ) { { 方法名() }} @事件名=“方法名”

  2. 一个小例子,带你搞懂计算属性和methods方法

<div id="app">
    <h2>methods======={
  {getSum()}}</h2>
    <h3>computed======={
  {sum}}</h3>
    <p>computed======={
  {sum}}</p>
    <span>methods======={
  {getSum()}}</span>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<script>
    const app = new Vue({
    
        el:'#app',
        data:{
    
            num1:0,
            num2:3,
        },
        computed:{
    
            sum(){
    
                let rs = this.num1 + this.num2
                console.log("Sum()-----computed")
                return rs
            }
        },
        methods:{
    
            getSum(){
    
                let rs = this.num1 + this.num2
                console.log("getSum()-----methods")
                return rs 
            }
        }
    })
</script>

在这里插入图片描述

tips:计算属性使用了两次只在初始化调用了一次,methods方法使用两次调用两次。

计算属性具有缓存的特性,一次计算可以多次使用,而methods方法不是,调用一次便是一次。
计算属性用于对数据的处理,求得一个结果。methods方法主要是用来处理业务逻辑体。


相关文章
|
6月前
|
缓存 C++
计算属性缓存 vs 方法
计算属性缓存 vs 方法
computed【计算属性】watch【监听】methods【方法】的区别
computed【计算属性】watch【监听】methods【方法】的区别
|
1月前
|
缓存 监控 JavaScript
|
20天前
|
移动开发 前端开发 JavaScript
全局属性和局部属性有什么区别?
【10月更文挑战第27天】全局属性和局部属性在HTML中各自发挥着重要的作用,共同构建了丰富多样、功能强大的HTML文档。全局属性提供了通用的基础功能和结构支持,而局部属性则针对不同元素的特定需求实现了各种具体的功能和语义表达,两者相互配合,使得HTML能够更好地满足各种网页开发的需求。
|
1月前
|
缓存 JavaScript
|
6月前
|
缓存 JavaScript 开发者
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
56 0
|
6月前
|
JavaScript
可写计算属性
可写计算属性
|
JavaScript 前端开发
计算属性和监视属性的区别
计算属性和监视属性的区别
|
6月前
|
JavaScript
为什么data属性是一个函数而不是一个对象?
为什么data属性是一个函数而不是一个对象?
85 1
|
6月前
|
缓存 JavaScript
computed(计算属性)
computed(计算属性)
52 0