050、Vue3+TypeScript基础,页面通讯之使用mitt在任意组件中通讯

news/2024/9/17 19:10:37/文章来源:https://www.cnblogs.com/tianpan2019/p/18377260

01、main.js代码如下:

// 引入createApp用于创建Vue实例
import {createApp} from 'vue'
// 引入App.vue根组件
import App from './App.vue'// 引入emitter用于全局事件总线
// import emitter from '@/utils/emitter'

const app = createApp(App);// App.vue的根元素id为app
app.mount('#app')

02、App.vue代码如下:

<template><div class="app"><h2 class="title">App.Vue</h2><Father/><br><Child/></div>
</template><script lang="ts" setup name="App">
import Father from "@/view/Father.vue";
import Child from "@/view/Child.vue";
</script><style scoped>
.app {background-color: #ddd;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;
}.nav-button {display: inline-block; /* 让链接显示为块级元素,以便应用宽度和高度 */padding: 10px 20px; /* 内边距 */margin: 0 5px; /* 外边距,用于按钮之间的间隔 */text-decoration: none; /* 移除下划线 */color: white; /* 文本颜色 */background-color: #007bff; /* 背景颜色 */border-radius: 5px; /* 边框圆角 */transition: background-color 0.3s; /* 平滑过渡效果 */
}.nav-button:hover {background-color: #0056b3; /* 鼠标悬停时的背景颜色 */
}.nav-button.router-link-active {background-color: #28a745; /* 当前激活(路由匹配)时的背景颜色 */
}.mai-content {/* 添加边框样式 */border: 2px solid #000; /* 边框宽度、样式和颜色 */border-radius: 5px; /* 可选:添加边框圆角 */padding: 20px; /* 可选:给内部内容添加一些内边距 */margin: 20px; /* 可选:给元素添加一些外边距,以便与其他元素隔开 */
}
</style>

03、emitter.ts代码如下:

//引入mitt
import mitt from 'mitt'const emitter = mitt()export default emitter

04、Father.vue代码如下:

<template><div class="mypage"><h3>我是子页面1</h3><h4>玩具:{{ toy }}</h4><button @click="emitter.emit('send-toy',toy)">玩具</button><br><br></div>
</template><script lang="ts" name="Father" setup>
import {ref} from "vue";
import emitter from "@/utils/emitter";//数据
let toy = ref('奥特曼')</script><style scoped>
.mypage {background-color: #ddd;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;button {margin: 0 5px;}
}
</style>

05、Child.vue代码如下:

<template><div class="mypage"><h3>我是子页面1</h3><h4>玩具:{{ toy }}</h4><button @click="emitter.emit('send-toy',toy)">玩具</button><br><br></div>
</template><script lang="ts" name="Father" setup>
import {ref} from "vue";
import emitter from "@/utils/emitter";//数据
let toy = ref('奥特曼')</script><style scoped>
.mypage {background-color: #ddd;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;button {margin: 0 5px;}
}
</style>

06、界面如下:

 07、浏览器显示如下:

 

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

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

相关文章

ut.cpp 最大线段并减线段交 [线段树]

题意:给定n条线段的左右端点,求两条有公共点的线段的并的长度减去它们的交的长度最大(\(n<=2e5\) \(1<=L,R<=1e9\))分析:不妨设\(L_i<=L_j<=R_i\),线段异或和为\(ans\),两条线段的右端点有两种情况: 1.\(R_j>=R_i\)此时 \(ans=R_j-R_i+L_j-L_i=L_j+…

Datawhale X 李宏毅苹果书 AI夏令营 -《深度学习详解》Task1

深度学习基础 学习目标理解深度学习的常见概念。 掌握优化神经网络的方法。 找到优化神经网络失败的原因。 学习调整学习率(lr)的高级方法。1、局部极小值与鞍点 在局部极小值与鞍点之前,首先了解一个特殊的点-临界点。 1.1 临界点 通常将梯度为零的点统称为“临界点”。什…

第二周作业

登录页面示例body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; background-color: rgba(247, 247, 247, 1) } .login-container { background-color: rgba(255, 255, 255, 1); padding: 20px; border-rad…

「代码随想录算法训练营」第四十五天 | 图论 part3

目录101. 孤岛的总面积DFS思路BFS思路102. 沉没孤岛103. 水流问题104. 建造最大岛屿 101. 孤岛的总面积题目链接:https://kamacoder.com/problempage.php?pid=1173 文章讲解:https://programmercarl.com/kamacoder/0101.孤岛的总面积.html 题目状态:看题解DFS思路 思路: 代…

carlife

carlife是真的画中画。亿连客户端不是。没去除小房子效果如下:

【专题】2024数智医疗服务时代营销机遇洞察报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37466 如今,人工智能、大数据、物联网等众多智能技术持续且深入地在医药产业中得到应用。这不仅极大地增强了医药产业的创新能力,显著提高了医疗服务的质量与效率,还有力地促进了从预防、诊断、治疗到康复的全链条数字化转型,使市场效率得…

049、Vue3+TypeScript基础,页面通讯之使用mitt在任意组件中通讯

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mount(…

lua协程实现异步编程模式

异步编程模式只是一个代码结构,c#中的async/await的写法就是异步编程模式,这边就是通过协程来达到和async/await类似的效果。异步编程模式写法1:资源分帧加载 这边运行环境用的是:Unity+xLualua脚本:Assets/Lua/Test9.lua.txtlocal _Time = CS.UnityEngine.Timelocal func…

Echarts可视化大屏框架

效果图展示: 源码:<template><div><!-- Header 部分 --><div class="heads"><h3>大数据可视化分析</h3><span>2023-12-12 12:20:45</span></div><!-- 中间部分 --><div class="middle"&…

可视化表单设计生成器可以实现流程化办公吗?

通过本文可以一起走进低代码技术平台、可视化表单设计生成器的更多优势特点。实现流程化办公一直都是很多客户朋友追求的目标。那么,如何才能实现这一目标?如何为客户提供更优良的产品助力提质、降本、增效?低代码技术平台拥有可视化操作界面、更灵活、更高效、更可靠,是专…

蓝帽杯2020-Misc-签到

蓝帽杯2020-Misc-签到 一、题目 题目名:观色怎么说呢,曲曲折折发现了坑🕳,所以记录下 二、解题 根据自己总结的七大类图片隐写排🕳 1、打开010文件结构查看,本来看着是个jpg,打开是个ps过的gif,未发现附加字符串,foremost没看到其他文件,宽高不涉及修改,IDTA块正常…

Django:Swagger文档的配置

前言 第三方库drf-yasg(Django Rest Swagger)。它是一个为Django Rest Framework提供Swagger/OpenAPI规范支持的库。按照以下步骤进行操作: 安装pip install drf-yasg -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com配置 1、在项目的setting…