mitt
<template>
<A></A>
<B></B>
</template>
<script setup lang='ts'>
import A from './A.vue'
import B from './B.vue'
// 兄弟组件之间的通信在Vue3中没有bus,通过插件mitt来完成兄弟之间的沟通
</script>
<style scoped lang='scss'>
</style>
<template>
<div @click="emit">传过去B</div>
</template>
<script setup lang='ts'>
import { getCurrentInstance } from 'vue'
const instance = getCurrentInstance();
// 发送信息
const emit = () => {
console.log("%c Line:10 🍿", "color:#ffdd4d");
instance?.proxy?.$Bus?.emit('getMsg', 'hello world')
}
</script>
<style scoped lang='scss'>
</style>
<template>
<div>A传来的信息</div>
</template>
<script setup lang='ts'>
import { getCurrentInstance } from 'vue'
const instance = getCurrentInstance();
// 接受信息
// instance?.proxy?.$Bus?.on('getMsg', (msg: string) => {
// console.log('A接收到B传来的信息', msg)
// })
// * 代表监听所有事件,type为事件名称
// instance?.proxy?.$Bus?.on('*', (type, msg: string) => {
// console.log('A接收到B传来的信息',type, msg)
// })
const bus = (str: any) => {
console.log('A接收到B传来的信息', str);
}
instance?.proxy?.$Bus?.on('getMsg', bus)
instance?.proxy?.$Bus?.off('getMsg', bus) // 取消监听
instance?.proxy?.$Bus.all.clear() // 取消全部监听
</script>
<style scoped lang='scss'>
</style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2023-02-07 前端面试题目汇总