微信小程序使用onfire.js(事件订阅和分发JavaScript 库)实现跨页面传参,对onfire的全面了解

开发微信小程序时,页面间数据传送多采用URL方式传参、添加全局变量,对于在本地缓存不大实用(感觉操作缓存,应该性能会有一定的损耗吧)。而从新打开的页面回到之前的界面,貌似只有放在本地缓存、添加全局变量两种方式。后来渐渐地又发现了可以使用页面栈进行传参,但这种方式有个弊端就是多页面访问同一页面时,可能出现一些问题。最近发现了一种简便方法,既可以传参,也能用于作页面回调函数。

有一个开源的事件分发插件onfire.js,Github开源地址,这个地址下并不能找到onfire.js文件,好像是需要怎么生成的吧,没玩过。后来在BootCDN找到了一个1.0.6版本的,是在线的js源代码,直接Ctr+C之后新建一个文本放进去,将文件名字改成js文件就能使用了,如果懒得干也可以使用我上传的onfire.js。这个插件貌似能做这些事儿:

                (1)简单的事件分发
                (2)在 React、Vue.js、Angular 中用于跨组件的轻量级实现
                (3)事件订阅和发布

 

API方法:

1、绑定(订阅)事件

     1.1、on(event_name, callback)订阅事件,可触发多次。当有名字为event_name的事件发生时,执行callback回调函数(可以传参)。返回值为事件对象eventObj,可以用于取消事件绑定。

     1.2、one(event_name, callback)绑定(订阅)事件,只能触发一次,触发之后失效。当有名字为event_name的事件发生时,执行callback回调函数(可以传参)。返回值为事件对象eventObj。

2、发布消息

      2.1、fire(event_name, data)触发事件。事件名为event_name,参数为data(可多个参数,用逗号隔开)的事件

      2.2、fireSync(event_name, data)触发同步。事件名为event_name,参数为data(可多个参数,用逗号隔开)的事件

3、取消订阅

     un(event_name/eventObj)取消事件绑定,可以取消一个绑定事件,也可取消全部。

     clear()清空所有事件

 

开始撸代码测试一波:

首先在pages/display/index页面注册事件,需要先导入onfire.js插件(用的1.0.6版本),这东西我放在utils下面了,在顶部导入吧:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值