uniapp switchtab 如何传参并接收参数
·
方法一:使用全局变量(推荐)
-
在跳转前存储数据:
// 在需要跳转的页面 const app = getApp(); app.globalData.tabParams = { key: 'value' // 自定义参数 }; uni.switchTab({ url: '/pages/targetTab/targetTab' }); -
在目标页面获取数据:
// 目标 tab 页面的 onShow 生命周期中 onShow() { const app = getApp(); const params = app.globalData.tabParams; if (params) { console.log('接收参数:', params); // 使用后清除参数(避免重复获取) delete app.globalData.tabParams; } }
方法二:使用本地存储(如 uni.setStorageSync)
-
在跳转前存储数据:
// 在需要跳转的页面 uni.setStorageSync('tabParams', { key: 'value' // 自定义参数 }); uni.switchTab({ url: '/pages/targetTab/targetTab' }); -
在目标页面获取数据:
// 目标 tab 页面的 onShow 生命周期中 onShow() { const params = uni.getStorageSync('tabParams'); if (params) { console.log('接收参数:', params); // 使用后清除存储(避免重复获取) uni.removeStorageSync('tabParams'); } }
方法三:通过 getApp() 全局共享数据
-
在
App.vue中定义全局变量:// App.vue export default { globalData: { tabParams: null } } -
跳转前设置参数:
// 原页面 getApp().globalData.tabParams = { key: 'value' }; uni.switchTab({ url: '/pages/targetTab/targetTab' }); -
目标页面获取参数:
// 目标页面 onShow onShow() { const params = getApp().globalData.tabParams; if (params) { console.log('参数:', params); getApp().globalData.tabParams = null; // 清除参数 } }
更多推荐



所有评论(0)