vue定义侦听器,vue数据监听原理

  vue定义侦听器,vue数据监听原理

  Vue提供了一种更通用的方法来观察和响应当前活动实例中的数据变化:截取属性。下面这篇文章主要介绍Vue3.0各种拦截方式的相关信息,有需要的可以参考一下。

  

目录

   Listener I,wacthEffect II,watch1.1第一种收听方式1.2第二种收听方式1.3收听多个数据源进行汇总

  

侦听器

  虽然计算属性在大多数情况下更合适,但有时需要自定义侦听器。这就是为什么Vue通过watch选项提供了一种更通用的方式来响应数据的变化。当数据更改时需要执行异步或昂贵的操作时,这种方法最有用。

  

一、wacthEffect

  立即执行,不立即

  监听,watchEffect是立即执行的,没有立即,也不需要传递监听内容。它会自动感知代码依赖,不需要传递参数。你只需要传递一个回调函数就可以得到之前的值。

  如果需要停用监听器,可以回调这个监听器函数。

  const stop=watchEffect(()={

  //console.log(num:,num . value);

  //console.log(num:,str . value);

  })

  

二、watch

  不会立即执行,需要手动打开立即。

  //指定主要侦听的值num。

  手表(数字,(val,oval)={

  //val:新值,oval:以前的值

  //console . log(num . value);

  //console.log(val,oval);

  },{//第二个参数obj immediate,deep

  Immediate:true//默认情况下,它只在数据更改时侦听,

  //第一次创建时不会执行。将其设置为true,它将在第一次执行。

  })

  听ref的数据来源

  监听反应性数据源

  

1.1第一种方式侦听

  //监听状态下的id,对象数据的变化

  手表(状态,(val,oval)={

  //console.log(id ,val.id,oval);

  },{

  即时:真的,

  Deep:true//开启深度监听,可以监听对象属性值的变化。

  })

  

1.2第二种方式侦听

  //监听state.uname

  watch(()=state.uname,(uname,p)={

  //uname新值,p旧值

  console.log(uname,p);

  },{

  即时:正确

  })

  

1.3侦听多个数据源

  //监听多个数据(id,uname)

  //()=state.id,相当于//object.values(toRefs(state))解构

  const stop=watch([()=state.id,()=state.uname],([id,uname],[oid,oname])={

  //id是新的,oid是旧的

  console.log(id ,id,oid);

  //uname新,oname旧

  console.log(uname ,uname,oname);

  })

  

总结

  关于Vue3.0多种拦截模式的这篇文章到此为止。更多关于Vue3.0拦截模式的信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: