Vue中的watch监视属性

🍓 作者主页:💖仙女不下凡💖

🍓 欢迎点赞👍 收藏⭐ 留言📝 如有错误敬请指正!

🍓 前言介绍:以下👇 内容主要探讨监视属性watch的基本使用,另外大家在学习监视属性时,是否也跟我一样考虑过这个属性有什么存在的意义呢?与计算属性component等有什么区别呢?我会在近期更新它们的对比,请持续关注!


🌷1.监视属性watch的基本使用

🌞 通过watch监听data数据的变化,数据发生变化时,就会打印当前的值,基本使用方法如下。

<body>
  <div id="root">
    <h2>{{isHot}}</h2>
  </div>
</body>

<script type="text/javascript">
  Vue.config.productionTip = false;  //阻止Vue在启动时生成生产提示

  const vm = new Vue({
    el: '#root',
    data: {isHot: true},
    watch: {  /第一种监视watch方法/
      isHot(newValue, oldValue) {
          console.log(newValue),  /这个是变化之前的数据/
          console.log(oldValue),  /这个是变化之后的数据/
      }
    }
  })
</script>

<script>
  /第二种监视watch方法, 不常用, 但是更灵活/
  vm.$watch(isHot(newValue, oldValue){})
</script>

🌞 所以监视属性最方便的就是更加容易获取数据变化前后的值


🌷2.详解watch中的immediate、handler、deep属性

🌞 因为使用watch时有一个特点,就是当值第一次绑定时,不会执行监听函数,只有值发生改变时才会执行。如果我们需要在最初绑定值的时候也执行函数,则就需要用到immediate属性。

<body>
  <div id="root">
    <h2>{{isHot}}</h2>
  </div>
</body>

<script type="text/javascript">
  Vue.config.productionTip = false;  //阻止Vue在启动时生成生产提示

  const vm = new Vue({
    el: '#root',
    data: {isHot: true},
    watch: {
      isHot:{  /这里isHot是配置对象,也是监视的对象/
        immediate:true,  /初始化时让handler调用一下, 默认值为false/
        handler(newValue,oldValue){  /这个里面写方法/
          console.log(newValue,oldValue) 
        }  
      }
     }
  })
</script>

🌞 什么是深度监视deep?通过该案例理解深度监视-检测ab的变化。
深度监视

🌞 深度监视总结Vue自身可以监测对象内部值的变化,但Vue提供的watch默认不可以!❷使用watch时根据数据的具体结构,决定是否采用深度监视。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值