文章目录


computed简介

使用场景:模版中有逻辑代码,可以使用计算属性进行维护。同时,计算属性也有缓存效果,可以监听数值是否发生改变,改变了,才能出发重新计算。这也是为什么有些逻辑代码使用计算属性,有些使用普通方法
代码展示:

<template>
    <div class="itemStyle">
          <div>
              名称:<span>
              {{handleTestComputed}}
          </span>
          </div>
    </div>
</template>

<script setup lang="ts" name="item">
    import {ref,reactive,toRefs,toRef,computed} from "vue"
    let firstName = ref('abc')
    let lastName = ref('def')

    const handleTestComputed = computed(()=>{
        return firstName.value.slice(0,1).toUpperCase()+firstName.value.slice(1)+" "+lastName.value.slice(0,1).toUpperCase()+lastName.value.slice(1)
    })
</script>

特别注意:默认情况计算属性是只读。如果想要修改计算属性的结果值,需要通过同时提供 gettersetter 来创建。如下:

<script setup>
import { ref, computed } from 'vue'

const firstName = ref('张')
const lastName = ref('大王')

const fullName = computed({
  // getter
  get() {
    return firstName.value + ' ' + lastName.value
  },
  // setter
  set(newValue) {
    // 注意:我们这里使用的是解构赋值语法
    [firstName.value, lastName.value] = newValue.split(' ')
  }
})
</script>
04-28 14:04