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>
目录
相关文章
无影云电脑使用感受
简单谈谈无影云电脑使用的感受
1076 1
无影云电脑使用感受
|
10月前
|
人工智能
2025年人工智能与可持续发展国际学术会议 2025 International Conference on Artificial Intelligence and Sustainable Development (ICAISD 2025)
2025年人工智能与可持续发展国际学术会议 2025 International Conference on Artificial Intelligence and Sustainable Development (ICAISD 2025)
666 7
|
7月前
|
消息中间件 Kafka
【赵渝强老师】Kafka生产者的消息发送方式
Kafka生产者支持三种消息发送方式:1. **fire-and-forget**:发送后不关心结果,适用于允许消息丢失的场景;2. **同步发送**:通过Future对象确保消息成功送达,适用于高可靠性需求场景;3. **异步发送**:使用回调函数处理结果,吞吐量较高但牺牲部分可靠性。视频和代码示例详细讲解了这三种方式的具体实现。
293 5
|
7月前
|
人工智能
RAG没有银弹!四级难度,最新综述覆盖数据集、解决方案,教你LLM+外部数据的正确使用姿势
在人工智能领域,大型语言模型(LLM)结合外部数据展现出强大能力,尤其检索增强生成(RAG)和微调技术备受关注。然而,不同专业领域的有效部署仍面临挑战,如准确检索数据、理解用户意图等。综述文章《Retrieval Augmented Generation (RAG) and Beyond》提出RAG任务分类方法,将用户查询分为四个级别,并探讨了外部数据集成的三种形式:上下文、小型模型和微调。文章提供了宝贵见解和实用指导,帮助更好地利用LLM潜力解决实际问题。论文链接:https://arxiv.org/abs/2409.14924
242 6
|
10月前
|
数据安全/隐私保护 数据格式
高效的数据脱敏策略
在数字化时代,数据安全和隐私保护变得尤为重要。数据脱敏作为一种有效的数据保护手段,可以帮助企业降低数据泄露风险,同时遵守相关的法律法规。本文将介绍三种常见的数据脱敏方案,为您提供实用的技术干货。
302 1
|
9月前
|
安全 网络安全 数据安全/隐私保护
第六问:http和https区别与联系
HTTP 和 HTTPS 是现代网络通信中的两种重要协议。HTTP 是明文传输协议,无加密功能;HTTPS 在 HTTP 基础上加入 SSL/TLS 加密层,提供数据加密、身份验证和数据完整性保障。HTTP 适用于非敏感信息传输,如新闻网站;HTTPS 适用于在线支付、账户登录等需要保护用户数据的场景。
320 0
|
API 算法框架/工具
【threejs教程】三维物体与三维向量
【8月更文挑战第7天】threejs教程:三维物体与三维向量
260 3
【threejs教程】三维物体与三维向量
EMQ
|
消息中间件 监控 安全
EMQX 4.x 版本更新:Kafka 与 RocketMQ 集成安全增强
云原生分布式物联网接入平台EMQX此次发布包含多个功能更新:规则引擎RocketMQ支持ACL检查、Kafka支持SASL/SCRAM与SASL/GSSAPI认证以适配更多部署方式,提升MQTT共享订阅性能。
EMQ
475 0
EMQX 4.x 版本更新:Kafka 与 RocketMQ 集成安全增强
|
传感器 存储 数据采集
iNeuOS工业互联网平台,在高校教学实训领域的应用
中国工业互联网从 0 向 1 演进从缺政策、缺技术、缺市场,逐渐转移到了缺人才,跨行业、跨领域的复合型人才;IT与OT融合型人才;了解工业、了解数据分析、了解工业机理的复合型人才;既懂工业运营需求、又懂网络信息技术、有较强创新能力和操作能力的复合型人才;既有专业领域的知识、又懂得大数据、人工智能新算法的人才;懂工业和新兴技术的跨界人才等。
579 0
iNeuOS工业互联网平台,在高校教学实训领域的应用