watch什么时候用methods,什么时候用handler

<!DOCTYPE html>
<html>
	<body>
		<div id="app">
      <div>年龄: <input type="text" v-model="person.age"></div>
      <p v-if="info">{
    
    {
    
     info }}</div>
		</div>

<script src="https://unpkg.com/vue@next"></script>
<script>
  const app = Vue.createApp({
    
    
    data() {
    
    
      return {
    
    
        person: {
    
    
          age: 0,
          name: 'lisi'
      },
      info: ''
    }
    },
   
    watch: {
    
    
      person: {
    
    
        handler(val, oldVal) {
    
    
          if(val.age >= 18)
             this.info = '已成年';
          else
             this.info = '未成年';
        },
        deep: true,
        immediate: true
      }
    }
   
  }).mount('#app')


		</script>
	</body>
</html>



watch 的一个特点是,最初绑定的时候是不会执行的,要等到 监听的属性 改变时才执行监听计算。那我们想要一开始就让他最初绑定的时候就执行改怎么办呢?

immediate表示在watch中首次绑定的时候,是否执行handler,值为true则表示在watch中声明的时候,就立即执行handler方法,值为false,则和一般使用watch一样,在数据发生变化的时候才执行handler。

https://blog.csdn.net/MCQq123321/article/details/84100961

猜你喜欢

转载自blog.csdn.net/weixin_40945354/article/details/120280966