Vue基于$attrs及$listeners实现隔代通信

简介: Vue基于$attrs及$listeners实现隔代通信

所谓隔代通信就是A 与C的通信

A -> B -> C

d24.3.png

代码实例

A.vue

<template>

<div id="app">
<!-- 此处监听了事件,可以在C组件中直接触发 -->
<b-child
nameToB="nameToB"
nameToC="nameToC"
@buttonClick="buttonClick"
>
</b-child>
</div>
</template>


<script>
import BChild from "./B.vue";

export default {
data() {
return {};
},

components: { BChild },

methods: {
buttonClick() {
console.log("buttonClick...");
}
}
};
</script>

B.vue

<template>
<div>
<h1>B组件</h1>
<p>name: { {nameToB}}</p>
<p>$attrs: {<!-- -->{$attrs}}</p>
<hr>
<!-- C组件中能直接触发buttonClick的原因在于 B组件调用C组件时 使用 v-on 绑定了$listeners 属性 -->
<!-- 通过v-bind 绑定$attrs属性,C组件可以直接获取到A组件中传递下来的props(除了B组件中props声明的) -->
<c-child v-bind="$attrs&#34; v-on&#61;&#34;$listeners"></c-child>

</div>
</template>

<script>
import CChild from './C.vue';

export default {
props: ['nameToB'],

components: { CChild },

data () {
return {};
},

// inheritAttrs: false,
};
</script>

C.vue

<template>
<div>
<h1>C组件</h1>
<p>name: { {nameToC}}</p>
<p>$attrs: {<!-- -->{$attrs}}</p>
<button @click="buttonClick">点击C按钮</button>
</div>
</template>

<script>
export default {
// inheritAttrs: false,

props: ['nameToC'],

data () {
return {};
},

methods: {
buttonClick(){
this.$emit('buttonClick');
}
}
};
</script>

最终,通过B实现了A与C的通信

d24.4.png


参考

Vue v2.4中新增的a t t r s 及 attrs及attrs及listeners属性使用教程


            </div>
目录
相关文章
|
JavaScript 前端开发 区块链
|
机器学习/深度学习 存储 人工智能
未来的移动通信网络,6G与人工智能的融合
在最近的几十年中,移动通信网络从1G发展到6G,通信关键技术层出不穷、迅速发展,广泛应用在人类社会的各行各业,成为社会信息化变革的重要支撑。
1398 0
未来的移动通信网络,6G与人工智能的融合
|
Web App开发 JavaScript 前端开发
构建现代Web应用:Vue.js与Node.js的完美结合
在当今快速发展的Web技术领域,选择合适的技术栈对于开发高效、响应迅速的现代Web应用至关重要。本文深入探讨了Vue.js和Node.js结合使用的优势,以及如何利用这两种技术构建一个完整的前后端分离的Web应用。不同于传统的摘要,我们将通过一个实际的项目示例,展示从搭建项目架构到实现具体功能的整个过程,着重介绍了Vue.js在构建用户友好的界面方面的能力,以及Node.js在处理服务器端逻辑和数据库交互中的高效性。通过本文,读者不仅能够理解Vue.js与Node.js各自的特点,还能学习到如何将这两种技术融合应用,以提升Web应用的开发效率和用户体验。
|
存储 数据采集 监控
商用车管理服务平台 DAAS+SAAS开放平台,实现物流数字化高效转型
商用车从 18 年开始,经历了从 2G 到 4G 的发展,从以前只有车辆定位,发展到如今具备 ADAS+DMS 管理功能的摄像头以及各种传感设备。
3042 0
商用车管理服务平台    DAAS+SAAS开放平台,实现物流数字化高效转型
python 绘图 实现图中为字体添加下标、上标
python 在绘图添加图例时,一些数学符号或者公式常常包含上标和下标,这里简单描述了如何实现上述要求。
python 绘图 实现图中为字体添加下标、上标
App Uploader下载安装
1. 进入App Uploader官网下载。下载地址: http://www.applicationloader.net/ 2. 最新版本下载地址 https://net-appuploader.oss-cn-qingdao.aliyuncs.com/appuploader_win_0728.zip 2.在弹出框中点击“下载”。 3.在弹出框中点击“文件夹”打开。 4.右键选择“解压全部文件”。 5.选择“提取”。 6.双击应用程序 7.选择“更多信息”。 步骤8:进入AppUloader主界面。
|
存储 缓存 小程序
如何实现游戏中的在线计时器和离线计时器
本文包含了游戏中两种计时器的实现原理和实现方法,皆在帮助你彻底的搞懂游戏开发中的计时器。 如果你没有任何的游戏开发经验,欢迎观看我的“人人都能做游戏”系列视频教程,它会手把手的教你做出自己的第一个小游戏。 在游戏中经常会有需要倒计时的需求,例如倒计时 10 分钟可以获得 1 点体力,倒计时 1 小时后可以开启一个宝箱,或者是根据游戏的计时获得奖励等等。
570 0
|
BI 容器 JavaScript
公开课03期 |基于宜搭的企业报表页面搭建
宜搭的应用搭建者一般针对于表单流程收集上来的数据有分析的需求,本文基于宜搭提供的报表页面服务提供制作心得,主要介绍报表页面组件的使用,数据的筛选联动以及各组件的高级设置功能。
13608 0
公开课03期 |基于宜搭的企业报表页面搭建
|
人工智能 分布式计算 大数据
阿里开发者招聘节 | 2019阿里巴巴技术面试题集锦!参考答案已公布!
阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的笔试真题这一次将陆续放出(面试题答案将在专辑分享结束后统一汇总分享)。并通过这些笔试真题开放阿里巴巴工作机会,让更多的开发者加入到阿里这个大平台。