递归组件实现子向父传值

news/发布时间2024/5/9 12:19:32

业务逻辑:通过自己调用自己的方式生成树,再点击子菜单时,需要将点击子菜单的菜单名传值给父组件(使用总线 bus)

 新建bus.js文件

import { ref } from 'vue'class Bus {constructor() {// 收集订阅信息,调度中心this.eventList = {}, // 事件列表,这项是必须的// 下面的都是自定义值this.msg = ref('这是一条总线的信息')}// 订阅
  $on(name, fn) {this.eventList[name] = this.eventList[name] || []this.eventList[name].push(fn)}// 发布
  $emit(name, data) {if (this.eventList[name]) {this.eventList[name].forEach((fn) => {fn(data)});}}// 取消订阅
  $off(name) {if (this.eventList[name]) {delete this.eventList[name]}}
}export default new Bus()

 父组件引入

<script>
// import roomMenuData from "@/data/RoomMenuData"; //左侧菜单数据
import leftMenu from "@/components/leftMenu.vue"; //引用递归菜单组件
var roomMenuDataL; //后台获取教室数据
var message = "";
import Bus from "@/mytools/Bus";
// 监听菜单点击返回值(//左侧菜单点击事件)
Bus.$on("changeMsg", (data) => {message= data;console.error(data);console.error("菜单数据");
});
</script>

子组件

<template><div>子组件:<button @click="handleBusEmit">触发Bus.$emit</button><button @click="changeBusMsg">修改总线里的 msg</button></div>
</template><script setup>
import Bus from '../Bus.js'function handleBusEmit() {Bus.$emit('changeMsg', '雷猴啊')
}function changeBusMsg() {// console.log(Bus.msg)Bus.msg.value = '在子组件里修改了总线的值'
}
</script>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/45022055.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

[转帖]JUC内置线程池

https://cloud.tencent.com/developer/article/2235750 ThreadPoolExecutor ThreadPoolExecutor是最基础的线程池类:12345678public ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueu…

模拟电路与存储电路EDA工具产品

模拟电路设计全流程EDA工具系统 华大九天模拟电路设计全流程EDA工具系统包括原理图编辑工具、版图编辑工具、电路仿真工具、物理验证工具、寄生参数提取工具和可靠性分析工具等,为用户提供了从电路到版图、从设计到验证的一站式完整解决方案。原理图和版图编辑工具Emp…

关于如何使用echarts实现市县区地图的可视化

找了很多资料,终于实现了 获取genjson的方式,很好用!!! AreaCity Geo格式转换工具 (gitee.io) 然后将数据格式贴在下面就可以了<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>石家庄市</ti…

LeetCode 1206. Design Skiplist

原题链接在这里:https://leetcode.com/problems/design-skiplist/description/ 题目: Design a Skiplist without using any built-in libraries. A skiplist is a data structure that takes O(log(n)) time to add, erase and search. Comparing with treap and red-black …

系统渐渐沦为“屎山”,原因是..

相信有很多小伙伴都有小猫这样的体会,尤其是接手一个老的系统的时候,总是会吐槽当前的系统很烂,恨不得马上将其完完全全重构掉。分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/背景 小猫维护现有的系统也有一段时间了,踩坑也不少,事故不少。感兴趣的小伙伴可以…

Word设置样式快捷键(转载)

1.问题 每次都要手动选择,有些隔着几个格子比较麻烦,设置快捷键进行管理 2.解决 参考:Word样式也有“快捷键”,你却不知道! (1)单击【开始】-【样式】组,在需要设置快捷键的样式上单击鼠标右键,在弹出的快捷菜单中选择“修改”命令。(2)打开“修改样式”对话框,单击“…