Vue中watch监视属性

监听属性

在Vue中可以使用watch属性来监听属性变化
语法

 watch: {
    要监视的属性(newValue, OldValue) {
      /在这里可以添加响应属性变化的逻辑
    }
  },
  1. 在 Vue 组件中定义一个属性,在这个案例中我们定义了 count 属性。
 <div id="root">
        <p>Count: {{ count }}</p>
        <button @click="increment">Increment</button>
      </div>

      <script>
        new Vue({
            el:"#root",
            data(){
                return{
                    count:0
                }
            },

            methods:{
                increment() {
                    this.count++
                }

            },

            watch:{
                count(newValue,OldValue){
                    console.log(`${OldValue}变化为${newValue}`)
                }
            }
        })
      </script>
    

在这里插入图片描述

在上述案例中,创建了一个简单的计数器组件。每次点击 “Increment” 按钮时,count 值都会递增。在 watch 选项中,监听 count 属性的变化,并在控制台打印出新旧值的信息。在回调函数中添加处理属性变化的逻辑。

深度监听

要在 watch 中进行深度监听,可以使用 { deep: true } 作为选项。这将使 Vue 在检测到嵌套属性、对象或数组内部值发生变化时触发回调函数。
语法

 watch: {
 要监听的对象或数组:{
    handler(newValue, OldValue) {
      /在这里可以添加响应属性变化的逻辑
      }
    }
  },
 <div id="root">
          <p>Person: {{ person.name }}</p>
          <p>Age: {{ person.age }}</p>
          <button @click="changeName">Change Name</button>
        </div>
      
      
      <script>
      new Vue({
        el:"#root",
        data() {
          return {
            person: {
              name: 'John',
              age: 30
            }
          };
        },
        watch: {
          person: {
            deep: true,
            handler(newValue, oldValue) {
              console.log('Person changed:', newValue.name);
            }
           
          }
        },
        methods: {
          changeName() {
            this.person.name = 'Jane';
          }
        }
      });
      </script>

在这里插入图片描述

在上述示例中,拥有一个包含 person 对象的组件,并添加了对其的深度监听。当 person 对象内部的任何属性发生变化时,Vue 将调用回调函数,并打印出新的 person 值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值