吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā)接口UI界面:【@ohos.router (頁面路由)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-28 16:26 ? 次閱讀

頁面路由

icon-note.gif說明
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

  • 本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
  • 頁面路由需要在頁面渲染完成之后才能調(diào)用,在onInit和onReady生命周期中頁面還處于渲染階段,禁止調(diào)用頁面路由方法。

導(dǎo)入模塊

import router from '@ohos.router'

權(quán)限列表

router.push

push(options: RouterOptions): void

跳轉(zhuǎn)到應(yīng)用內(nèi)的指定頁面。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

參數(shù)

參數(shù)名類型必填說明
options[RouterOptions]跳轉(zhuǎn)頁面描述信息

示例:

// 在當(dāng)前頁面中
export default {
  pushPage() {
    router.push({
      url: 'pages/routerpage2/routerpage2',
      params: {
	data1: 'message',
        data2: {
          data3: [123, 456, 789]
	},
      },
    });
  }
}
// 在routerpage2頁面中
export default {
  data: {
    data1: 'default',
    data2: {
      data3: [1, 2, 3]
    }
  },
  onInit() {
    console.info('showData1:' + this.data1);
    console.info('showData3:' + this.data2.data3);
  }
}

router.replace

replace(options: RouterOptions): void

用應(yīng)用內(nèi)的某個頁面替換當(dāng)前頁面,并銷毀被替換的頁面。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

參數(shù):

參數(shù)名類型必填說明
options[RouterOptions]替換頁面描述信息。

示例:

// 在當(dāng)前頁面中
export default {
  replacePage() {
    router.replace({
      url: 'pages/detail/detail',
      params: {
        data1: 'message',
      },
    });
  }
}
// 在detail頁面中
export default {
  data: {
    data1: 'default'
  },
  onInit() {
    console.info('showData1:' + this.data1)
  }
}

router.back

back(options?: RouterOptions ): void

返回上一頁面或指定的頁面。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

參數(shù):

參數(shù)名類型必填說明
options[RouterOptions]返回頁面描述信息,其中參數(shù)url指路由跳轉(zhuǎn)時會返回到指定url的界面,如果頁面棧上沒有url頁面,則不響應(yīng)該情況。如果url未設(shè)置,則返回上一頁。

示例:

// index頁面
export default {    
  indexPushPage() {        
    router.push({            
      url: 'pages/detail/detail',        
    });        
  }
}
// detail頁面
export default {    
  detailPushPage() {        
    router.push({            
      url: 'pages/mall/mall',        
    });    
  }
}
// mall頁面通過back,將返回detail頁面
export default {    
  mallBackPage() {        
    router.back();    
  }
}
// detail頁面通過back,將返回index頁面
export default {    
  defaultBack() {        
    router.back();    
  }
}
// 通過back,返回到detail頁面
export default {    
  backToDetail() {        
    router.back({uri:'pages/detail/detail'});    
  }
}

router.clear

clear(): void

清空頁面棧中的所有歷史頁面,僅保留當(dāng)前頁面作為棧頂頁面。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

示例:

export default {    
  clearPage() {        
    router.clear();    
  }
}js

router.getLength

getLength(): string

獲取當(dāng)前在頁面棧內(nèi)的頁面數(shù)量。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

返回值:

類型說明
string頁面數(shù)量,頁面棧支持最大數(shù)值是32。

示例:

export default {     
  getLength() {        
    var size = router.getLength();        
    console.log('pages stack size = ' + size);    
  }
}

router.getState

getState(): RouterState

獲取當(dāng)前頁面的狀態(tài)信息。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

返回值:

類型說明
[RouterState]頁面狀態(tài)信息。

RouterState

頁面狀態(tài)信息。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ArkUI.ArkUI.Full。

名稱類型說明
indexnumber表示當(dāng)前頁面在頁面棧中的索引。 > ![icon-note.gif]說明:> 從棧底到棧頂,index從1開始遞增。
namestring表示當(dāng)前頁面的名稱,即對應(yīng)文件名。
pathstring表示當(dāng)前頁面的路徑。

示例:

export default {     
  getState() {        
    var page = router.getState();
    console.log('current index = ' + page.index);
    console.log('current name = ' + page.name);
    console.log('current path = ' + page.path);
  }
}

router.enableAlertBeforeBackPage

enableAlertBeforeBackPage(options: EnableAlertOptions): void

開啟頁面返回詢問對話框。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

參數(shù):

參數(shù)名類型必填說明
options[EnableAlertOptions]文本彈窗信息描述。

示例:

export default {    
  enableAlertBeforeBackPage() {        
    router.enableAlertBeforeBackPage({            
      message: 'Message Info',            
      success: function() {                
        console.log('success');            
      },            
      fail: function() {                
        console.log('fail');            
      },        
    });    
  }
}

EnableAlertOptions

頁面返回詢問對話框選項。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ArkUI.ArkUI.Full。

名稱類型必填說明
messagestring詢問對話框內(nèi)容。

router.disableAlertBeforeBackPage

disableAlertBeforeBackPage(): void

禁用頁面返回詢問對話框。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

示例:

export default {    
  disableAlertBeforeBackPage() {        
    router.disableAlertBeforeBackPage();    
  }
}

router.getParams

getParams(): Object

獲取發(fā)起跳轉(zhuǎn)的頁面往當(dāng)前頁傳入的參數(shù)。

系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full

返回值:

類型說明
Object發(fā)起跳轉(zhuǎn)的頁面往當(dāng)前頁傳入的參數(shù)。

示例:

  • 類Web范示例

    // 在當(dāng)前頁面中
    export default {
      pushPage() {
        router.push({
          url: 'pages/detail/detail',
          params: {
            data1: 'message',
          },
        });
      }
    }
    
    // 在detail頁面中
    export default {
      onInit() {
        console.info('showData1:' + router.getParams().data1);
      }
    }
    
  • 聲明式示例

    //通過router.push跳轉(zhuǎn)至目標(biāo)頁攜帶params參數(shù)
    import router from '@ohos.router'
    
    @Entry
    @Component
    struct Index {
      async  routePage() {
        let options = {
          url: 'pages/second',
          params: {
            text: '這是第一頁的值',
            data: {
              array: [12, 45, 78]
            },
          }
        }
        try {
          await router.push(options)
        } catch (err) {
          console.info(` fail callback, code: ${err.code}, msg: ${err.msg}`)
        }
      }
    
      build() {
        Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
            Text('這是第一頁')
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
          Button() {
            Text('next page')
              .fontSize(25)
              .fontWeight(FontWeight.Bold)
          }.type(ButtonType.Capsule)
              .margin({ top: 20 })
              .backgroundColor('#ccc')
              .onClick(() = > {
                this.routePage()
          })
        }
        .width('100%')
        .height('100%')
      }
    }
    
//在second頁面中接收傳遞過來的參數(shù)
    import router from '@ohos.router'

    @Entry
    @Component
    struct Second {
      private content: string = "這是第二頁"
      @State text: string = router.getParams()['text']
      @State data: any = router.getParams()['data']
      @State secondData : string = ''
      
      build() {
        Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
          Text(`${this.content}`)
            .fontSize(50)
            .fontWeight(FontWeight.Bold)
          Text(this.text)
            .fontSize(30)
            .onClick(()= >{
              this.secondData = (this.data.array[1]).toString()
            })
          .margin({top:20})
          Text('第一頁傳來的數(shù)值' + '  ' + this.secondData)
            .fontSize(20)
            .margin({top:20})
            .backgroundColor('red')      
        }
        .width('100%')
        .height('100%')
      }
    }
    
    `HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151344.png

RouterOptions

路由跳轉(zhuǎn)選項。

系統(tǒng)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.ArkUI.ArkUI.Lite。

名稱類型必填說明
urlstring表示目標(biāo)頁面的uri,可以用以下兩種格式: - 頁面絕對路徑,由配置文件中pages列表提供,例如: - pages/index/index - pages/detail/detail - 特殊值,如果uri的值是"/",則跳轉(zhuǎn)到首頁。
paramsObject跳轉(zhuǎn)時要同時傳遞到目標(biāo)頁面的數(shù)據(jù),跳轉(zhuǎn)到目標(biāo)頁面后,參數(shù)可以在頁面中直接使用,如this.data1(data1為跳轉(zhuǎn)時params參數(shù)中的key值)。如果目標(biāo)頁面中已有該字段,則其值會被傳入的字段值覆蓋。

icon-note.gif說明: 頁面路由棧支持的最大Page數(shù)量為32。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8694

    瀏覽量

    151928
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2392

    瀏覽量

    43058
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙開發(fā)接口UI界面:【@ohos.prompt (彈窗)】

    本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
    的頭像 發(fā)表于 05-28 09:35 ?1245次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>UI</b><b class='flag-5'>界面</b>:【@<b class='flag-5'>ohos</b>.prompt (彈窗)】

    鴻蒙開發(fā)-應(yīng)用程序框架UIAbility的使用

    使用不同的url訪問不同的頁面,包括跳轉(zhuǎn)到UIAbility內(nèi)的指定頁面、用UIAbility內(nèi)的某個頁面替換當(dāng)前頁面、返回上一頁面或指定的
    發(fā)表于 01-17 16:36

    純血鴻蒙開發(fā)教程-運行時動態(tài)加載頁面提升性能

    } from \'./pageTwo\'; ... import router from \'@ohos.router\'; 2.主頁通過Navigation組件實現(xiàn)點擊Button跳轉(zhuǎn)到不同的子頁面
    發(fā)表于 05-10 20:52

    鴻蒙應(yīng)用開發(fā)踩坑記之路由跳轉(zhuǎn)

    幫我催催官方吧。這兩天Mac OS發(fā)布了最新的版本,鴻蒙開發(fā)工具也發(fā)布了mac版本,這兩件事稍許沖淡了我在鴻蒙應(yīng)用開發(fā)中遇到的不快。今天就來繼續(xù)做一下
    發(fā)表于 11-18 16:54

    鴻蒙應(yīng)用開發(fā)踩坑記之路由跳轉(zhuǎn)

    本來打算先搞地圖方面的開發(fā),但是遇到一些,已經(jīng)在官方論壇發(fā)帖求助了:關(guān)于JS UI開發(fā)的一些問題大家如果對鴻蒙應(yīng)用開發(fā)有興趣,也去幫我催催官
    發(fā)表于 11-21 18:21

    鴻蒙開發(fā)AI應(yīng)用(六)UI

    在“富鴻蒙”的設(shè)備上開發(fā)就會比較方便。資料下載本期相關(guān)文件資料,可在公眾號“深度覺醒”,后臺回復(fù):“ohos06”,獲取下載鏈接。下一篇預(yù)告本期主要介紹了一下JS框架下的界面
    發(fā)表于 01-07 01:16

    HarmonyOS應(yīng)用開發(fā)-ArkUI聲明式UI頁面布局、跳轉(zhuǎn)與返回的實現(xiàn)

    RouterAPI接口,通過在頁面上引入router,可以調(diào)用router的各種接口,從而實現(xiàn)頁面
    發(fā)表于 12-09 11:42

    鴻蒙開源第三方組件資料合集

    展示1、測試界面。 如圖1所示,這是一個為了測試Timber_ohos功能而簡單構(gòu)建的UI頁面。點擊“測試”按鈕即可輸出相應(yīng)的log。2、鴻蒙
    發(fā)表于 03-23 09:53

    【潤和軟件DAYU200開發(fā)板體驗】從頭創(chuàng)建eTs項目

    in the build phase.*/build() {}}9、實現(xiàn)頁面間的跳轉(zhuǎn)頁面間的導(dǎo)航可以通過頁面路由ro
    發(fā)表于 10-16 15:24

    HarmonyOS 管理頁面跳轉(zhuǎn)及瀏覽記錄導(dǎo)航

    。 // index.ets import web_webview from \'@ohos.web.webview\'; import router from \'@ohos.router\'; @Entry
    發(fā)表于 09-19 18:31

    鴻蒙原生應(yīng)用開發(fā)-關(guān)于頁面接口router返回問題與解決思路

    一、模塊導(dǎo)入 import router from \'@ohos.router\' 提供通過不同的url訪問不同的頁面,包括跳轉(zhuǎn)到應(yīng)用內(nèi)的指定頁面、用應(yīng)用內(nèi)的某個
    發(fā)表于 11-15 10:11

    鴻蒙版微信聊天UI效果實現(xiàn)!

    ? 最近開發(fā)中要做一個類似微信聊天的工單系統(tǒng)客服中心界面(安卓版)所以想著也模仿一個鴻蒙版(基于 Java UI 的,JS UI 版本的后期
    的頭像 發(fā)表于 11-15 09:35 ?3698次閱讀
    <b class='flag-5'>鴻蒙</b>版微信聊天<b class='flag-5'>UI</b>效果實現(xiàn)!

    鴻蒙頁面示例

    @Entry標(biāo)簽,被該標(biāo)簽修飾后頁面才會有生命周期 import router from '@ohos.router'@Entry@Componentstruct Login { @State title
    的頭像 發(fā)表于 02-01 11:24 ?502次閱讀

    鴻蒙OS開發(fā)實例:【工具類封裝-頁面路由

    import common from '@ohos.app.ability.common'; import router from '@ohos.router'封裝app內(nèi)的
    的頭像 發(fā)表于 03-28 16:16 ?972次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b>實例:【工具類封裝-<b class='flag-5'>頁面</b><b class='flag-5'>路由</b>】

    鴻蒙開發(fā)接口UI界面:【@ohos.animator (動畫)】

    本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
    的頭像 發(fā)表于 05-27 16:46 ?655次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>接口</b><b class='flag-5'>UI</b><b class='flag-5'>界面</b>:【@<b class='flag-5'>ohos</b>.animator (動畫)】
    百家乐博乐36bol在线| 大发888更名网址| 百家乐投注| 线上百家乐官网手机版| 威尼斯人娱乐场五星| 百家乐官网注册| 做生意大门方位风水| 大发888娱乐城破解软件| 百家乐官网投注平台导航网| 百家乐群sun811| 百家乐真钱电玩| 真人百家乐官网赢钱| 明升备用地址| 微信百家乐群资源| 高手百家乐赢钱法| 百家乐官网赌场规则| 武城县| 大发888娱乐城qq服务| 澳门百家乐实战| 网络百家乐官网的玩法技巧和规则| 缅甸百家乐官网论坛| 大发888大发888体育| 线上百家乐是如何作弊| 杨公24山分金兼向吉凶| 百家乐官网9点直赢| 波音现金网投注| 大众百家乐的玩法技巧和规则| 百家乐免费路单| 百家乐官网赚钱方| 百家乐官网开户博彩论坛| bet365网址搜索器| 属马做生意坐向| 海门市| 百家乐隔一数打投注法| 打百家乐官网如何赢分| 百家乐博娱乐网赌百家乐的玩法技巧和规则 | 喜德县| 真人百家乐软件云南景| 百家乐官网赢率| 亚洲顶级赌场 网投领导者| 百家乐官网玩法官网|