1. 路径传参
A页面传B页面
//A页面
onLoad(options) {
let Adata = [
{id:0,name:"啦啦啦"},
{id:1,name:"哈哈哈"},
]
wx.navigateTo({
url: `/pages/testB/testB?data=${JSON.stringify(Adata)}`,
})
},
//B页面
onLoad(answer) {
console.log(JSON.parse(answer.data));
},
2. APP全局变量
//app.js
globalData: {
userInfo: null,
testData:[]
}
// testA.js
//获取app对象
const app = getApp();
Page({
data: {
testData:[
{id:0,name:"啦啦啦"},
{id:1,name:"这是A页面的值"},
]
},
onLoad(options) {
app.globalData.testData = this.data.testData;
wx.navigateTo({
url: "/pages/testB/testB"
})
},
})
// pages/testB/testB.js
//获取app对象
const app = getApp();
Page({
onLoad(answer) {
console.log(app.globalData.testData);
},
})
3.数据缓存传参
// testA.js
Page({
data: {
testData:[
{id:0,name:"啦啦啦"},
{id:1,name:"这是A页面的值"},
]
},
onLoad(options) {
wx.setStorageSync('testData', this.data.testData)
wx.navigateTo({
url: "/pages/testB/testB"
})
},
})
// testB.js
Page({
onLoad(answer) {
console.log(wx.getStorageSync('testData'));
},
})
注意:缓存中的数据,可全局使用,用 getStorageSync 获取。这个数据是一直存在在缓存里,除非清除数据缓存或者删除小程序
4.事件通讯
//testA.js
Page({
data: {
testData:[
{id:0,name:"啦啦啦"},
{id:1,name:"这是A页面的值"},
]
},
onLoad(options) {
wx.navigateTo({
url: "/pages/testB/testB",
success:res=>{
res.eventChannel.emit('testFunction1',{data:this.data.testData})
}
})
},
})
// testB.js
Page({
onLoad(answer) {
// 获取所有打开的EventChannel事件
const eventChannel = this.getOpenerEventChannel()
eventChannel.on('testFunction1', (data) => {
console.log(data)
})
},
})