小程序页面之间传参数数据的方法总结

江河/ 2023年07月31日/ 小程序/ 浏览 656

在小程序开发中,经常有跨页面传递数据的需求。一般的其实读写公共数据或者事件触发两类方法,不过在微信小程序中还有一种方法就是直接操作页面栈。下面逐一介绍一下各种方法。


一、读写公共数据


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'
})


使用页面栈,获取到指定的页面后,就可以直接调用页面的方法。


发表评论

暂无评论,抢个沙发...

客服 工单