在小程序开发中,经常有跨页面传递数据的需求。一般的其实读写公共数据或者事件触发两类方法,不过在微信小程序中还有一种方法就是直接操作页面栈。下面逐一介绍一下各种方法。
一、读写公共数据
1. 全局变量 globalData
// 写入数据
getApp().globalData.data1 = 'Hello World!';
// 读取数据
console.log(getApp().globalData.data1);
2. 本地缓存 Storage
// 同步写入数据
wx.setStorageSync('key', 'value');
// 异步写入数据
wx.setStorage({
key: "key",
data: "value"
});
// 同步读取数据
var value = wx.getStorageSync('key');
// 异步读取数据
wx.getStorage({
key: 'key',
success(res) {
console.log(res.data)
}
})
二、事件触发
涉及到的 API
EventChannel.emit(string eventName, any args)
EventChannel.off(string eventName, function fn)
EventChannel.on(string eventName, function fn)
EventChannel.once(string eventName, function fn)
获取 EventChannel 的方法,一种是 Page 获取,如下:
let eventChannel = this.getOpenerEventChannel();
一种在页面跳转时获取,如下:
wx.navigateTo({
url: 'path',
events: {
// ……
},
success: res => {
let eventChannel = res.eventChannel;
}
})
三、页面栈
let pages = getCurrentPages();
let curPage = pages[pages.length - 1];
let prePage = pages[pages.length - 2];
prePage.setData({
key: 'value'
})
使用页面栈,获取到指定的页面后,就可以直接调用页面的方法。
-
routeDone with a webviewId x that is not the current pagerouteDone with a webviewId x that is not the current page
-
WordPress是干什么的WordPress是一款开源的CMS,也就是常说的内容管理系统,它基于PHP开发,并使用MySQL作为数据库管理系统。
-
如何通过链接进入小程序如何通过链接进入小程序
-
小程序图片怎么实现类似安卓点9拉伸小程序图片怎么实现类似安卓点9拉伸
-
base64图片在微信开发者工具中显示,在手机上不行base64图片在微信开发者工具中显示,在手机上不行
-
微信小程序黑名单功能微信小程序黑名单功能
暂无评论,抢个沙发...