面試官:說說微信小程序中路由跳轉(zhuǎn)的方式有哪些?區(qū)別?
一、是什么
微信小程序擁有web
網(wǎng)頁和Application
共同的特征,我們的頁面都不是孤立存在的,而是通過和其他頁面進(jìn)行交互,來共同完成系統(tǒng)的功能
在微信小程序中,每個頁面可以看成是一個 pageModel
,pageModel
全部以棧的形式進(jìn)行管理
二、有哪些
常見的微信小程序頁面跳轉(zhuǎn)方式有如下:
- wx.navigateTo(Object)
- wx.redirectTo(Object)
- wx.switchTab(Object)
- wx.navigateBack(Object)
- wx.reLaunch(Object)
wx.navigateTo(Object)
wx.navigateTo()
用于保留當(dāng)前頁面、跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面,使用 wx.navigateBack
可以返回到原頁面
對于頁面不是特別多的小程序,通常推薦使用 wx.navigateTo
進(jìn)行跳轉(zhuǎn), 以便返回原頁面,以提高加載速度。當(dāng)頁面特別多時,則不推薦使用
參數(shù)表如下所示:
流程圖如下:
wx.redirectTo(Object)
重定向,當(dāng)頁面過多時,被保留頁面會擠占微信分配給小程序的內(nèi)存,或是達(dá)到微信所限制的 10 層頁面棧的情況下,我們應(yīng)該考慮選擇 wx.redirectTo
wx.redirectTo()
用于關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面
這樣的跳轉(zhuǎn),可以避免跳轉(zhuǎn)前頁面占據(jù)運行內(nèi)存,但返回時頁面需要重新加載,增加了返回頁面的顯示時間
參數(shù)表如下所示:
流程圖如下所示:
wx.switchTab(Object)
跳轉(zhuǎn)到 tabBar
頁面,并關(guān)閉其他所有非 tabBar
頁面
參數(shù)表如下所示:
wx.navigateBack(Object)
wx.navigateBack()
用于關(guān)閉當(dāng)前頁面,并返回上一頁面或多級頁面,開發(fā)者可通過 getCurrentPages()
獲取當(dāng)前的頁面棧,決定需要返回幾層則設(shè)置對象的delta
屬性即可
參數(shù)表如下:
wx.reLaunch(Object)
關(guān)閉所有頁面,打開到應(yīng)用內(nèi)的某個頁面,返回的時候跳到首頁
流程圖如下所示:
參數(shù)表如下所示:
三、總結(jié)
關(guān)于上述五種跳轉(zhuǎn)方式,做下總結(jié):
- navigateTo 保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面,使用 wx.navigateBack 可以返回到原頁
- redirectTo 關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面
- switchTab 跳轉(zhuǎn)到 tabBar 頁面,同時關(guān)閉其他非 tabBar 頁面
- navigateBack 返回上一頁面
- reLanch 關(guān)閉所有頁面,打開到應(yīng)用內(nèi)的某個頁面
其中關(guān)于它們的頁面棧的關(guān)系如下:
-
avigateTo 新頁面入棧
-
redirectTo 當(dāng)前頁面出棧,新頁面入棧
-
navigateBack 頁面不斷出棧,直到目標(biāo)返回頁,新頁面入棧
-
switchTab 頁面全部出棧,只留下新的 Tab 頁面
-
reLanch 頁面全部出棧,只留下新的頁面文章來源:http://www.zghlxwxcb.cn/news/detail-803633.html
參考文獻(xiàn)
面出棧,新頁面入棧文章來源地址http://www.zghlxwxcb.cn/news/detail-803633.html
- navigateBack 頁面不斷出棧,直到目標(biāo)返回頁,新頁面入棧
- switchTab 頁面全部出棧,只留下新的 Tab 頁面
- reLanch 頁面全部出棧,只留下新的頁面
到了這里,關(guān)于【面試合集】說說微信小程序中路由跳轉(zhuǎn)的方式有哪些?區(qū)別?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!