成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從微信小程序到鴻蒙JS開(kāi)發(fā)-頁(yè)面路由

開(kāi)發(fā)
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請(qǐng)前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com

[[383200]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

在項(xiàng)目中,頁(yè)面之間的路由跳轉(zhuǎn)是十分普遍的。鴻蒙JS開(kāi)發(fā)提供了四種頁(yè)面跳轉(zhuǎn)的方式(輕量級(jí)智能穿戴僅支持replace()),之前的帖子中也有涉及到一些,本文將詳解這四個(gè)API并與微信小程序中類似的頁(yè)面跳轉(zhuǎn)方式做比較。

鴻蒙頁(yè)面路由需導(dǎo)入router模塊。import router from '@system.router';

1、router.push()&wx.navigateTo()

這兩個(gè)方法都是壓棧式跳轉(zhuǎn),即將跳轉(zhuǎn)到的目標(biāo)頁(yè)面“壓”在源頁(yè)面上,源頁(yè)面不銷毀,按返回鍵即可返回源頁(yè)面。

router.push()有兩個(gè)參數(shù),uri指定頁(yè)面路徑,params指定跳轉(zhuǎn)攜帶參數(shù)。在目標(biāo)頁(yè)面data中只要有與params中即可接收數(shù)據(jù),無(wú)需寫額外一行代碼。

第一頁(yè) "push 下一頁(yè)"按鈕點(diǎn)擊事件:

  1. pushNext() { 
  2.      router.push({ 
  3.          uri: "pages/two/two"
  4.          params: { 
  5.              method: "push" 
  6.          } 
  7.      }) 
  8.  }, 

  1. data: { 
  2.      method: ""
  3.      count: 0 
  4.  }, 
  5.  onShow() { 
  6.      this.count = router.getLength(); 
  7.  }, 

router.getLength()可獲取頁(yè)面棧中頁(yè)面數(shù)量,鴻蒙頁(yè)面棧支持最大數(shù)值是32。

此時(shí)點(diǎn)擊設(shè)備的返回按鈕,即可返回第一頁(yè)。

第二頁(yè) "push 下一頁(yè)"按鈕點(diǎn)擊事件:

  1. pushNext() { 
  2.     router.push({ 
  3.         uri: "pages/three/three"
  4.         params: { 
  5.             data: { 
  6.                 name"HarmonyOS"
  7.                 type: "phone"
  8.                 method: "push" 
  9.             } 
  10.         } 
  11.     }) 
  12. }, 

帶復(fù)雜參數(shù)跳轉(zhuǎn),也是完全支持的。

微信小程序的wx.navigateTo()方法效果一致,微信小程序中頁(yè)面跳轉(zhuǎn)的參數(shù)在url中攜帶,和統(tǒng)一資源定位符的規(guī)則一致。且支持success,fail,complete回調(diào)函數(shù),也支持雙向事件的觸發(fā)。

第一頁(yè) "navigateTo 下一頁(yè)"點(diǎn)擊事件:

  1. naviNext() { 
  2.    wx.navigateTo({ 
  3.      url: '../two/two?method=navigateTo'
  4.      success: res => { 
  5.        console.log(res) 
  6.      } 
  7.    }) 
  8.  }, 

第二頁(yè)需在onLoad()中手動(dòng)接收參數(shù),參數(shù)被傳遞到options對(duì)象中。

  1. onLoad: function (options) { 
  2.   this.setData({ 
  3.     method: options.method 
  4.   }) 
  5. }, 

如需攜帶復(fù)雜參數(shù),只能通過(guò)events參數(shù)傳遞,且只有navigateTo()支持該參數(shù)。微信小程序支持頁(yè)面棧最大頁(yè)面數(shù)為10,該方法不支持跳轉(zhuǎn)到app.json中配置的tabBar頁(yè)面。

2、router.replace()&wx.redirectTo()

銷毀當(dāng)前頁(yè)面并跳轉(zhuǎn)頁(yè)面,源頁(yè)面在頁(yè)面棧中被清除。

router.replace()參數(shù)和router.push()一致,這里主要看頁(yè)面棧的頁(yè)面數(shù)。

第一頁(yè)"replace 下一頁(yè)"點(diǎn)擊事件:

  1. replaceNext() { 
  2.     router.replace({ 
  3.         uri: "pages/two/two"
  4.         params: { 
  5.             method: "replace" 
  6.         } 
  7.     }) 

第二頁(yè)"replace 下一頁(yè)"點(diǎn)擊事件:

  1. replaceNext() { 
  2.     router.replace({ 
  3.         uri: "pages/three/three"
  4.         params: { 
  5.             data: { 
  6.                 name"HarmonyOS"
  7.                 type: "phone"
  8.                 method: "replace" 
  9.             } 
  10.         } 
  11.     }) 

連續(xù)點(diǎn)擊replace到第三頁(yè),頁(yè)面棧中頁(yè)面數(shù)始終為1。

此時(shí)若點(diǎn)擊設(shè)備返回鍵,則是退出APP的效果。

wx.redirectTo()效果類似,左上角返回按鈕變?yōu)?quot;home"按鈕。微信小程序的首頁(yè)是不會(huì)被銷毀的,從redirectTo轉(zhuǎn)到的頁(yè)面點(diǎn)擊"home"按鈕也可以返回首頁(yè)。

  1. rediNext() { 
  2.    wx.redirectTo({ 
  3.      url: '../two/two?method=redirectTo'
  4.      success: res => { 
  5.        console.log(res) 
  6.      } 
  7.    }) 
  8.  }, 

3、router.back()&wx.navigateBack()

返回上一頁(yè)的方法,鴻蒙支持傳頁(yè)面path指定返回的頁(yè)面路徑。

第三頁(yè)"上一頁(yè)、回首頁(yè)"點(diǎn)擊事件:

  1. back1() { 
  2.      router.back(); 
  3.  }, 
  4.  back2() { 
  5.      router.back({ 
  6.          path: "pages/index/index" 
  7.      }) 
  8.  }, 

back()方法會(huì)將頁(yè)面棧中返回目標(biāo)頁(yè)面之上的頁(yè)面全部清除。如頁(yè)面棧中只有1個(gè)頁(yè)面,back()方法會(huì)將APP退出。

微信小程序wx.navigateBack()方法可通過(guò)delta參數(shù)指定返回幾層頁(yè)面,如果 delta 大于現(xiàn)有頁(yè)面數(shù),則返回到首頁(yè)。

  1. naviBack(){ 
  2.   wx.navigateBack({ 
  3.     success: res => { 
  4.       console.log(res); 
  5.     } 
  6.   }) 
  7. }, 
  8.  
  9. naviIndex(){ 
  10.   wx.navigateBack({ 
  11.     delta: 10, 
  12.     success: res => { 
  13.       console.log(res); 
  14.     } 
  15.   }) 
  16. }, 

如果頁(yè)面棧中只有1個(gè)頁(yè)面,此方法將無(wú)法觸發(fā)并進(jìn)入fail回調(diào)。但仍可點(diǎn)擊小程序左上角"home"按鈕返回首頁(yè)。

4、router.clear()&wx.reLaunch()

router.clear()是清空頁(yè)面棧中其余頁(yè)面的方法,僅保留當(dāng)前頁(yè)面。

wx.reLaunch()則可以實(shí)現(xiàn)清除所有頁(yè)面,并轉(zhuǎn)到特定頁(yè)面的方法。小程序首頁(yè)仍可以通過(guò)點(diǎn)擊"home"按鈕返回。

  1. relaNext() { 
  2.   wx.reLaunch({ 
  3.     url: '../three/three?method=reLaunch'
  4.     success: res => { 
  5.       console.log(res) 
  6.     } 
  7.   }) 
  8. }, 

5、項(xiàng)目實(shí)踐

歡迎頁(yè)面跳轉(zhuǎn)到首頁(yè),使用replace()。

分類->二級(jí)分類->商品列表->商品,使用push()。

商品詳情->首頁(yè),使用replace()并clear()掉多余頁(yè)面。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2021-03-02 09:29:29

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-20 09:52:02

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-25 10:01:19

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-22 14:56:55

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-21 11:09:18

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-23 12:23:57

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-23 09:52:42

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-04 13:49:41

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-25 15:13:08

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-05 09:46:16

鴻蒙HarmonyOSjs開(kāi)發(fā)

2021-02-07 09:17:24

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-02-24 09:36:03

鴻蒙CSS應(yīng)用開(kāi)發(fā)

2016-11-04 10:47:27

微信小程序

2017-05-08 15:03:07

微信小程序開(kāi)發(fā)實(shí)戰(zhàn)

2016-09-27 16:38:24

JavaScript微信Web

2016-11-04 10:49:48

微信小程序

2016-09-28 18:10:59

微信程序MINA

2016-09-27 20:36:23

微信HttpWeb

2016-11-04 10:30:17

微信小程序

2018-09-11 10:32:07

云開(kāi)發(fā)小程序開(kāi)發(fā)者
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 波多野结衣在线观看一区二区三区 | 久久久人成影片一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 国产精品免费一区二区三区四区 | 啪啪综合网| 久久久久亚洲精品 | 午夜视频在线视频 | 中文字幕日韩欧美一区二区三区 | 粉嫩一区二区三区四区公司1 | 91美女视频| 97免费视频在线观看 | 久久久久久国产精品mv | 日韩av在线一区二区 | 亚洲欧美日韩精品久久亚洲区 | 久久99久久 | 欧美亚洲国产精品 | 日韩三级免费观看 | 国产日韩久久 | 国产乱码精品1区2区3区 | 国产精品成人久久久久 | 国产精品一区二区精品 | 91精品国产91久久久久久丝袜 | 国产亚洲精品精品国产亚洲综合 | 亚洲精品乱码久久久久久9色 | 国产一卡二卡三卡 | 欧美激情精品久久久久久免费 | 中国一级毛片免费 | 在线男人天堂 | 精品国产三级 | 久久久成人动漫 | 国产精品自拍av | 高清免费av | 国产美女永久免费无遮挡 | 日本精品一区二区三区视频 | 成人性视频免费网站 | 久久伊人影院 | 国产精品久久久久免费 | 久久五月婷 | 国产日韩欧美另类 | 免费精品视频在线观看 | 免费精品久久久久久中文字幕 |