您的位置:首页 > 健康 > 养生 > 国产crm_网络建站培训_宁德市古田县_seo软件优化工具软件

国产crm_网络建站培训_宁德市古田县_seo软件优化工具软件

2024/12/22 12:08:54 来源:https://blog.csdn.net/qq_58055766/article/details/144533875  浏览:    关键词:国产crm_网络建站培训_宁德市古田县_seo软件优化工具软件
国产crm_网络建站培训_宁德市古田县_seo软件优化工具软件

案例:父组件里有A组件、B组件

A组件 =》 父组件 =》B组件

AComponent.vue

<template><div @dragend="handleDragEnd">Drag Me</div>
</template><script setup lang="ts">
import { defineEmits } from "vue";// 定义发出事件
const emit = defineEmits<{(event: "drag-end", data: { event: DragEvent; someData: string }): void;
}>();const handleDragEnd = (event: DragEvent) => {// 发出事件传递数据emit("drag-end", { event, someData: "example from AComponent" });
};
</script>

父组件 ParentComponent.vue 

<template><AComponent @drag-end="handleDragEnd" /><BComponent :data="receivedData" />
</template><script setup lang="ts">
import { ref } from "vue";
import AComponent from "./AComponent.vue";
import BComponent from "./BComponent.vue";// 接收 AComponent 传递的数据
const receivedData = ref<{ event: DragEvent; someData: string } | null>(null);const handleDragEnd = (data: { event: DragEvent; someData: string }) => {receivedData.value = data; // 更新数据,传递给 BComponent
};
</script>

BComponent.vue 

<template><div><p v-if="data">Received Data: {{ data.someData }}</p><p v-else>No Data Received</p></div>
</template><script setup lang="ts">
import { defineProps } from "vue";// 定义 props
const props = defineProps<{data: { event: DragEvent; someData: string } | null;
}>();
</script>

 

代码说明:

  1. AComponent.vue

    • 使用 @dragend 监听拖拽结束事件,通过 emit 发出 drag-end 自定义事件,将数据传递给父组件。
  2. ParentComponent.vue

    • 监听 AComponentdrag-end 事件,处理传来的数据并存储到 receivedData
    • receivedData 通过 props 传递给 BComponent
  3. BComponent.vue

    • 接收父组件传递的 data,如果有数据则显示内容,如果没有则提示“未接收到数据”。

 

效果:

  1. 用户在 AComponent 拖拽结束后触发事件,父组件监听并更新数据。
  2. BComponent 实时展示父组件传递的数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com