Vue3:在父组件监听子组件的值的变化,并在父组件接收

在 Vue 3 中,可以通过使用 watch 函数来监听父组件中的 receivedValuewatch 函数允许你在某个数据属性发生变化时执行相应的操作。

这里是如何在父组件中监听 receivedValue 的一个完整示例:

子组件

子组件负责触发一个事件,并将值作为参数传递给该事件。

<!-- ChildComponent.vue -->
<template>
  <div>
    <button @click="sendValue">点击发送值</button>
  </div>
</template>

<script setup>
import { defineEmits } from 'vue';

const emit = defineEmits(['valueSent']);

function sendValue() {
  const valueToSend = 'Hello from Child';
  emit('valueSent', valueToSend);
}
</script>

父组件

父组件监听子组件的事件,并使用 watch 函数监听 receivedValue 的变化。

<!-- ParentComponent.vue -->
<template>
  <div>
    <ChildComponent @valueSent="handleValueSent" />
    <p>从子组件接收到的值: {{ receivedValue }}</p>
  </div>
</template>

<script setup>
import { ref, watch } from 'vue';
import ChildComponent from './ChildComponent.vue';

const receivedValue = ref('');

// 定义处理事件的方法
function handleValueSent(value) {
  receivedValue.value = value;
}

// 使用 watch 函数监听 receivedValue 的变化
watch(receivedValue, (newValue, oldValue) => {
  console.log(`receivedValue changed from ${oldValue} to ${newValue}`);
  // 在这里执行你想要的操作
});
</script>

说明

  1. watch 函数监听 receivedValue,每当 receivedValue 发生变化时,它都会执行回调函数。在这个回调函数中,newValue 是新值,oldValue 是旧值。
  2. handleValueSent 方法用于接收子组件传递的值,并将其赋值给 receivedValue

通过这种方式,父组件不仅能够接收子组件传递的值,还能够实时监控该值的变化,并在变化时执行相应的逻辑。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-05 19:36:55       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-05 19:36:55       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-05 19:36:55       82 阅读
  4. Python语言-面向对象

    2024-06-05 19:36:55       91 阅读

热门阅读

  1. 智能网联汽车翻译

    2024-06-05 19:36:55       19 阅读
  2. Shell 编程之免交互

    2024-06-05 19:36:55       30 阅读
  3. SQL注入的危害和原理

    2024-06-05 19:36:55       31 阅读
  4. 达梦数据库的锁介绍

    2024-06-05 19:36:55       31 阅读
  5. Python中的None用法深度解析

    2024-06-05 19:36:55       32 阅读