计算属性及计算属性与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方法主要是用来处理业务逻辑体。


相关文章
|
7月前
|
缓存 C++
计算属性缓存 vs 方法
计算属性缓存 vs 方法
computed【计算属性】watch【监听】methods【方法】的区别
computed【计算属性】watch【监听】methods【方法】的区别
|
2月前
|
缓存 监控 JavaScript
|
2月前
|
缓存 JavaScript
|
6月前
|
存储 程序员 Swift
Swift开发——存储属性与计算属性
Swift推荐使用结构体进行开发,结构体支持属性和方法,且作为值类型。结构体属性包括存储属性(如radius)和计算属性(如r),计算属性不存储值,类似方法。结构体用`struct`定义,命名遵循大驼峰规则。实例名遵循小驼峰规则。属性可在结构体中任意位置定义,静态属性用`static`。存储属性可为`lazy`实现懒加载。结构体实例通过`.`访问属性和方法,静态属性和方法用`结构体名.`访问。计算属性可读写,可通过`get`和`set`定义。程序段1展示了结构体Point和Circle的属性和方法,包括私有属性、只读计算属性、可读写计算属性及`mutating`方法。
48 0
Swift开发——存储属性与计算属性
|
7月前
|
缓存 JavaScript 开发者
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
什么是vue的计算属性?为什么使用?计算属性和方法有什么区别?怎样选择
66 0
|
7月前
|
JavaScript
可写计算属性
可写计算属性
|
JavaScript 前端开发
计算属性和监视属性的区别
计算属性和监视属性的区别
|
7月前
|
JavaScript
为什么data属性是一个函数而不是一个对象?
为什么data属性是一个函数而不是一个对象?
91 1
|
7月前
|
缓存 JavaScript
computed(计算属性)
computed(计算属性)
63 0