【20190427】小程序页面传值、取值的几种方法,以及踩到的坑——页面栈的使用(反复横跳接传值解决思路二)

父子页面反复传值解决方案

因为我的需求是不断通过跳转到通讯录页面选择成员,我进行了几次失败的尝试。

url传值

这个方法虽然简单,但是我每次传的内容不仅要新加的,还要带上原来的数据,否则,用于已选择的内容就会因为作用域丢失,这就导致了跳转的时候,url过长报错。

localstorage

这时候我把用户选择的成员列表用缓存存储,虽然避免了url过长的问题,但是每次跳转页面都要读一次缓存,性能不够好。
同时我的页面栈也会溢出,因为我用的是navigate直接跳转,在这个过程中回退所有页面都还在,但每次跳转我们销毁上一个页面,又会出现一个短时间的白屏。

我需要做到以下两点:

  1. 页面反复跳转,页面栈不能溢出
  2. 每一次传值,要保留第一次数据。
页面栈

微信小程序提供了getCurrentPages方法获得当前的页面栈,我们做的就是修改指针,让指针指向上一个页面。
直接操作上一个页面的数据,那么其实我们就是不停的在打开和关闭通讯录页面,而表单页面没有重新载入过。

基本代码实现

	var pages = getCurrentPages();
	//获取页面栈
    var Page = pages[pages.length - 1];//当前页
    if(pages.length > 1){ //说明有上一页存在
        var prePage = pages[pages.length - 2];
        //上一个页面对
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值