【微信小程序】关于getCurrentPages()的使用
首先,要對(duì)小程序的頁(yè)面路由有所了解,在小程序中所有頁(yè)面的路由全部由框架進(jìn)行管理。框架以棧的形式維護(hù)了當(dāng)前的所有頁(yè)面。 當(dāng)發(fā)生路由切換的時(shí)候,頁(yè)面棧的表現(xiàn)如下:
| 初始化 | 新頁(yè)面入棧 |
| 打開新頁(yè)面 | 新頁(yè)面入棧 |
| 頁(yè)面重定向 | 當(dāng)前頁(yè)面出棧,新頁(yè)面入棧 |
| 頁(yè)面返回 | 頁(yè)面不斷出棧,直到目標(biāo)返回頁(yè) |
| Tab 切換 | 頁(yè)面全部出棧,只留下新的 Tab 頁(yè)面 |
| 重加載 | 頁(yè)面全部出棧,只留下新的頁(yè)面 |
getCurrentPages()
getCurrentPages() 函數(shù)用于獲取當(dāng)前頁(yè)面棧的實(shí)例,以數(shù)組形式按棧的順序給出,第一個(gè)元素為首頁(yè),最后一個(gè)元素為當(dāng)前頁(yè)面。 注意:
- 不要嘗試修改頁(yè)面棧,會(huì)導(dǎo)致路由以及頁(yè)面狀態(tài)錯(cuò)誤。
- 不要在 App.onLaunch 的時(shí)候調(diào)用 getCurrentPages(),此時(shí)page 還沒(méi)有生成。
熟悉頁(yè)面棧后才能更好的使用getCurrentPages(),下面將列舉幾種常用的使用場(chǎng)景:
1、利用頁(yè)面棧的長(zhǎng)度
例如:進(jìn)入小程序非默認(rèn)首頁(yè)時(shí),需要提供返回首頁(yè)的按鈕或者執(zhí)行其它事件
2、跨頁(yè)面賦值
let pages = getCurrentPages();//當(dāng)前頁(yè)面棧let prevPage = pages[pages.length - 2];//上一頁(yè)面prevPage.setData({//直接給上移頁(yè)面賦值});3、頁(yè)面跳轉(zhuǎn)后自動(dòng)刷新
//舉例wx.switchTab({ url: '../index/index', success: function (e) { var page = getCurrentPages().pop(); //當(dāng)前頁(yè)面if (page == undefined || page == null) return; page.onLoad(); //或者其它操作} })4、獲取當(dāng)前頁(yè)面相關(guān)信息
let pages = getCurrentPages(); //當(dāng)前頁(yè)面棧//當(dāng)前頁(yè)面為頁(yè)面棧的最后一個(gè)元素let prevPage = pages[pages.length - 1];//當(dāng)前頁(yè)面or// pop() 方法用于刪除并返回?cái)?shù)組的最后一個(gè)元素let prevPage = pages.pop();//當(dāng)前頁(yè)面console.log( prevPage.route) //舉例:輸出為‘pages/index/index’以上就是我在微信小程序開發(fā)中經(jīng)常會(huì)遇到的getCurrentPages()使用場(chǎng)景
本篇博客旨在記錄了自己在小程序編程過(guò)程中碰到的一部分問(wèn)題,如有錯(cuò)誤的地方歡迎指正
總結(jié)
以上是生活随笔為你收集整理的【微信小程序】关于getCurrentPages()的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《未选之路》
- 下一篇: PID算法的简单了解