vue3 computed

vue3計算屬性

來研究一下vue3.0如何使用computed

首先組合式api的關係先引入

import { reactive, computed } from 'vue'

vue.js部分

簡寫寫法只能唯讀。

完整寫法要有一個,

get讀取,

set設定值。

<script>
import { reactive, computed } from 'vue'
export default {
  name: 'HelloWorld',
  setup() {
    let person = reactive({
      fN: '王',
      lN: '大明'
    })
    // 可以直接在原有物件上添加computed屬性
    // 計算屬性簡寫預設readonly
    // person.fullName = computed(() => {
    //   return person.fN + '-' + person.lN
    // })
    // 完整寫法可讀可改
    person.fullName = computed({
      get() {
        return person.fN + person.lN
      },
      set(value) {
        const nameArr = value.split('')
        console.log(nameArr)
        if (nameArr.length) {
          person.fN = nameArr[0]
          person.lN = nameArr.slice(1).join('')
        }
      }
    }
    )

    return {
      person
    }
  }
}
</script>

模板

<template>
  {{ person.fullName }}
  <input type="text" v-model="person.fullName" />
</template>

總結

感覺和vue2差不多不過可以在原有的物件上面添加屬性值是computed合成出來的,只能說真香。