1. 在微信小程序开发过程中,A页面跳转到B页面,并且把A页面的数据传递到B页面中使用
(1)使用本地缓存
// A页面中通过setStorageSync在本地缓存数据
wx.setStorageSync('key','value')
// B页面中通过getStorageSync读取键值来获取
wx.getStorageSync('key')
(2)通过页面路由
在使用url进行参数传递时候,传递数据有字节限制,如果要传递对象,需要先把对象通过JSON.stringify转换成字符串,接收或再通过JSON.parse转换成对象
// 在A页面传递数据到B页面中,多个参数使用 & 符号拼接
// page A
wx.navigateTo({
url:'test?id=1&pid=2'
})
或
wx.redirectTo({
url:'test?id=1'
})
// wx.navigateTo和wx.redirectTo不能跳转tabbar页面
// wx.switchTab可以跳转tabbar页面,但是不能传递参数
// wx.reLaunch关闭所有页面,打开到应用内的某个页面,可以跳转到tabbar页面
wx.reLaunch({
url:'test?id=1'
})
// page B
page({
onLoad:function(options){
console.log(options)
}
})
2. 往组件模板中传递数据,可以直接在模板的data中传递数据
<template is="模板名" data="数据对象" />
3. 通过页面栈获取到上一页面对数据进行修改或定义
A页面跳转到B页面
// page A
page({
data:{
info:'1111'
}
})
// page B
page({
var pages=getCurrentPages(); //获取当前页面栈,以数组形式顺序给出,第一个是首页,最后一个为当前页面
var prevPage=pages[pages.length-2]; //即A页面
prevPage.setData({
info:'2222', //修改
name:'张三' //添加
})
})