vue3 组件传参

news/2024/11/14 3:01:41/
父子 props、$panrent
子父 emit自定义事件 $children $refs
兄弟 eventbus中央事件总线 vue3如果需要实现eventbus 安装第三方库mitt     
跨层级 provider inject
组件状态共享工具: vuex pinia

vue3 兄弟组件传参

原理:

通过第三个“东西”,一个往里写,一个读取。

方案:Mitt.js

Mitt.js 安装及使用方法
安装

包的官网:
https://www.npmjs.com/package/mitt

npm i mitt

在这里插入图片描述
封装:
在项目src目录下新建一个 bus文件夹,里面再建一个bus.ts文件,用来存放咱们的EventBusa事件总线。在 bus.ts 文件中,封装代码。

简单:

// 引入库
import mitt from "mitt"
// 创建事件总线
const emitter = mitt()
// 导出
export default emitter

复杂点


import mitt, { Emitter } from 'mitt';// 类型
const emitter: Emitter<MittType> = mitt<MittType>();// 导出
export default emitter;

组件示例
父组件

<template><A /><hr><B />
</template><script  lang="ts" setup>
import A from './components/A.vue'
import B from './components/B.vue'
</script>

子组件A

<template><div>A</div><button @click="onSendBtn">给B组件进行传值</button>
</template><script  lang="ts" setup>
// 引入EventBus总线文件
import emitter from '../bus/bus.ts'
function onSendBtn(){emitter.emit('urlparam',{url:"https://www.baidu.com"}}
</script>

子组件B

<template><div>B</div>
</template><script  lang="ts" setup>
import { onBeforeUnmount, ref } from 'vue'
import emitter from '../bus/bus.ts'
// 创建响应式变量接收传参const url= ref('')
// 监听组件(兄弟组件)传参
// 第一个参数: 监听的连接名
// 第二个参数: 传递的数据emitter.on('urlparam', data => {console.log(data);url.value=data.url})
// 页面卸载时关闭EventBus总线的监听,不关闭会造成多次触发的问题
onBeforeUnmount(() => {
// 传入要关闭的连接emitter.off('urlparam')
})
</script>

http://www.ppmy.cn/news/1430085.html

相关文章

36-4 PHP 代码审计基础

一、 代码审计思路 1. 正向查找: 在进行正向查找时,通常按照以下步骤进行: 功能点了解: 首先,了解网站的功能点和业务逻辑,明确可能存在的漏洞类型。 入口文件检查: 查看网站的入口文件,通常是 index.php,逐行分析其代码,关注可能存在漏洞的代码段。 逐行审查: 对…

C++进修——C++基础入门

初识C 书写HelloWorld #include <iostream> using namespace std;int main() {cout << "HelloWorldd" << endl;system("pause");return 0; }注释 作用&#xff1a;在代码中加一些说明和解释&#xff0c;方便自己或其他程序员阅读代码…

Git TortoiseGit 详细安装使用教程

前言 Git 是一个免费的开源分布式版本控制系统&#xff0c;是用来保存工程源代码历史状态的命令行工具&#xff0c;旨在处理从小型到非常大型的项目&#xff0c;速度快、效率高。《请查阅Git详细说明》。TortoiseGit 是 Git 的 Windows Shell 界面工具&#xff0c;基于 Tortoi…

JVM复习总结2024.4.18(很重要)

一、JVM类加载机制 类加载机制是指我们将类的字节码文件所包含的数据读入内存&#xff0c;同时我们会生成数据的访问入口的一种特殊机制。类加载的最终产品是数据访问入口。 类加载机制的流程是什么&#xff1f;类加载器作用&#xff1a;①加载类&#xff1b;②确定类在Java虚…

大一考核题解

在本篇中&#xff0c;将尽力使用多种解法&#xff0c;来达到一题多练的效果。 1&#xff1a; 1.原题链接&#xff1a; 238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 这道题首先一眼肯定想到拿整体的积除以当前元素&#xff0c;将结果作为ans&#xff0c;…

带你搞懂STM32中GPIO的8种工作模式

学习过单片机的小伙伴对GPIO肯定不陌生&#xff0c;GPIO &#xff08;general purpose input output&#xff09;是通用输入输出端口的简称&#xff0c;通俗来讲就是单片机上的引脚。在STM32中&#xff0c;GPIO的工作模式被细分为8种&#xff0c;对于初学者来讲&#xff0c;要理…

Spring Boot 自动装配执行流程

Spring Boot 自动装配执行流程 Spring Boot 自动装配执行流程如下&#xff1a; Spring Boot 启动时会创建一个 SpringApplication实例&#xff0c;该实例存储了应用相关信息&#xff0c;它负责启动并运行应用。实例化 SpringApplication 时&#xff0c;会自动装载META-INF/spr…

爬虫入门——Request请求

目录 前言 一、Requests是什么&#xff1f; 二、使用步骤 1.引入库 2.请求 3.响应 三.总结 前言 上一篇爬虫我们已经提及到了urllib库的使用&#xff0c;为了方便大家的使用过程&#xff0c;这里为大家介绍新的库来实现请求获取响应的库。 一、Requests是什么&#xff1…