小程序跳轉頁面有幾種方式?有什么不同?







在小程序中每個頁面可以看成是一個pageModel,pageModel全部以棧的形式進行管理(最多五層)

在說跳轉方式之前我們先來溫習一下棧和堆的區別


管理方式不同

棧是系統編譯器啟動管理,不需要程序員手動管理

堆的釋放由程序員手動管理,不及時回收容易產生內存泄露


分配方式不同

棧有兩種分配方式:靜態分配和動態分配

靜態分配是系統編譯器完成的,比如局部變量的分配

動態分配是由alloc函數進行分配的,但是棧的動態分配和堆的動態分配是不同的,它的動態分配也由系統編譯器進行釋放,不需要程序員手動管理

堆是動態分配和回收內存的,沒有靜態分配的堆


分配大小不同

棧是向低地址擴展的數據結構,是一塊連續的內存區域

堆是向高地址擴展的數據結構,是不連續的內存區域


小程序的路由跳轉分為兩種,組件跳轉以及api跳轉

api形式分為

navigateTo 保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面

redirectTo 關閉當前頁面,跳轉到應用內的某個頁面

switchTab 跳轉到tabBar頁面,同時關閉其他非tabBar頁面

navigateBack 返回上一頁面

reLanch 關閉所有頁面,打開到應用內的某個頁面

前面有提到棧,那么這些導航方式跟棧有什么關系呢,看下面

初始化 新頁面入棧

navigateTo 新頁面入棧

redirectTo 當前頁面出棧,新頁面入棧

navigateBack 頁面不斷出棧,直到目標返回頁,新頁面入棧

switchTab 頁面全部出棧,只留下新的 Tab 頁面

reLanch 頁面全部出棧,只留下新的頁面

通過組件形式進行跳轉

// navigator 組件默認的 open-type 為 navigate


跳轉到新頁面

// 如需要其它形式進行跳轉,可以更改open-type 屬性以上api值


切換 Tab

getCurrentPages

getCurrentPages() 函數用于獲取當前頁面棧的實例(屬性及方法),以數組形式按棧的順序給出,第一個元素為首頁,最后一個元素為當前頁面

// Page A 跳轉至Page B

wx.navigateTo({ url: '/pages/B/B' })

// Page B

const pages = getCurrentPages()

const perPage = pages[pages.length - 2] // 上一個頁面

perPage.setData({

title: 'JS每日一題'

})

總結

小程序頁面由棧形式管理,最多為5層,在合理的場景使用合理的方式進行跳轉




小程序


聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 国产精品无码一区二区三级 | 亚洲av永久无码精品天堂久久| selaoban在线视频免费精品| 一个人免费观看www视频| 国产精品28p| 全彩里番acg里番本子h| 中文字幕乱视频| 色之综合天天综合色天天棕色| 亚洲国产精品一区二区久久| 中文字幕中文字幕中中文| 自虐不死重口痴女系小说| 日日噜狠狠噜天天噜av| 国产二级一片内射视频播放| 久久久久国产一区二区| 色综合久久综合网欧美综合网| 无遮挡全彩口工h全彩| 国产a级黄色片| 中国videos性高清免费| 精品一区二区三区在线视频| 女人张开腿日出白浆视频| 人妻少妇精品视频专区| 91精品视频网| 欧美性猛交xxxx黑人| 国产精品久久久久免费a∨ | 成人深夜福利视频| 欧美xxxxbbb| 精品一区二区三区东京热| 69av免费视频| 三上悠亚国产精品一区| 亚洲国产成人片在线观看| 国产真实乱子伦精品视手机观看 | 91手机视频在线| 久久精品国产亚洲AV麻豆网站| 制服丝袜人妻中文字幕在线| 国产精品第九页| 日韩色视频一区二区三区亚洲| 青草青青视频在线观看| 中文字幕一二三区乱码老| 免费一级片网站| 免费看大美女大黄大色| 91香蕉在线看私人影院|