getApp()
)实现方式:
// app.js中定义全局数据 App({ globalData: { userToken: 'abc123' } }) // 任意页面读取/修改 const app = getApp() console.log(app.globalData.userToken) // 输出abc123 app.globalData.userToken = 'new_token'
wx.setStorage
)实现方式:
// 页面A存储 wx.setStorageSync('config', { theme: 'dark' }) // 页面B读取 const config = wx.getStorageSync('config')
EventChannel
)实现方式:
// 页面A跳转时建立通道 wx.navigateTo({ url: 'pageB', success(res) { res.eventChannel.emit('transferData', { orderId: 789 }) } }) // 页面B接收 const eventChannel = this.getOpenerEventChannel() eventChannel.on('transferData', data => { console.log(data.orderId) // 输出789 })
实现方式(以Redux为例):
// 创建全局store const store = { state: { cartItems: [] }, updateCart: function(items) { this.state.cartItems = items } } // 组件中调用 Page({ onLoad() { getApp().store.updateCart([...]) } })
实现方式:
// URL传参 wx.navigateTo({ url: '/pageB?id=1&name=test' }) // 目标页接收 Page({ onLoad(options) { console.log(options.id) // 输出1 } })