Vue3 – computed 组合式API

简介

Vue3 中对于 computed 计算属性进行了组合式API的修改,不再使用对象的形式表示,而是作为 setup 中的组合API的存在。

 

computed

Vue2 中的 computed

Vue2 中computed 计算属性何用内部对象的方式声明,具体如下:

export default {
  name: 'App',
  data() {
    return {
      firstName: "张",
      lastName: "三"
    }
  },
  computed: {
    // 基于只读的 computed 计算属性
    fullName() {
      return this.firstName + "-" + this.lastName;
    },

    // 基于可读写的 computed 计算属性
    fullName2: {
      get() {
        return this.firstName + "-" + this.lastName;
      },
      set(value) {
        let name = value.split("-");
        this.firstName = name[0];
        this.lastName = name[1];
      }
    }
  },
}

 

Vue3 中的 computed

Vue3 中,computed 不再使用对象的方式声明,而是通过引入 { computed } 引用,在setup 中定义,其使用方法与Vue2 基本相同,参考下列代码:

// 引用 computed 计算属性的引用
import {computed} from "vue"

export default {
  name: 'App',
  setup(props, context) {

    let person = reactive({
      firstName: "张",
      lastName: "三"
    });

    // 通过只读方式声明计算属性
    let fullName = computed(()=>{
      return person.firstName + "-" + person.lastName;
    });

    // 通过可读可写的方式声明计算属性
    let fullName2 = computed({
      get(){
        return person.firstName + "-" + person.lastName;
      },
      set(value){
        let name = value.split("-");
        person.firstName = name[0];
        person.lastName = name[1];
      }
    });
    
    // 因为Vue3中解决了Vue2中直接赋值不能产生响应式的问题,所以,所计算的属性可以直接赋给 person
    // 这样的话,就不用另外导出 fullName 、fullName2 了,直接导出 person就可以了
    person.fullName = fullName;
    person.fullName2 = fullName2;
    
    return {
      person,
      fullName,
      fullName2
    }
  }
}

 

如果您喜欢本站,点击这儿不花一分钱捐赠本站

这些信息可能会帮助到你: 下载帮助 | 报毒说明 | 进站必看

修改版本安卓软件,加群提示为修改者自留,非本站信息,注意鉴别

THE END
分享
二维码
打赏
海报
Vue3 – computed 组合式API
简介 Vue3 中对于 computed 计算属性进行了组合式API的修改,不再使用对象的形式表示,而是作为 setup 中的组合API的存在。   computed Vue2 中的 computed Vue2 中computed 计算属性何……
<<上一篇
下一篇>>