vue3中的computed和watch

computed函数:

与computed配置功能一致
当回调中只有一个函数的时候只有getter
有getter和setter
 const fullName1=computed(() => {
       console.log('fullName1')
      return user.firstName + '-' + user.lastName
    })
     const fullName2 = computed({
      get () {
        console.log('fullName2 get')
        return user.firstName + '-' + user.lastName
      },

      set (value: string) {
        console.log('fullName2 set')
        const names = value.split('-')
        user.firstName = names[0]
        user.lastName = names[1]
      }
    })

watch函数

与watch配置功能一致
监视指定的一个或多个响应式数据, 一旦数据变化, 就自动执行监视回调
默认初始时不执行回调, 但可以通过配置immediate为true, 来指定初始时立即执行第一次
通过配置deep为true, 来指定深度监视

实现首次进入就执行watch

 const fullName3 = ref('')
    watch(user, () => {
      fullName3.value = user.firstName + '-' + user.lastName
      }, {
        immediate: true,  // 是否初始化立即执行一次, 默认是false
        deep: true, // 是否是深度监视, 默认是false
      })
      //相当于
      /* watchEffect(()=>{
	      fullName3.value=user.firstName+'-'+user.lastName
	    })*/
    watch(fullName3,(value)=>{
      console.log("watch");
      const names = value.split('-')
      user.firstName = names[0]
      user.lastName = names[1]
    },)

watchEffect函数

不用直接指定要监视的数据, 回调函数中使用的哪些响应式数据就监视哪些响应式数据
默认初始时就会执行第一次, 从而可以收集需要监视的数据
监视数据发生变化时回调
 watchEffect(()=>{
      fullName3.value=user.firstName+'-'+user.lastName
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值