一般來說,在uni-app中,使用uni.$emit、$uni.on、$uni.once、$uni.off進行頁面通訊。
頁面通訊
現在設置一下場景。從page1跳轉到page2;從page2點擊確認,返回上一個頁面,並傳遞參數。
頁面1接收參數,代碼如下:
1 <template> 2 <view style="background-color: #FFFFFF;height: 100vh;"> 3 <navigator class="text-blue" url="page2">到頁面2</navigator> 4 </view> 5 </template> 6 7 <script> 8 export default { 9 data() { 10 return { 11 } 12 }, 13 onShow: function() { 14 uni.$once('query' ,(query)=>{ 15 console.log("返回的參數=>" , query); 16 }); 17 }, 18 methods: { 19 20 } 21 } 22 </script> 23 24 <style> 25 26 </style>
頁面2傳遞參數,代碼如下:
1 <template> 2 <view> 3 <button @click="reBack">返回</button> 4 </view> 5 </template> 6 7 <script> 8 export default { 9 data() { 10 return { 11 12 } 13 }, 14 methods: { 15 // 返回上一個頁面,並傳遞參數 16 reBack : function(){ 17 uni.$emit('query' , {a : 1}); 18 uni.navigateBack(); 19 } 20 } 21 } 22 </script> 23 24 <style> 25 26 </style>
點擊“返回”按鈕,頁面1,返回的值為: 返回的參數=> {a: 1} 。
參考網址
- 如何使用uni.$emit()和uni.$on() 進行頁面間通訊:https://ask.dcloud.net.cn/article/36010
- 頁面通訊:https://uniapp.dcloud.io/api/window/communication?id=emit