在移动端项目中难免会遇到需要从当前页面跳转至其他页面获取数据,然后再返回到原界面的情况,以下仅展示vue3模式下进行传参的方法
A页面在加载时添加一个监听事件,自定义名称为 getName
onLoad(() => {
uni.$on('getName', function(data) {
console.log('我在B页面选择了:', data);
})
})
B页面,当选中需要的元素时,发送监听事件
function chooseGoods() {
//举例
let goodsName = '商品A'
uni.navigateBack({
delta:1,
success: () => {
uni.$emit('getName',{
current:goodsName
})
}
})
}
此时页面跳转回原界面时就会获得从B页面返回的数据
当A页面的业务流程结束时,记得取消监听事件,避免一直监听造成性能浪费
function savaData(){
// ... 执行其他代码后
uni.$off('getName'); //关闭监听
}