EventBus

vue兄弟组件的传值eventbus

ぐ巨炮叔叔 提交于 2019-12-14 17:17:02
注:当在a.vue组件上触发点击事件时,就会触发bus上监听的事件,而bus事件监听在b.vue里面,这个时候就会触发b.vue 上的事件监听,而通过回调函数,就可以拿到a.vue组件传过来的数据,从而实现兄弟组件通信。 ###~~bus.js import Vue from "vue" export default new Vue() parent.vue父组件 <template> <div id="app"> <avue></avue> <bvue></bvue> </div> </template> <script> import avue from "./avue.vue" import bvue from "./bvue.vue" export default { name: 'parentvue', components:{avue,bvue} } </script> ###~~a.vue组件 <template> <div @click="aload">叶落森1</div> </template> <script> import bus from "./bus.js" export default{ methods:{ aload(){ //通过emit触发事件,并传值 bus.$emit("bload","我叫叶落森"); } } } </script> ###~

vue组件之间的通信

陌路散爱 提交于 2019-12-13 13:02:48
vue组件间的通信有父--->子、子--->父、非父子之间的通信 虽然我们稍微复杂的项目都用vuex来管理了,但是还是想写一篇关于有父--->子、子--->父、非父子 之间通信的文章。下面通过代码来讲述 父--->子组件间的通信 父级页面: <template> <div id="app"> <Header :parentMsg='parentMsg' > </Header> </div> </template> import Header from './components/header' export default { name: 'App', data () { return { parentMsg: '你访问的是父级页面的数据', } }, components:{ Header, } } 子页面: <template> <div> <div >{{parentMsg}}</div> </div> </template> export default { name: 'Header', props:['parentMsg'], //接收父级页面传过来的数据 data(){ return { parentMsg:'' } } } 子--->父组件间的通信 父级页面: <template> <div id="app"> <Header :parentMsg=

EventBus事件总线分发库

谁说胖子不能爱 提交于 2019-12-09 17:13:21
本文围绕以下六个部分展开: 一、事件总线管理 二、EventBus 三、EventBus与BroadcastReceiver的区别 案例一 案例二:一处点击发送数据,另一处或多处注册点可以及时获取更新传输过来的数据 案例三:Activity和Service之间互相发布与接收事件 一、事件总线管理 将事件放入队列里,用于管理和分发。 (1)保证应用的各个部分之间高效的通信及数据、事件分发。 (2)模块间解耦:通过事件的分发,可以让各个模块间关联程序变小。 当在开发一些庞大的的项目时,模块比较多,这个时候为了避免耦合度和保证 APP 的效率,会用到 EventBus 等类似的事件总线处理模型。这样可以简化一些数据传输操作,保证APP的简洁,做到高内聚、低耦合。 二、EventBus 1. 概念 EventBus是一个发布/订阅的事件总线。它可以让两个组件相互通信,但是它们之间并不相互知晓。 EventBus模式,也被称为 Message Bus模式,或者 发布者/订阅者(publisher/subscriber)模式。 事件响应有更多的线程选择,EventBus 可以向不同的线程中发布事件。 EventBus 支持 Sticky Event。 2. 有3个主要的元素: (1)Event:事件。 Event可以是任意类型的对象。 (2)Subscriber:事件订阅者,接收特定的事件。

vue中eventBus的使用

时光总嘲笑我的痴心妄想 提交于 2019-12-09 16:06:08
使用场景: 1、兄弟组件的通信,父子组件的通信 2、不同路由的通信 针对兄弟组件的通信,父子组件的通信 新建bus.js文件 import Vue from 'vue' var bus = new Vue() export default bus 在需要通信的组件中引入bus.js,一个组件触发事件,另一个组件监听事件 import Bus from "@/assets/js/bus.js" 子组件 testClick(){ alert("test") Bus.$emit("message","hiinew") }, 父组件 mounted(){ var _this = this Bus.$on("message",function(res){ _this.message = res }) } 针对不同路由的通信 需要在A组件销毁前触发事件 beforeDestroy () { Bus.$emit("message","hii") }, 在B组件created中接收事件 created () { var _this = this Bus.$on("message",function(res){ console.log(res+"123") _this.message = res }) }, 并且在B组件的销毁前解除监听 避免重复监听 beforeDestroy () { Bus.

Android碎碎念 -- EventBus3.0

只谈情不闲聊 提交于 2019-12-09 13:55:36
一、概述 EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。 1、下载EventBus的类库 源码:https://github.com/greenrobot/EventBus 2、基本使用 (1).Define events: public class MessageEvent { /* Additional fields if needed */ } (2).Prepare subscribers Register your subscriber (in your onCreate or in a constructor): eventBus.register(this); (3).Declare your subscribing method: @Subscribe public void onEvent(AnyEventType event) {/* Do something */}; (4).Post events: eventBus.post(event); 3、 checking Gradle: compile 'org.greenrobot:eventbus:3.0

EventBus

删除回忆录丶 提交于 2019-12-08 14:46:24
一、AbpLocalEventBusOptions, AbpDistributedEventBusOptions IEventHandler是一个空方法,分为ILocalEventHandler<TEvent>,IDistributedEventHandler<TEvent>方法, 具有HandleEventAsync( EventType eventData))方法 保存着IEventHandler的实现类型,它通过OnRegistered遍历IServiceCollection服务的委托方法,将 ILocalEventHandler< EventType > 方法保存在AbpLocalEventBusOptions下列表 将 IDistributedEventHandler< EventType > 保存在 AbpDistributedEventBusOptions下列表里 而ActionEventHandle<T> 是本地ILocalEventHandle的方法,它是 TransientDependency方法,它执行是委托方法。 二、I EventBus , 它执行的是发布事件,订阅和取消订阅,EventBus是抽象方法,它的实现有NullDistributedEventBus, 这个不注入容器的 它的实现方法将Option的IEventHandler列表方法,将

Android 网速监测

假装没事ソ 提交于 2019-12-05 19:07:02
我们都知道在游戏中会有实时网速监测。延迟XXms 这种 今天在Android 端也实现一下此功能,首先我们要知道网络延迟的几个等级 如何定义网络延迟程度: (一般网络延迟PING值越低速度越快,但是速度与延迟没有必然联系) 1~30ms:极快,几乎察觉不出有延迟,玩任何游戏速度都特别顺畅 31~50ms:良好,可以正常游戏,没有明显的延迟情况 51~100ms:普通,对抗类游戏在一定水平以上能感觉出延迟,偶尔感觉到停顿 100ms~200ms:较差,无法正常游玩对抗类游戏,有明显卡顿,偶尔出现丢包和掉线现象 200ms~500ms:很差,访问网页有明显的延迟和卡顿,经常出现丢包或无法访问 >500ms:极差,难以接受的延迟和丢包,甚至无法访问网页 >1000ms:基本无法访问 计算方法:1秒=1000毫秒(例:30ms为0.03秒) 我们在程序当中用以下方法实现ping 命令 String delay = new String(); Process p = null; String url= "www.baidu.com"; //指向服务端地址 try { p = Runtime.getRuntime().exec("ping -c 4 " +url);//PING 该地址 4次 BufferedReader buf = new BufferedReader(new

Java guava中的异步事件处理方案 eventBus

我们两清 提交于 2019-12-05 12:34:36
一、简述 EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现,在应用中可以处理一些异步任务。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 EventBus实际上是一个消息队列,Event Source发送一个消息到EventBus,然后再由EventBus将消息推送到所监听的Listener。 二、EventBus基本用法 1. 创建Listener 我们可以通过@Subscribe注解将任意的类的方法变为一个Listener。 public class SimpleListener { private final static Logger LOGGER = LoggerFactory.getLogger(SimpleListener.class); /** * 一个简单的Listener方法 * @param event Guava规定此处只能有一个参数 */ @Subscribe public void doAction(final String event){ if (LOGGER.isInfoEnabled()){ LOGGER.info("Received event [{}] and will take a action", event); } } }

高性能最终一致性框架Ray之基本概念原理

前提是你 提交于 2019-12-04 21:02:22
高性能最终一致性框架Ray之基本概念原理 一、Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案。 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错。 共享内存受限于单节点的服务器资源限制。 Actor模型的优点: 线程之间以消息进行通信,消息按顺序单线程处理,不存在状态竞争。 以消息方式通信,可以方便的组建集群。 把State和Behavior绑定,能更好的控制状态。 名词解释: Mailbox:可以理解为先入先出队列,负责接收和缓存送达的消息。 State:状态信息,比如用户的账户余额信息。 Behavior:负责按顺序处理Mailbox中的消息,比如扣款消息、到账消息,查询余额消息等。 二、Orleans介绍 Orleans是.Net基金会维护的一个Actor跨平台开源框架,独创Virtual Actor概念,支持分布式集群。 项目地址: http://dotnet.github.io/orleans/ 有以下优点: 以对象方式访问Actor,符合面向对象的使用习惯。 提出Virtual Actor概念,可以通过ID访问细粒度的Actor,能承载数千万的Actor对象。 支持Stateful,能替代缓存层来对内存状态进行更精确的控制,减少数据库的压力。 高性能,单个Actor能支持10万+的QPS。

微服务中的异步消息通讯

本秂侑毒 提交于 2019-12-04 19:50:30
前言 在上一篇文章中,我们说到了异步消息通讯,下面这篇文章呢,大部分内容是翻译来自于 这篇微软的文章 ,所以其内容还是具有一定的理论指导意义的。 当我们跨多个微服务进行内部通讯的时候,异步消息和事件驱动至关重要。我们可能需要在不同的边界上下文中进行域模型的更新。 我们举个例子,比如 eShop 这个项目中,Ording 服务在下单的时候要和 Catelog 服务进行通讯进行库存的扣减操作,这个时候我们就需要一种方式来做这个事情,并且能够在发生故障的时候也能正常工作,也就说需要进行基于异步消息和最终一致性的通讯方式。 当使用基于消息的通讯方式的时候,进程中是采用的异步的方式通讯的。客户端向某个服务发送消息,如果这个消息需要回复,那么另一个服务会向客户端发送一个不同的消息,并且客户端会认为该消息不会立即被接收到,并且不存在响应,这就是一种基于消息的通讯方式。 消息由标题(name 或者 title)和内容(Body)共同构成。消息通常会通过一些异步协议进行发送(如AMQP,kafka协议)。 异步消息通讯有两种:一种是单接收者(端到端),另外一种是多接收者(广播)。 如果有同学对消息队列比较了解的话,这就是消息队列的两种典型使用方式。 基于消息的单接收者 单接收者也就是说是点到点的通讯,将消息使用队列等方式从一点发送的另外一点,并且该消息仅会被处理(消费)一次。这中间一个特殊情况就是