当前位置 主页 > 网站技术 > 代码类 >

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

    栏目:代码类 时间:2020-01-05 18:07

    最近刚刚追完庆余年,心思还总是在剧情里,然后就觉得在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实例详解,希望对大家有所帮助!