VUE--组件通信(非父子)

一、非父子通信  ---  event bus 事件总线

        作用:非父子组件之间进行简易的消息传递

        步骤: 

                1、创建一个都能访问到的事件总线(空vue实例)--- utils/EventBus.js 

import Vue from 'vue'
export default new Vue({})

                2、 接收方(A组件),监听Bus实例的事件

<script>
import bus from '@/bus'
export default {created() {bus.$on('sendInfo', val => {console.log('接收的数据:' + val)})},
}
</script>

                3、 发送方(B组件),触发Bus实例的事件

<button @click="send">发送数据</button><script>
import bus from '@/bus' // @代表src文件夹
export default {methods: {send() {bus.$emit('sendInfo', '发送的数据')},},
}
</script>

                点击B组件的按钮后,控制台会输出对应内容。如下所示:

二、非父子通信  ---  provide & inject 

        作用:跨层次共享数据,但只能层层向下 

 

        步骤: 

                1、父组件provide提供数据

<template><div><Son></Son></div>
</template><script>
import Son from './components/Son.vue'
export default {data() { return {} },provide: {// 传递给下层的数据user: { name: 'John', age: '18' },},components: { Son, },
}
</script>

                2、子/孙组件 inject取值使用 

<template><div><h2>儿子组件--{{ user.name }}</h2><hr /><GrandSon></GrandSon></div>
</template><script>
import GrandSon from './GrandSon.vue'
export default {name: 'SonPage',// inject取值inject: ['user'],components: { GrandSon, },
}
</script>
<template><div><h3>孙子组件 -- {{ user.age }}</h3></div>
</template><script>
export default {inject: ['user'],
}
</script>

                结果如下:

注意:

        1、传递的数据如果是对象,则是响应式的

        2、传递其他格式的数据,则是非响应式的

        3、若要改为响应式的,可使用computed(不推荐!!!

import { computed } from 'vue'provide: {// 传递给下层的数据user: { name: 'John', age: '18' },phone: computed('1212121')
},

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

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

相关文章

Golang个人web框架开发-学习流程

Golang-个人web框架 github仓库创建github仓库 web框架学习开发周期第一阶段--了解第一阶段思考小结 第二阶段第三阶段 github仓库 github地址&#xff1a;ameamezhou/golang-web-frame 后续还将继续学习更新 创建github仓库 设置免密登录 ssh-keygen 一路回车就OK 上面有告…

flutter使用get依赖实现全局loading效果,弹窗loading状态

get dialog的官网文档&#xff1a;GetDialogRoute class - dialog_route library - Dart API 可以使用Get.dialog()方法来创建一个自定义的加载弹窗&#xff0c;get框架是支持自定义弹窗效果的&#xff0c;所以我们就使用这个方式来自定义一个弹窗效果&#xff0c;并且点击遮罩…

Ubuntu使用QtCreator + CMake 开发C/C++程序

平台 OS: Ubuntu 20.04 cmake: 3.16.3 IDE: Qt Creator 4.11.1 Based on Qt 5.14.1 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit) Built on Feb 5 2020 12:48:30 From revision b2ddeacfb5 Copyright 2008-2019 The Qt Company Ltd. All rights reserved. The program …

运维工具之iptables命令

运维工具之iptables命令 1.iptables防火墙介绍 ​ iptables其实并不是真正的防火墙&#xff0c;我们可以理解成一个客户端代理&#xff0c;用户通过 IPTables这个代理&#xff0c;将用户的安全设定执行到对应的"安全框架"中&#xff0c;这个"安全框架"才…

【C++】string的基本使用

从这篇博客开始&#xff0c;我们的C部分就进入到了STL&#xff0c;STL的出现可以说是C发展历史上非常关键的一步&#xff0c;自此C和C语言有了较为明显的差别。那么什么是STL呢&#xff1f; 后来不断的演化&#xff0c;发展成了知名的两个版本&#xff0c;一个叫做P.J.版本&am…

c语言案例双色球

系列文章目录 c语言案例双色球 c语言案例双色球 系列文章目录c语言案例双色球 c语言案例双色球 int main() {srand((unsigned int)time(NULL));//双色球两种原色 红球蓝球&#xff08;61&#xff09;红球1-33 蓝球1-16 打印双色球中奖信息//红色球不能重复 int ball[6];//红球f…

为什么 macOS 比 Windows 稳定?

在计算机操作系统领域&#xff0c;macOS 和 Windows 分别是苹果公司和微软公司的主打产品。尽管两者都拥有大量的用户群体&#xff0c;但在稳定性和用户体验方面&#xff0c;macOS 常常被认为优于 Windows。那么&#xff0c;为什么 macOS 比 Windows 更稳定呢&#xff1f; 我们…

HTML前端CSS实现只显示1行或者2行、3行剩余显示省略号

想要做的效果: 文本只一行显示 /**实现思路&#xff1a;1.设置inline-block属相2.强制不换行3.固定高度4.隐藏超出部分5.显示“……”*/ {display: inline-block;white-space: nowrap; width: 100%; overflow: hidden;text-overflow:ellipsis; }文本只多行显示 /** 实现思路&…

【Debian】非图形界面Debian10.0.0安装xfce和lxde桌面

一、安装 1. Debian10.0.0安装xfce桌面 sudo apt update sudo apt install xfce4 startxfce4 2. Debian10.0.0安装lxde桌面 sudo apt-get install lxde安装后重启电脑。 二、说明 XFCE、LXDE 和 GNOME 是三个流行的桌面环境&#xff0c;它们都是为类 Unix 操作系统设计…

springboot108精品在线试题库系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的精品在线试题库系统 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 …

SCI 2区论文:医疗保健中心训练有素的脑膜瘤分割模型的性能测试-基于四个回顾性多中心数据集的二次分析

基本信息 标题&#xff1a;Performance Test of a Well-Trained Model for Meningioma Segmentation in Health Care Centers: Secondary Analysis Based on Four Retrospective Multicenter Data Sets中文标题&#xff1a;医疗保健中心训练有素的脑膜瘤分割模型的性能测试&am…

arthas(阿尔萨斯)日常java代码调优使用命令

官方项目文档&#xff1a;https://gitee.com/arthas/arthas &#xff08;最权威的教学还是得官网&#xff0c;这里仅作简单记录&#xff09; 1&#xff1a;启动 java -jar arthas-boot.jar 2&#xff1a;查看cpu占用排名前三 thread -3 3&#xff1a;查看指定id thread 203 4:查…