跨页面通信在微信小程序中非常常见,可以通过全局变量、事件发布订阅、页面栈等方式实现。本文将详细介绍这些方法,并给出代码案例进行说明。
一、全局变量
全局变量是最简单的跨页面通信方式,可以在app.js中定义一个全局变量,在不同页面中通过getApp()方法获取该变量,实现数据的传递。下面是一个示例:
- 在app.js中定义全局变量:
App({
globalData: {
userInfo: null
}
})
- 在页面A中设置全局变量的值:
// pageA.js
const app = getApp()
Page({
onLoad() {
app.globalData.userInfo = { name: '小明', age: 18 }
}
})
- 在页面B中获取全局变量的值:
// pageB.js
const app = getApp()
Page({
onLoad() {
console.log(app.globalData.userInfo) // 输出 { name: '小明', age: 18 }
}
})
通过全局变量的方式,页面A可以将数据存储到全局变量中,页面B再从全局变量中获取数据。
二、事件发布订阅
事件发布订阅是一种常见的跨页面通信方法,可以通过事件的发布和订阅来实现数据的传递。下面是一个示例: