微信小程序的数据传递
大家在编写微信小程序的时候会遇到传值问题,从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 //传的参数
阅读更多- 微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()
- 微信小程序开发(2)------使用navigateTo数据传递
- 微信小程序入门——页面跳转、数据传递、数据接收
- 微信小程序--(5-1)点击列表item,把item上面显示的所有数据,传递到另外一个页面
- 微信小程序之二三级菜单(navigateTo传递数据的应用)
- 转载--微信小程序数据传递
- 微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()
- 微信小程序开发之数据存储 参数传递 数据缓存
- 微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()
- 微信小程序wx.request请求用POST后台得不到传递数据
- 微信小程序 页面跳转及数据传递详解
- 微信小程序使用navigateTo数据传递的实例
- 微信小程序--页面之间相互传递数据方法
- 从点击事件看微信小程序的数据传递
- 微信小程序View层向逻辑层传递数据——事件data-xxx
- 微信小程序给嵌套template模板传递数据的方式
- 微信小程序开发-页面数据传递(getStorage,setStorage)
- web-view h5页面传递参数给小程序,小程序接收h5网页传过来的数据——微信web-view高级用法10
- 微信小程序开发之数据存储 参数传递 数据缓存