999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

微信小程序頁面路由原理

2019-12-10 09:48:22姚靜
電腦知識與技術 2019年28期

姚靜

摘要:小程序的開發方興未艾,本文以圖解的形式詳細剖析了小程序開發中的頁面棧及頁面路由原理,對于該原理的深入理解有助于開發者更好地理解小程序的開發框架,更好地開發出功能強大的小程序。

關鍵詞:小程序;Mini Program;頁面棧;路由

中圖分類號:TP3? ? ? 文獻標識碼:A

文章編號:1009-3044(2019)28-0054-02

微信小程序(以下簡稱小程序)也叫Mini Program,是騰訊公司在2017年推出的一種不需要下載安裝即可使用的輕應用,小程序基于用戶量超10億的微信平臺,以其無須下載和卸載、隨時可用、無處不在等簡潔特點,一經推出便引起轟動,短短一兩年時間便呈現出爆發增長的態勢,越來越多的用戶接受并使用小程序,越來越多的開發者加入小程序的開發之中。

小程序的開發基于Web技術,與傳統的Web開發(如網頁)有很多相似之處,因此有Web開發經驗的開發者可以很容易地掌握小程序開發技術。但小程序作為輕應用的本質,決定了其短小精干、功能受限等有別于傳統Web開發的特點,這些技術特點又導致了在跨進小程序開發的門檻時,傳統Web開發者的很多技術經驗往往成為理解障礙而非助力,這其中最為典型的一個核心概念便是小程序的頁面路由。

眾所周知,傳統Web開發基于HTML+CSS編寫的Web頁面,典型呈現就是我們熟知的瀏覽器,在瀏覽器中我們點擊頁面上的超鏈接可以跳轉到另一個頁面,也可以點擊回退回到上一個頁面,循環往復,無窮無盡,換句話講,可以有無限個頁面;而在小程序中,由于其Mini的特點,小程序多能占用的資源是嚴格受限的,每個小程序包括圖片、樣式、頁面、代碼等最大不能超過2MB(如果加上擴展包最大為4MB),這決定了小程序的頁面個數不是不限的,而是嚴格受限的,且頁面之間的跳轉也與傳統Web頁面有很大差異,這樣一套機制在小程序中稱為頁面棧。

1 頁面棧

軟件開發者均知道,棧是一種先進后出的數據結構,在小程序體系中,頁面棧便是一種采用棧結構維護頁面與頁面之間關系的框架,該棧的容量最大為5,這意味著在小程序中,可以同時存在的頁面最多為5個。

小程序中頁面之間的跳轉被稱為路由,頁面路由有嚴格的規定和限制,所有頁面的路由均由頁面棧框架進行管理,當發生路由切換的時候,頁面棧的表現如下:

上表中的打開新頁面、頁面重定向、頁面返回、Tab切換、重啟動,在小程序中分別對應wx.navigateTo、wx.redirectTo、wx.navigateBack、wx.switchTab、wx.reLaunch等API,這些API是在小程序開發中最常用的功能,它們背后的邏輯以及事件觸發均與頁面棧緊密相關,只有對這些細節了如指掌,才能真正駕馭小程序的開發,下面便詳細剖析上述幾種頁面流轉與頁面棧變化的關系,為簡潔起見略去頁面流轉過程中的事件觸發,讀者可在熟悉頁面棧之后閱讀官方文檔進一步了解。

2 頁面路由原理

假設我們有一個小程序,其首頁頁面為A,另外還有B、C、D、E、F、G等六個頁面。

打開小程序:用戶打開一個小程序時,小程序的首頁頁面入棧,頁面棧大小變為1;

1)wx.navigateTo:該API通常在響應用戶點擊界面時打開一個新頁面,該新頁面入棧,頁面棧大小加1;當反復調用該API后頁面棧大小不斷增大,當頁面棧大小為5時,調用該API將無效,此時的呈現效果即為用戶點擊界面卻無法正常打開對應的新頁面,這是很多剛開始小程序開發的開發者經常遇到的一個問題,只有詳細了解了頁面棧及頁面路由的原理才可以解決這個問題;以下為wx.navigateTo的兩種常見用例:

用例1:在首頁A打開頁面B,在頁面B打開頁面C,在頁面C打開頁面D,在頁面D打開頁面E,在頁面E打開頁面F:

該用例與用例1不同之處在于,在頁面D重復打開了頁面B,此時雖然頁面B在頁面棧中,但仍會打開一個新頁面B并入棧,頁面棧大小依然加一,此時頁面棧中有2個頁面B,這2個頁面B是彼此獨立的(也即可以擁有不同的數據及呈現),這是很重要的一點,也是很多開發者容易困惑之處。

2)wx.redirectTo:該API通常在響應用戶點擊界面時重定向到一個新頁面,原頁面出棧,該新頁面入棧,頁面棧大小不變,以上面的用例1為例,在頁面E重定向到頁面F:

3)wx.navigateBack:該API與傳統Web瀏覽器中的頁面回退很相似,其 delta參數決定當前頁面棧彈出幾個頁面(即頁面棧大小減小幾),彈出之后的棧頂頁面作為當前呈現頁面,以下為圖例:

相對于上述三個API,wx.switchTab和wx.reLaunch的邏輯則相對簡單,限于篇幅不再贅述。

3 結語

微信小程序依托于擁有龐大用戶群的微信平臺,以其簡潔的特點和強大的功能,正在成為移動互聯網的下一個風口浪尖,而透徹理解小程序頁面路由原理,對于小程序開發者是必不可少的一課,本文通過圖解用例,詳細剖析了小程的頁面棧及路由細節,讀者在掌握該原理細節的基礎之上,可以大大提高開發效率,為小程序的生態發展添磚加瓦。

參考文獻:

[1] 微信官方文檔[EB/OL]. https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html

[2] 熊普江,謝宇華.小程序,巧應用[M].北京:機械工業出版社,2017.

[3] 雷磊.微信小程序開發入門與實踐[M].北京:清華大學出版社,2017.

【通聯編輯:張薇】

主站蜘蛛池模板: 色婷婷亚洲综合五月| 福利视频一区| 一级不卡毛片| 日本成人不卡视频| 久久夜夜视频| 欧美日韩免费| 成人年鲁鲁在线观看视频| 国产亚洲精久久久久久无码AV| 五月激情综合网| 国产精品视屏| 色综合热无码热国产| 色精品视频| 永久免费精品视频| 无码网站免费观看| 在线观看视频99| 亚洲国产欧美国产综合久久 | A级全黄试看30分钟小视频| 欧美成人手机在线视频| 亚洲日本在线免费观看| 亚洲第一成年网| 97青草最新免费精品视频| 久久精品aⅴ无码中文字幕| 中国精品久久| 久久香蕉国产线| a欧美在线| 2021国产精品自产拍在线| 性色生活片在线观看| 午夜啪啪网| 狠狠色香婷婷久久亚洲精品| 国产精品久久久久久搜索| 中文国产成人久久精品小说| 日韩AV无码免费一二三区| 91久久偷偷做嫩草影院免费看| 亚洲国产无码有码| 呦系列视频一区二区三区| 97se亚洲综合不卡 | 国产尤物在线播放| 午夜久久影院| 欧美亚洲一区二区三区导航| 日本不卡在线播放| 亚洲第一福利视频导航| 黄色国产在线| 性视频一区| 国产99视频在线| 99re这里只有国产中文精品国产精品| a网站在线观看| 久久婷婷国产综合尤物精品| 久久99蜜桃精品久久久久小说| 九色在线观看视频| www.91在线播放| 国产精品成| 欧美成人午夜视频| 亚洲国产日韩视频观看| 91亚洲影院| 国产精品免费p区| 欧洲欧美人成免费全部视频| 97人人做人人爽香蕉精品| 婷婷中文在线| 国产精品3p视频| 这里只有精品在线| 全部免费特黄特色大片视频| 伊人久久婷婷五月综合97色| 国产成人综合日韩精品无码首页| 国产成人精彩在线视频50| 欧美一区二区三区欧美日韩亚洲| 国产成人成人一区二区| 欧美精品亚洲精品日韩专区| 国产成人精品优优av| 欧美在线精品怡红院| 成人无码区免费视频网站蜜臀| 国产在线视频二区| h网站在线播放| 亚洲欧美日韩精品专区| 在线日韩日本国产亚洲| 67194在线午夜亚洲| 日韩高清成人| 天堂av综合网| 女人18一级毛片免费观看| 九九热精品在线视频| 亚洲男人在线| 午夜无码一区二区三区在线app| 九九热精品免费视频|