6. Vue3 计算属性,computed,computed 和methods区别

本文通过一个实例展示了Vue3中计算属性的使用,对比了methods和computed的区别。计算属性具备缓存特性,仅在相关依赖变化时更新,提供性能优化。同时,还介绍了如何为计算属性设置setter,以及在处理复杂逻辑和字符串操作时的优势。
摘要由CSDN通过智能技术生成

Vue3 计算属性

计算属性关键词: computed。

计算属性在处理一些复杂逻辑时是很有用的。

可以看下以下反转字符串的例子:

<script setup>
// This starter template is using Vue 3 <script setup> SFCs
// Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
import HelloWorld from './components/HelloWorld.vue'
</script>

<template>
  <div>
      {{ msg.split('').reverse().join('') }}
      <br>
      使用 methods 计算后反转字符串:{{reverseMsg2()}}
      <br>
      使用 computed 计算后反转字符串:{{reverseMsg1}}
  </div>
</template>

<script>
export default{
  name:'App',
  data(){
    return{
      msg : "abcdefghi"
    }
  }, 

  methods:{
    changeMsg:function(){
      this.msg="hulk handsome"
      this.id="d2"
    },
    reverseMsg2(){
      return this.msg.split('').reverse().join('')
    }
  },

  computed:{
    reverseMsg1:function(){
      return this.msg.split('').reverse().join('')
    }
  },  
}
</script>
<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
#d1{
  widows: 100px;
  height: 100px;
  background: yellow;
}
/*.d1 表示类名 */
.d1{
  widows: 100px;
  height: 100px;
  background: green;
}
</style>

声明了一个计算属性 reverseMsg1。
提供的函数将用作属性 App.reverseMsg1的 getter 。
App.reverseMsg 依赖于 App.message,在 App.message 发生改变时,App.reverseMsg1 也会更新。

computed vs methods

可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。

实例 3
methods: {
reverseMsg2(){
return this.msg.split(’’).reverse().join(’’)
}
}

可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。另外在调用methods当中的函数时候需要加()

computed setter

computed 属性默认只有 getter ,不过在需要时你也可以提供一个 setter :

https://www.runoob.com/vue3/vu3-computed.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值