微信小程序的数据传递

大家在编写微信小程序的时候会遇到传值问题,从A页面跳转到B页面,同时B页面的数据请求需要A页面的数据时,该怎么办?

当然,最简单的办法是,将A页面的数据传递给app.js

app.globalData.data = data

然后在B页面请求

var data = app.globalData.data

这样虽然会请求到数据,当时当项目比较大时,会造成app.js文件的臃肿,存储过多的垃圾或者没必要的数据;

于是,本人又想到一个方法;

wx.setStorage({

    key:"data",

    data:data

})

在B页面请求缓存

wx.getStorage({

    key:"data",

        success:function(res){

                var data = res.data

})

这样会获取到A页面的数据,但是也会造成缓存中有许多的垃圾数据存在

今天发现一个新的办法,分享给大家,就是利用小程序的页面栈去实现数据的读取

var pages = wx.getCurrentPages()                          //获取到页面栈

最近发现报错,如果报错,换成:var pages = getCurrentPages()

var currentPage = pages[pages.length-1]              //获取到当前页面

var prevPage = pages[pages.length-2]                 //获取到上一个页面

var data = prevPage.data.data                             //取到数据

注:这种方法使用时,页面跳转要使用wx.navigateTo

同时,还可以将数据存储在url中,例如

wx.navgaterTo({

    url:"/pages/pageA/pageA?id=" + 数据

})

在pageA页面获取当前的页面网址,currentPage

var pages = getCurrentPages()

var currentPage = pages[pages.length-1] 

var url = currentPage.route                            //这是网址

var data = currentPage.options                       //传的参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

躺平,睡觉

苦逼三线前端,给点支持吧。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值