vue 父页面监听子页面值的变化

在Vue中,可以通过使用$emit()来触发事件并传递数据。

首先,需要在父组件中定义一个自定义事件名称,然后将该事件与相应的处理函数关联起来。当子组件改变了其值时,就会调用这个处理函数。

下面是一个示例代码:

<!-- 父组件 -->
<template>
  <div>
    <!-- ...其他内容... -->
    
    <!-- 子组件 -->
    <child-component @valueChanged="handleValueChange"></child-component>
  </div>
</template>
 
<script>
import ChildComponent from './ChildComponent.vue'; // 导入子组件
 
export default {
  components: {
    'child-component': ChildComponent // 注册子组件
  },
  
  methods: {
    handleValueChange(newValue) {
      console.log('新的值为', newValue);
      
      // 进行其他操作或更新状态等
    }
  }
}
</script>
<!-- 子组件 ChildComponent.vue -->
<template>
  <input type="text" v-model="internalValue">
</template>
 
<script>
export default {
  data() {
    return {
      internalValue: ''
    };
  },
  
  watch: {
    internalValue(newVal) {
      this.$emit('valueChanged', newVal); // 触发自定义事件并传递新的值
    }
  }
};
</script>

上述代码中,父组件通过@valueChanged监听子组件的valueChanged事件,并指定了对应的处理函数handleValueChange。当子组件的输入框的值发生变化时,会触发watch属性中的internalValuewatcher,从而调用this.$emit('valueChanged', newVal)来触发自定义事件,同时也传递了新的值newVal。最后,父组件接收到事件后,会打印出新的值,并且还可以根据需求进行其他操作或者更新状态等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值