欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vuejs中的watch实例详解(监听者)

程序员文章站 2022-06-25 13:01:37
最近刚刚追完庆余年,心思还总是在剧情里,然后就觉得在vuejs里watch就是监察院,一个不折不扣的特务机构。在vue中watch被称为监听者,它随时观察这vue实例中每一个数据的变化...

最近刚刚追完庆余年,心思还总是在剧情里,然后就觉得在vuejs里watch就是监察院,一个不折不扣的特务机构。在vue中watch被称为监听者,它随时观察这vue实例中每一个数据的变化,当数据发生改变,做出响应。

通过下面的示例代码来看一下这个监察院是怎么运作的:

new vue({
  el:"#app",
  data(){
    reutrn {
      candy:""
    }
  },
  //传说中的监察院start
  watch:{
    candy:{
      handler(newval,oldval){
      },
      immediate: true,
      deep:true
    }
  }
  //传输中的监察院end
})
/***
watch中监控这candy这个数据的变化,
handler中传入了两个参数:
newval->是改变后的数据
oldval->是改变前的数据
***/

按照庆余年的剧情分析,监察院在监控candy这个人,一旦candy发生变节,就会执行handler中的操作,newval和oldval就好像是提供给监察院人员来判断如果candy是内部斗争还是叛国,根据情节处以什么样的处罚。

代码中 immediate 和 deep 又是什么意思呢?

immediate和deep像是庆帝给陈萍萍的指令:

immediate为true是告诉监察院不管candy有没有变节,都先给他点处罚,敲山震虎!

deep为true是告诉监察院往深了查,看看有没有什么人跟这个人联络了,联络以后又发生了事!

写这篇文章的时候,我也在跟朋友探讨watch和updated,updated也是在数据发生改变的时候做出相应,但是如果将updated说成是监察院就感觉太喽了!updated不能指定监测数据,只要有数据发生变化就会指向updated中的方法,不管谁发生变化都会执行,这么不灵活怎么能配的上监察院这么厉害的特务机构呢!嘻嘻!

总结

以上所述是小编给大家介绍的vuejs中的watch实例详解,希望对大家有所帮助!