vue脚手架实现子组件间通信

2023-11-02

效果图如下:
在这里插入图片描述

原理:子组件间通过第三方实例化一个vue,再通过此vue的$ emit()发射事件,与$ on()事件监听 通过参数来进行数据传递:

首先我们实例化一个vue:

bus.js文件:

import Vue from 'vue';
export default new Vue();

我们介绍两个子组件的父组件写法:

AB父组件:

<template>
  <div class="home">
		
		<h1>外面是这是AB父组件</h1>
		<A></A>
		<B></B>
  </div>
</template>

<script>
import A from './A';
import B from './B';

export default {
  name: 'AB',
  components: {
		A,
		B
  },
	data(){
		return{
			des:'外面是这是AB父组件'
		}
	}
}
</script>

<style>
</style>

我们通过子组件A发射事件:

子组件A:

<template>
	<div class="A">
		<h3>这是子组件A</h3>
		<button @click="handleSend">改变数据</button>
		<h1>{{num}}</h1>
	</div>
</template>

<script>
	import Bus from '../../src/utils/bus.js'
	export default{
		data(){
			return{
				num: 0
			}
		},
		methods:{
			handleSend(){
				this.num = this.num + 1;
				//发送事件 $emit('事件名', 参数)
				Bus.$emit('send', this.num);
			}
		}
	}
</script>

<style scoped>
	.A{
		width: 200px;
		height: 100px;
		margin: 10px auto;
		background-color: antiquewhite;
	}
</style>

我们通过子组件B监听事件:

子组件B:

<template>
	<div class="B">
		<h3>这是子组件B</h3>
		<h1>{{num}}</h1>
	</div>
</template>

<script>
	//引入事件车所在的Vue实例中
	import Bus from '../../src/utils/bus.js'
	
	export default{
		data(){
			return{
				num:0
			}
		},
		//通过生命周期函数created监听事件
		created(){
			Bus.$on('send',(num)=>{
				this.num = num
			})
		}
	}
</script>

<style scoped>
	.B{
		width: 200px;
		height: 100px;
		margin: 10px auto;
		background-color: aqua;
	}
</style>

这样就可以如效果图一样通信啦!

最后我们来看一下目录结构:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue脚手架实现子组件间通信 的相关文章

  • 左手坐标系和右手坐标系以及Unity中的世界坐标系和本地坐标系

    一 左手坐标系和右手坐标系 左手坐标系 伸开我们的左手 掌心向外 大拇指与食指成90度 中指 无名指和小指弯曲 大拇指指向的方向就是X轴正方向 食指指向的方向就是Y轴正方向 中指 无名指和小指指向的方向就是Z轴正方向 右手坐标系 伸开我们的
  • 快速突破面试算法之双指针篇

    前言 什么是双指针 砸门用大白话来说 就是两个定位装置 那么这两个定位装置有什么用呢 那肯定去定位撒 而且更高级的是这装置上面还有摄像头 可以看见当前所在位置的情况 现在我们给两个装置各自赋予动力 先赋予相同的动力 及移动速度一样 现在这两

随机推荐

  • 实现 vue2 中使用 vue-i18n 实现中英文切换功能

    1 下载包 版本要对应 2的版本8可以 vue3要用到9 npm install vue i18n 8 S 2 创建i18n js文件 import Vue from vue import Element from element ui i
  • 使用dd命令制作U盘启动盘

    1 插入U盘 df h查看U盘文件系统挂载情况 然后使用umount dev sdb 卸载U盘文件系统 2 执行命令 sudo mkfs vfat I dev sdb格式化U盘为FAT格式 3 dd if iso of dev sdb bs
  • vmware ubuntu与windows共享文件夹目录不显示的一种解决方法

    问题 mnt文件夹中没有共享的文件夹目录 甚至hgfs文件夹也没有 解决方法 1 我自己摸索出来的 在上图的界面 文件夹共享 下的选项选择 已禁用 点击最下方 确认 图中没有显示 被遮住了 再打开这个虚拟机设置界面 vmware界面上方工具
  • MAC强制卸载软件 如遇“不能修改或删除“*”,因为macOS需要它”

    连上小飞机后不知道怎么就下了个 流氓软件 疯狂卸载也卸载不掉 找了一个小时的攻略终于解决了 就是下面这个 很多人推荐用AppDelete这个应用卸载 尝试了一下并没有成功 用命令 sudo rm rf 应用名称 也没有卸载掉 尝试了一下解除
  • UE4 回合游戏项目 13- 生成敌人

    在上一篇 UE4 回合游戏项目 12 添加敌人受到攻击的动画 的基础上继续完成生成敌人的功能 效果 步骤 1 打开battleScenario 战斗场景 2 创建从类生成AI这个节点 现在我们需要获取到敌人的引用 以及敌人的数量 3 创建一
  • python内装饰器

    一 内置装饰器 内置装饰器 含义 classmethod 类方法 staticmethod 静态方法 二 普通方法 回顾 定义 第一个参数为self 代表 实例本身 调用 要有实例化的过程 通过 实例对象 方法名 调用 1 定义类 clas
  • 跳跃表原理

    跳跃表原理 最近看了一种数据结构叫做skipList redis和levelDB都是用了它 Skip List是在有序链表的基础上进行了扩展 解决了有序链表结构查找特定值困难的问题 查找特定值的时间复杂度为O logn 他是一种可以代替平衡
  • MySQL sku 数据批量导入_求node.js中mysql商品sku批量更新解决方案

    前提 不使用循环 1 sku具备添加 删除 修改功能 绑定数据sku sku goods id 1MJlrjS17jQ id 103 inventory 10 price 588 sku id 15617774918 sku name 黑色
  • Vue 富文本编辑器:vue-quill-editor粘贴图片上传服务器

    Vue 富文本编辑器 vue quill editor粘贴图片上传服务器 粘贴图片 vue quill editor复制图片实际上会以 base64 形式的进行一个上传 写进数据库后会导致数据一些加载问题 解决方法 将复制的图片先上传到服务
  • matlab产生随机数或随机矩阵

    Matlab中随机数生成器主要有 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽
  • Oracle中自动生成id的函数以及注意事项

    Oracle中自动生成id的函数 sys guid SELECT sys guid FROM aTable a 注意 上面这个是可以自动生成id 但是很多时候自动生成的id会出现乱码 原因 SYS GUID 以16位RAW类型值形式返回一个
  • arcgis中显示的图元根据投影坐标系确定单位

    这个迷糊了 如果是地理坐标系 则图元为经纬度 如果是投影坐标系 则图元为米
  • ESP8266使用邮件客户端 Arduino 库发送邮件(兼容ESP32)

    使用 ESP8266 发送邮件可以方便地处理各种事情 可以让 ESP8266 直接访问您的邮件服务器 例如 Gmail Hotmail Outlook 并通过它发送邮件 但许多邮件服务器会拒绝从不同于邮件服务器的域 您的 ip 发送的邮件
  • JS中Set去重

    Set类似于数组 但成员均是唯一的 没有重复值 Set本身是一个构造函数 用来生成Set数据结构 数组去重 const arr 2 2 3 4 4 const uniqe new Set arr 2 3 4 Array from方法可以将S
  • java实现姓名、手机号和银行卡中间用*号代替

    package com util date Description 模拟各大网站充值时的数据显示 author ShengLiu date 2018 7 4 public class TestUtil 定义所有常量 public stati
  • 关于Java中ArrayList最大容量Integer.MAX_VALUE-8中的8所代表的意义

    关于为何要减8这个问题 可以从出现何种错误的角度去看 你可以在程序中试图直接分配Integer MAX VALUE大小的ArrayList ArrayList
  • Scrapy源码分析-Spiders爬虫中文文档(一)

    Spider类定义了如何爬取某个 或某些 网站 包括了爬取的动作 例如 是否跟进链接 以及如何从网页的内容中提取结构化数据 爬取item 换句话说 Spider就是您定义爬取的动作及分析某个网页 或者是有些网页 的地方 对spider来说
  • 探索 prompt 编码范式:如何优雅构建测试代码生成提示词?

    从四月份到现在 我们持续为 AutoDev 编写了一系列的功能 尽管开发了三个多月 我们一直在持续思考 并重构我们管理 prompt 的方式 在即将发布的 AutoDev 0 8 里 我们进一下完善了现有的上下文构建方式 以模式化的方式重新
  • PPTP和L2TP有哪些区别?TG@zhaorui10

    1 PPTP要求互联网络为IP网络 L2TP只要求隧道媒介提供面向数据包的点对点的连接 L2TP可以在IP 使用UDP 帧中继永久虚拟电路 PVCs X 25虚拟电路 VCs 或ATM网络上使用 2 PPTP只能在两端点间建立单一隧道 L2
  • vue脚手架实现子组件间通信

    效果图如下 原理 子组件间通过第三方实例化一个vue 再通过此vue的 emit 发射事件 与 on 事件监听 通过参数来进行数据传递 首先我们实例化一个vue bus js文件 import Vue from vue export def