微信小程序的数据传递

xiaoxiao2021-02-28  40

大家在编写微信小程序的时候会遇到传值问题,从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                       //传的参数

转载请注明原文地址: https://www.6miu.com/read-2400342.html

最新回复(0)