免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動(dòng)推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

有關(guān)小程序wx.navigateTo層疊5次限制

發(fā)布時(shí)間:2017-12-29 18:04 所屬欄目:小程序開(kāi)發(fā)教程

小程序頁(yè)面的實(shí)例使用棧的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),棧內(nèi)元素最多5個(gè)(換一種方式說(shuō),就是用戶最多能點(diǎn)擊5次返回),微信小程序能在棧中相對(duì)高層某個(gè)頁(yè)面調(diào)用其他相對(duì)低層的頁(yè)面實(shí)例的方法。小程序三種頁(yè)面跳轉(zhuǎn)API 的區(qū)別在于: ...

 
 
 

小程序頁(yè)面的實(shí)例使用棧的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),棧內(nèi)元素最多5個(gè)(換一種方式說(shuō),就是用戶最多能點(diǎn)擊5次返回),微信小程序能在棧中相對(duì)高層某個(gè)頁(yè)面調(diào)用其他相對(duì)低層的頁(yè)面實(shí)例的方法。

小程序三種頁(yè)面跳轉(zhuǎn)API 的區(qū)別在于:

 

		
  1. wx.navigateTo 不會(huì)將舊頁(yè)面出棧,會(huì)將新頁(yè)面入棧。(棧內(nèi)元素個(gè)數(shù)增加,棧內(nèi)元素5個(gè)時(shí),不能再跳轉(zhuǎn))
  2. wx.redirectTo 會(huì)將棧頂?shù)呐f頁(yè)面出棧,再將需要跳轉(zhuǎn)到的頁(yè)面入棧(棧內(nèi)元素個(gè)數(shù)不變);
  3. wx.navigateBack 則是將頁(yè)面棧最后一個(gè)元素出棧,因此倒數(shù)第二個(gè)元素會(huì)成為最后一個(gè)元素,即變成當(dāng)前頁(yè)面;也可以連續(xù)出棧好幾個(gè)元素(大于棧內(nèi)元素的個(gè)數(shù)則返回首頁(yè))返回棧中的某個(gè)頁(yè)面。

結(jié)合下面一個(gè)例子對(duì)上面的內(nèi)容的理解:

有一個(gè)小程序包含 A、B、C、D 四個(gè)頁(yè)面,A 為首頁(yè)。小程序啟動(dòng)后,在 A 頁(yè)面中,此時(shí)棧中有一個(gè)元素A,我們通過(guò) navigateTo 跳轉(zhuǎn)到 B 頁(yè)面,然后在 B 頁(yè)面中再通過(guò) navigateTo 跳轉(zhuǎn)到 C 頁(yè)面。此時(shí)頁(yè)面棧中就會(huì)包含三個(gè)元素,分別為 A、B、C 三個(gè)頁(yè)面。而此時(shí)如果通過(guò) redirectTo 跳轉(zhuǎn)到 D 頁(yè)面,redirectTo 會(huì)將棧頂頁(yè)面出棧,即將 C 頁(yè)面出棧,再將 D 頁(yè)面入棧,這時(shí)候,頁(yè)面棧中的元素則會(huì)變?yōu)?A、B、D。此時(shí)如果在 D 頁(yè)面調(diào)用 navigateBack,會(huì)發(fā)現(xiàn)不是返回 C 頁(yè)面,而是返回到了 B 頁(yè)面。當(dāng)然也可以直接在D頁(yè)面返回A,設(shè)置navigateBack的delta參數(shù)為2。

特殊情況,減少navigateTo的使用

描述

舉個(gè)栗子:比如小程序的商城,在用戶下單的頁(yè)面(下面簡(jiǎn)稱:下單界面)很多時(shí)候用戶需要選擇收獲地址,然后程序根據(jù)用戶的選擇再返回該界面顯示用戶選擇的收獲地址是什么??赡苄枰谟脩舻南聠谓缑嫣D(zhuǎn)到地址界面,地址的界面可能有編輯地址之類的操作,用戶選擇地址后返回下單界面,顯示剛剛用戶選擇的收獲地址是什么。這個(gè)時(shí)候可以采用以下方法,減少navigateTo的使用。很多情況下都會(huì)有畫(huà)圈這樣的操作,就是經(jīng)過(guò)一系列的界面后取得數(shù)據(jù)又返回了原來(lái)的界面,這個(gè)時(shí)候可以使用

編輯完當(dāng)前頁(yè)面返回?cái)?shù)據(jù)到上一頁(yè)更新,假設(shè)當(dāng)前在首頁(yè)A頁(yè)面,需要跳轉(zhuǎn)到B頁(yè)面采集用戶的選擇的數(shù)據(jù),然后在返回A界面更新顯示。代碼例子如下

 

		
  1. //A界面
  2.  
  3. Page({
  4. data: {
  5. userName: ''
  6. },
  7.  
  8. getBackData: function(name){
  9. this.setData({
  10. userName: name
  11. })
  12. }
  13. })
 

		
  1. //B頁(yè)面
  2. Page({
  3. edtinputname: function (e) {
  4. var name="張三";
  5. var pagelist = getCurrentPages();
  6. if(pagelist.length > 1){
  7. //獲取上一個(gè)頁(yè)面實(shí)例對(duì)象
  8. var prePage = pagelist[pagelist.length - 2];
  9. prePage.getBackData(name);
  10.  
  11. wx.navigateBack({
  12. delta: 1
  13. })
  14. }
  15. })

這樣能夠使得取得數(shù)據(jù)但不會(huì)增加棧中的元素個(gè)數(shù),減少navigateTo的使用



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/18306.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服