Vue3计算属性和监视属性

2022-07-18  本文已影响0人  itfitness

计算属性

需要引入computed函数

import { computed} from 'vue'

这里我计算的firstName与laststName加在一起

let person = reactive({
    firstName:"张",
    laststName:"三"
})
person.fullName = computed(()=>{
    return person.firstName + "-" + person.laststName
})

监视属性

同样监视属性也需要引入watch函数

import {watch} from 'vue'
监视ref变量

监视一个变量

let watchVal = ref(12)
// 第一个参数是监视的属性,第二个参数为回调,第三个参数为配置项
watch(watchVal,(newVal,oldVal)=>{
    console.log(newVal,oldVal)
},{immediate:true})

监视多个变量

let watchVal = ref(12)
let watchVal2 = ref(10)
// 第一个参数是监视的属性,第二个参数为回调,第三个参数为配置项
watch([watchVal,watchVal2],(newVal,oldVal)=>{
    console.log(newVal,oldVal)
},{immediate:true})
监视reactive变量

监视reactive定义变量的整体对象,不过要注意的是,监视reactive变量,当对象的其中某个值发生变化的时候,并不能记录oldVal的值,也就是当回调触发的时候newVal与oldVal相同

let person = reactive({
    firstName:"张",
    laststName:"三"
})
watch(person,(newVal,oldVal)=>{
    console.log(newVal,oldVal)
})

监视reactive定义变量的对象的某个属性,要注意的是,第一个参数要写成函数的形式

let person = reactive({
    firstName:"张",
    laststName:"三"
})
watch(()=>person.firstName,(newVal,oldVal)=>{
    console.log(newVal,oldVal)
})

watchEffect

watchEffect可以监视其回调函数中使用的所有属性

import {watchEffect} from 'vue'
watchEffect(()=>{
    let a = watchVal.value
    console.log("watchEffect执行了")
})
上一篇 下一篇

猜你喜欢

热点阅读