订阅模式

emmm,首先用生活中的案例来通俗的说一下我理解的订阅者模式:

      比如说,我很喜欢唱歌,突然有一天心情很好,我在唱吧唱了一首歌,觉得唱得很好听,就在朋友圈发了这首歌的链接,然后A在朋友圈刷到了这首歌曲,也觉得我唱歌很好听,并且给我点赞,还疯狂找我要我唱的其他歌曲的链接,问我什么时候能发给他,我就说暂时还没有,等我唱了新的歌曲的时候,会通知你的,然后他就开心的去关注了我的唱吧号,但与此同时,我微信还有好多朋友也很喜欢听我唱的歌,然后他们就都关注了我的唱吧号,这样等我唱了新的歌曲的时候,就会依次通知他们。(Ps:该故事纯属虚构!)

      在上面的故事中,可以看出是一个典型的发布订阅模式了,我是属于发布者,A和我的其他好友们属于订阅者,订阅了我的唱吧号,我作为发布者,当我有新歌曲发布的时候,会通知我的好友们,使用唱吧软件发布后,他们关注了我就都能收到我发布的消息。

下面用少许代码+文字描述简单说下在aweb中的应用:

      在AWEB中,项目跑起来后,直接在index的页面代码中,加一个方法,让这个方法等于“app.dispatcher()”,这个是那些大神写好的,然后让这个方法在一开始就执行就可以了。代码大概是这样的:

      在开发者中心里面,大神规定了,“on”—>订阅,“trigger”—>发布,接下来要说的是给不同的页面设置值:

  • 我们要发布的内容是通过定时器设置其他页面的值,会传递类型.命名空间去区分不同的订阅者,类型就是订阅的类型,命名空间大概就是可以理解成订阅后面那个函数的名字,它的存在就是为了方便解绑事件,可以写在首页的load里面,代码类似下面这样:

  • 订阅就是接收发布传进来的值,然后在订阅的回调里进行其他操作,订阅的代码大概是这样的:


写在需要设置值得那个页面,可以写在load也可以写在pause,然后在另一个页面也可以写上这段代码,

这个写在页面一加载的时候,当前页面所有的input框都设置了一样的值,效果如下:

      最后就是解绑事件,写在页面的unload里:

这样就是解绑命名空间为test的那个订阅。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值