微信小程序6 - 页面之间传参及通知系统封装

1. 简单传参

wx.navigateTo({
url: '/pages/demo/index/index?id=1'
})
/pages/demo/index/index.js 中
onLoad(options){
var id = options.id; //获取通过url参数传递来的参数
}
2. 复杂传参
var json = JSON.stringify({a:1});
wx.navigateTo({
url: '/pages/demo/index/index?json='+ json
})
/pages/demo/index/index.js 中
onLoad(options){
var json = JSON.parse(options.json); //获取通过url参数传递来的参数 , 反解为json对象
}
3.
  1 写入storage
  2 写入app.globalData
  3 写入 其他自定义的全局容器内
以上123点都可以实现数据的传输.都是方式之一
4. 通知系统进行 数据传输
  对于大数据量的传输.这个过程可能会涉及到数据量,解析反解性能,或特殊字符等因素的干扰.
  以上1,2,3介绍的传输方式,只针对页面跳转前进有效,对于页面后退 如: 选择城市,选择日期等控件型页面,处理则要麻烦一些. 引入通知系统,则要方便许多
Notification 通知系统, 代码来自github做了一些扩展. 所谓的通知,也可叫 订阅-发布模式, 观察者模式 ....
即 有一个全局的通知模块,接收 订阅消息者,接收定向发布消息者.消息发送过来,会检查有没有订阅这个消息的人,有则主动推送消息给对方(具体为某个页面)
原始代码见:
github地址: https://github.com/icindy/WxNotificationCenter
我们封装并扩展了这个逻辑 , 编码
使用 self.addNotifyListener("订阅名称");       注册订阅者 -- 订阅页面调用
使用 self.onNotify(data消息传输的数据,"订阅名称")   处理消息   -- 订阅页面处理
使用  self.removeNotifyListener("订阅名称")      移除消息订阅 -- 订阅页面处理, 一般 不需要手工调用, 在 扩展Page参数一章中的处理,已经封装了消息的销毁逻辑
使用 self.postNotify("订阅名称",data消息传输的数据)  发布消息 -- 发布页面调用 (和订阅页面可以是同一个,一般都是最后打开的控件页面,比如 城市选择控件)
控件使用通知传递消息,可以见 pages/selectCity/index.js pages/datepicker/datepicker/index.js 引用页面, 主页->立即定制
封装后:
每个Page打开,都会注册一个 当前route.url 为名称的监听
Page Onload时,会首先判断有没有给自己的 消息,有则直接处理
Page OnUnload时,会销毁所有本页面的监听

转载于:https://www.cnblogs.com/jifsu/p/7851183.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

aardio教程_官方AARDIO课程已经开课了!学习的速来报道!

aardio视频培训课程(2018新版)因为课程都是制作视频 - 所以上课时间不受限制。1、本次课程共计50节视频课程,每周一课,培训时间为一年(1月15日以后报名按报名交费时间开始计算)。2、所有参加本次培训课程 ,可同时获取为期2年的技术支持服务(1…

php 开源建站工具 -- 资料收集

迅睿 CMS 开源建站程序 XunRuiCMShttps://www.xunruicms.com/

神马是代码简单的cmd模式,这就是!

小狼正在研究 “怎么查找连在一起的同色方块?”算法问题 ,突然感觉我是不是需要一种开发模式,不然感觉自己的代码好乱的。 可能是研究算法吧,导致小狼的思路特别清晰,加上也用了差不多1年的nodejs、seajs,对…

找出数组中两个只出现了一次的数

原题:给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数。编写函数实现。 对于一组数中只有一个数只出现一次,其他所有数都是成对出现的,我们采用了对全部数组元素进行异或,经过…

aspx隐藏前台控件div_c# – 代码隐藏页面无法“查看”aspx页面中声明的任何项目/控件...

这是我的Default.aspx页面(删除了不必要的细节):UsernamePassword这是代码隐藏(删除了不必要的细节):namespace webapp{public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){(webapp.MasterPages…

前端javascript知识(二)

documen.write和 innerHTML的区别 document.write只能重绘整个页面 innerHTML可以重绘页面的一部分 浏览器检测通过什么? (1) navigator.userAgent (2) 不同浏览器的特性,如addEventListener JavaScript有哪…

前端工具收集

1. Vue.js 介绍 | Vue.js Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项…

HDU 1754 I Hate It

线段树,单点更新,求区间最值 /* *********************************************** Author :Zhou Zhentao Email :774388357qq.com Created Time :2015/11/20 17:21:35 File Name :acm.cpp ***************************************…

请问运行py文件的时候怎么样可以不让那个黑框一闪...

wait input("wait")转载于:https://www.cnblogs.com/ftm-datablogs/p/7857831.html

c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...

推荐:从面试到入职到离职,我在B站工作的30天时光 爱了爱了,Alibaba顶级MySQL调优手册到手,加薪妥了 爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了 本文主要是想分析一下静态变量和成员变量的初始化顺序…

点击放大图片

<style> body{ text-align:center} div{ margin:50px auto}</style><script type"text/javascript"> function clik(t){ //获取所有的img标签 var imgs document.getElementsByTagName("img"); …

Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)

大熊猫猪侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 回到Xcode中,新建一个EndLayer类,继承于CCNode.因为我们得在其类方法中创建实例变量,所以我们得建立几个实例变量的属性.打开EndLayer.h文件,修改内…

转:(图文并茂)SQL Server 2005详细安装过程及配置

1、安装过程 注&#xff1a;在Windows7系统下安装SQL Server 2005时&#xff0c;可能会多次遇到提示兼容性问题的情况&#xff0c;此时不用理会&#xff0c;直接点击“运行程序”即可。首先解压下载到的SQL Server 2005压缩文件&#xff0c;如果还没有这个文件&#xff0c;可以…

设计模式范例代码

/* 1. 简单工厂模式 */ public class Operation {private double _numberA 0;private double _numberB 0;public double NumberA { get { return this._numberA; } set { this._numberA value; } }public double NumberB { get { return this._numberB; } set { this._numbe…

Node.js -- Router模块中有一个param方法

这段时间一直有在看Express框架的API&#xff0c;最近刚看到Router&#xff0c;以下是我认为需要注意的地方&#xff1a; Router模块中有一个param方法&#xff0c;刚开始看得有点模糊&#xff0c;官网大概是这么描述的&#xff1a; 1Map logic to route parameters.大概意思就…

如何测试数据库表空间不足场景

1、select * from DBA_DATA_FILES; 这个命令主要是了解数据库实例中各个模块数据库表空间的大小&#xff0c;是否支持自动扩展&#xff08;AUTOEXTENSIBLE&#xff09;,MAX扩展&#xff08;MAXBYTES&#xff09;,以及各个表空间的路径(\oracle\oradata\i2kdb\omscm.dbf) 查看AU…

2019年java安装步骤_win10的JAVA(jdk)2020年最新版安装教程心得

想学安卓反向解析&#xff0c;前期工作就把我折腾得够呛&#xff0c;java安装教程大多18年之前的&#xff0c;和现在的有一些不同&#xff0c;导致我按照网上的教程折腾了好几天都没安装成功&#xff0c;今天突然成功了&#xff0c;有点开心&#xff0c;迫不及待把自己的一些小…

蛋白质结构域的概念_Chapter1 蛋白质结构与功能2

本次回顾两大点&#xff1a;一、肽二、蛋白质结构————一、肽&#xff1a;概念&#xff1a;肽是由氨基酸通过肽键连接形成的线性分子。如上&#xff0c;该教学图涉及知识&#xff1a;1.肽键生成(最好能将反应式写出来)2.氨基酸残基residue3.肽的方向性N —> C4.肽命名5.肽…

css中的em 简单教程 -- 转

先附上原作的地址: https://www.w3cplus.com/css/px-to-em 习惯性的复制一遍~~~~ -------------------------------我是分界线----------------------------------- 什么是弹性布局&#xff1f; 用户的文字大小与弹性布局 用户的浏览器默认渲染的文字大小是“16px”&#xff0c…

信息安全系统设计基础第十一周 20135218 姬梦馨

第8章 异常控制流 控制流&#xff1a;控制转移序列。 控制转移&#xff1a;从一条指令到下一条指令。例&#xff1a;从k到k1的过渡称为控制转移。 异常控制流&#xff1a;现代操作系统通过使控制流发生突变来对系统状态做出反应&#xff0c;这些突变称为异常控制流。 平滑&…