·
教程大全 ·
192250
前言:
如果想要了解非父子关系的组件传值,最好是在了解父传子和子传父的基础上在来了解非父子传值可能会有更透彻的思路。
因为非父子传值是通过定义事件总线来代理实现父传子+子传父从而实现的传值方式。
这是我总结的父子传值相关的知识,可供参考:
然后大概回顾一下父子传值的过程:
根据上述信息可知,如果两个组件需要传递值那么需要这两个组件之间是父子关系才能传递数据。
那么如果有这样一个组件,既可以帮你传递数据,又可以帮你接收数据该多好啊?
于是乎,一个叫事件总线的概念出现了,它就可以帮助实现你想要的这些功能。
了解事件总线之前,需要先看下两个重要的方法。
前置知识:
1. $emit(event, data)方法
event: 触发的事件类型
data: 触发这个事件时传递的参数
2. $on(event, callback(data))方法
event: 绑定的事件类型
callback: 绑定的这个事件所对应的回调函数,其默认的第一个参数data是使用$emit触发这个事件时所传递的参数
在了解了这两个方法后,再来看下面的这张图:
如果还是不太明白,那就转换成代码在分析一下:
首先,定义一个eventbus:
// eventbus.js
// 事件总线: 只需要导出一个vue实例即可
import vue from 'vue'
export default new vue()
然后,在a组件中导入eventbus, 并触发自定义的atob事件
// a.vue// 导入eventbus
import eventbus from "./eventbus"
// 触发事件并传递参数
eventbus.$emit("atob", "data_a")
最后,在b组件中导入eventbus,并监听自定义的atob事件
// b.vue// 导入eventbus
import eventbus from "./eventbus"
// 触发事件并传递参数
eventbus.$on("atob", data =>{
console.log(data); // "data_a"
})
总结:
要想了解非父子传值必先了解父子间的传值非父子传值的核心在于通过事件总线作为一个中介然后通过在“传递值”的组件中触发事件总线的某个自定义的事件来传递一个值(如果是多个值,可以传递一个对象) 最后在“接收值”的组件中来监听事件总线中你触发的那个自定义事件来接收数据
以上就是本次介绍的全部相关知识点,感谢大家的学习和对的支持。
asyncio原生支持异步TCP/UDP:TCP客户端用awaitasyncio.open_connection获取(reader,writer),服务端用asyncio.start_server配asynchandler;UDP必须继承DatagramProtocol实现回调,无await版rec...
本文深入剖析Python递归函数中nonlocal变量更新失效的典型陷阱:当res+=recurse(i+1)(右值直接参与赋值)时,res仅在递归回溯阶段被反复覆盖为初始值加当前元素,导致最终结果错误;而显式绑定返回值再累加(如assigned=recurse(i+1);res+=assigned...
grpcio-reflection无异步支持因其servicer继承同步基类、无AsyncServicer实现且依赖同步I/O;异步调用反射需用grpc.aio.Channel+stub.ServerReflectionInfo并await,自研异步服务端须重写方法并缓存FileDescriptor...
nonzero返回元组而非一维索引,用于精确定位非零元素坐标;需用arr[arr!=0]做布尔过滤,ravel_multi_index转线性索引,plt.scatter(*nonzero(arr))绘散点图。 nonzero返回的是元组,别直接当一维索引用 numpy.nonzero返回的不是扁平化...
本文详解如何在textual框架中正确访问input小部件的实时输入值,避免因生命周期误解、方法签名错误或状态同步不当导致的空值、对象引用异常等问题,并提供可运行的完整示例。 本文详解如何在textual框架中正确访问input小部件的实时输入值,避免因生命周期误解、方法签名错误或状态同步不当导致的...
Pyecharts的Grid和Page仅为布局容器,不支持图表间事件联动;Grid用于同页多图对齐与坐标共享,Page用于垂直分页展示,真联动需原生JS或Streamlit等框架。 Pyecharts的Grid和Page都不能真正实现“联动”(比如点击柱状图某柱子,折线图高亮对应时间点),它们只是布...
绝大多数Laravel和DRF项目应将API版本号放在URL路径中(如/api/v1/users),因其调试直观、缓存友好、日志可读、Nginx/CDN路由可控;请求头方式虽更符合REST语义,但调试麻烦且代理可能丢弃自定义头。 API版本号该放在URL路径里还是请求头中 DRF默认支持多种版本控制...
不能。Flask-SocketIO是兼容WebSocket与长轮询的抽象层,自动降级但不暴露底层WebSocket对象;需严格协议控制时应选websockets库。 Flask-SocketIO能不能直接替代原生WebSocket? 不能。Flask-SocketIO不是WebSocket协议的直通...