您好,登錄后才能下訂單哦!
這篇文章主要介紹“小程序頁面之間數據傳遞的方法有哪些”,在日常操作中,相信很多人在小程序頁面之間數據傳遞的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”小程序頁面之間數據傳遞的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
例如: 從A頁面->B頁面
使用頁面跳轉navigateBack
保留當前頁面,跳轉到應用內的某個頁面。但是不能跳到 tabbar 頁面。
參數: ?
隔開,=
相連
官方文檔
A頁面
wx.navigateTo({ url: 'test?id=1' })
B頁面
import { useDidShow, useRouter } from "@tarojs/taro" // 在 show生命周期中獲取 useDidShow(() => { const router: any = useRouter(); const data = router.params ?? {}; // 取router里面的params });
這種適用于數據量少的情況,也不建議復雜或者數據量打的時候使用該方法(個人建議而已-.-)
從A頁面->B頁面,適用于頁面跳轉數據量較多或者復雜的數據時
A頁面
Taro.navigateTo({ url: '/test', success: function(res) { // 通過 eventChannel 向被打開頁面傳送數據 res.eventChannel.emit('test-data', { data: 'test' }) // res.eventChannel.emit 第二個參數是要傳遞的數據 **第二個參數只能是key-value形式的對象** } })
B頁面,在show生命周期中獲取
useDidShow(() => { const current = pages[pages.length - 1]; const event = current.getOpenerEventChannel(); event.on('test-data', params => { console.log(params); // { data: 'test' } }); });
B頁面->A頁面,從B頁面返回A頁面時需要傳遞一些數據時。返回上一個頁面navigateBack
示例:
B頁面返回上一個頁面
// 獲取全部頁面 let pages= getCurrentPages() // 獲取前一個頁面的序號 let prevPage = pages[pages.length - 1] // 給前一個頁面設置數據 prevPage.setData({...}) wx.navigateBack({ delta: 1 // 返回一個頁面 // 返回的頁面數,如果 delta 大于現有頁面數,則返回到首頁 })
在A頁面
useDidShow(async () => { const data = Taro.getCurrentInstance().page.data ; // 頁面返回的參數 })
使用setStorageSync
和getStorageSync
(建議在以上三種都不滿足使用場景時使用該方法)
// set Taro.setStorageSync('test', data); // get Taro.getStorageSync('test')
到此,關于“小程序頁面之間數據傳遞的方法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。