頁面跳轉和兩個頁面之間的數據傳遞-鴻蒙ArkTS

頁面跳轉和兩個頁面之間的數據傳遞-ArkTS

  • 頁面跳轉和兩個頁面之間的數據傳遞-ArkTS
    • 關于router的使用
    • **跳轉頁面的實現方式。**
    • 頁面接受跳轉傳遞的參數
    • 頁面返回及攜帶參數
    • 效果
    • 代碼
      • Index頁面
      • Second頁面
    • 參考資料

頁面跳轉和兩個頁面之間的數據傳遞-ArkTS

本篇文章主要是對兩個頁面之間數據傳遞進行實現。

在這里插入圖片描述

在這里插入圖片描述

關于router的使用

頁面跳轉和參數接受是通過導入 router 模塊實現。

import router from '@ohos.router';
  • router.pushUrl() 跳轉到指定頁面。
  • **router.replaceUrl() **替換當前頁面并銷毀。
  • **router.back() ** 返回上一個頁面。
  • router.getParams() 獲取上一個頁面跳轉過來攜帶的參數。
  • router.clear() 清空當前頁面棧中所有歷史頁面,只會保留當前頁面作為棧頂頁面。
  • router.getLength() 獲取當前頁面棧中的頁面數量。
  • router.getState() 獲取當前頁面的狀態信息。
  • router.showAlertBeforeBackPage() 開啟頁面返回詢問對話框。
  • router.hideAlertBeforeBackPage() 禁用頁面返回詢問對話框。

跳轉頁面的實現方式。

API9及以上,router.pushUrl()方法新增了mode參數,可以將mode參數配置為router.RouterMode.Single單實例模式和router.RouterMode.Standard多實例模式。

router.pushUrl()方法內的基本參數

router.pushUrl({// 跳轉頁面路徑url: '頁面',// 跳轉攜帶的參數params: {變量名:值}
}, 當前模式)

方式一

在多實例模式下:如果目標頁面的url在頁面棧中已經存在同url頁面,離棧頂最近同url頁面會被移動到棧頂,移動后的頁面為新建頁,原來的頁面仍然存在棧中,頁面棧的元素數量不變;如果目標頁面的url在頁面棧中不存在同url頁面,按多實例模式跳轉,頁面棧的元素數量會加1。

// params對象內的變量是可以自定義參數名的,任意名稱都可以只要在接受的時候通過傳遞時過來的變量名稱就可以的。
router.pushUrl({url: 'pages/Second',params: {name: 'Index頁面傳遞'}
}, router.RouterMode.Single)

方式二

在單實例模式下:如果目標頁面的url在頁面棧中已經存在同url頁面,離棧頂最近同url頁面會被移動到棧頂,替換當前頁面,并銷毀被替換的當前頁面,移動后的頁面為新建頁,頁面棧的元素數量會減1;如果目標頁面的url在頁面棧中不存在同url頁面,按多實例模式跳轉,頁面棧的元素數量不變。

// params對象內的變量是可以自定義參數名的,任意名稱都可以只要在接受的時候通過傳遞時過來的變量名稱就可以的。
router.pushUrl({url: 'pages/Second',params: {name: 'Index頁面傳遞'}
}, router.RouterMode.Standard)

頁面接受跳轉傳遞的參數

通過 router.getParams() 方法獲取頁面傳遞過來的自定義參數。

import router from '@ohos.router'
@Entry
@Component
struct Second {// 用于接受由頁面跳轉傳遞的參數名稱@State str: string = router.getParams()?.['name']// 頁面刷新展示....}

頁面返回及攜帶參數

返回上一個頁面

router.back();

返回指定頁面

router.back({url: 'pages/Index'});

返回并攜帶參數

// 需要在 router.back() 方法內類似 router.pushUrl() 的用法
router.back({url: 'pages/Index',params: {src: 'Second傳回來的數據'}
})

接收返回的參數

import router from '@ohos.router'
@Entry
@Component
struct Index {//定義一個變量來接收返回的參數@State src: string = ''// 這是一個生命周期,當頁面每次顯示的時候都會調用onPageShow(){// 通過拿到 router 中名稱為 src 的值this.src = router.getParams()?.['src']}build() {Row() {Column() {// 將返回接收到的值顯示Text(this.src)Button('Next').width("90%").onClick(() => {router.pushUrl({url: 'pages/Second',params: {name: 'Index頁面傳遞'}}, router.RouterMode.Single)})}.width('100%')}.height('100%').backgroundColor('#efefef')}
}

效果

在這里插入圖片描述

在這里插入圖片描述

代碼

Index頁面

import router from '@ohos.router'
@Entry
@Component
struct Index {@State message: string = 'Hello World'@State src: string = ''onPageShow(){this.src = router.getParams()?.['src']}build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Text(this.src)Button('Next').width("90%").onClick(() => {router.pushUrl({url: 'pages/Second',params: {name: 'Index頁面傳遞'}}, router.RouterMode.Single)})}.width('100%')}.height('100%').backgroundColor('#efefef')}
}

Second頁面

import router from '@ohos.router'
@Entry
@Component
struct Second {@State message: string = 'Hello World'@State str: string = router.getParams()?.['name']build() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)Text(this.str)Button('back').onClick(() => {router.back({url: 'pages/Index',params: {src: 'Second傳回來的數據'}})}).width("90%")}.width('100%')}.height('100%').backgroundColor('#efefef')}
}

參考資料

官網文檔

官網視頻對應文檔

router參考文檔

官網視頻

官網對應視頻

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37174.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37174.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TiDB在科捷物流神州金庫核心系統的應用與實踐

業務背景 北京科捷物流有限公司于2003年在北京正式成立,是ISO質量管理體系認證企業、國家AAAAA級物流企業、海關AEO高級認證企業,注冊資金1億元,是中國領先的大數據科技公司——神州控股的全資子公司。科捷物流融合B2B和B2C的客戶需求&#…

網易有道押寶大模型,打響智能硬件突圍戰

本文轉載自產業科技 自今年開年以來,AI大模型這場火勢能不減,如今已燃到教育領域。 7月26日,網易有道舉辦了“powered by子曰”教育大模型應用成果發布會,推出國內首個教育領域垂直大模型“子曰”,并一口氣發布了基于…

conda - 調研介紹

介紹: conda 是一個工具, 也是一個可執行命令, 其核心功能是管理包與環境. conda 支持多種語言, 用來管理Python包是綽綽有余的. 這里注意區分conda和pip, pip命令可以在任何環境中安裝Python包, 而conda則是在conda環境中安裝任何語言包. 接觸過的conda主要有miniconda與anac…

matlab使用教程(15)—圖論基礎

1.有向圖和無向圖 1.1什么是圖? 圖是表示各種關系的節點和邊的集合: ? 節點 是與對象對應的頂點。 ? 邊 是對象之間的連接。 ? 圖的邊有時會有權重 ,表示節點之間的每個連接的強度(或一些其他屬性)。 這些定…

MySQL8.xx一主兩從復制安裝與配置

搭建環境: 查看系統版本cat /etc/redhat-release [rootwww tools]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) 查看內核版本cat /proc/version 目標: 一主兩從 主機IP 主機名稱 端口 搭建環境 安裝目錄192.168.1.100 docker…

MobaXterm sftp 不能拖拽文件夾了?

原因是我把mobaxterm設置成Windows管理員權限運行了,結果就不能拖動文件。把管理員權限去掉就恢復正常了。 原因是我把mobaxterm設置成Windows管理員權限運行了,結果就不能拖動文件。把管理員權限去掉就恢復正常了。 原因是我把mobaxterm設置成Windows管理員權限運行了,結果就不…

19.正則表達式

19.1什么是正則表達式 ●正則表達式( Regular Expression) 是用于匹配字符串中字符組合的模式。在JavaScript中, 正則表達式也是對象 ●通常用來查找、替換那些符合正則表達式的文本,許多語言都支持正則表達式 ●正則表達式在JavaScript中的使用場景: …

什么是MCU芯片?分類有哪些?與MPU、SoC的區別

1. MCU芯片 MCU,全稱為微控制單元,可以看作是CPU頻率和規格的縮減。它整合了計數器、內存、USB和A/D轉換等功能,形成了一個芯片級的計算機。MCU的重要性僅次于CPU,廣泛應用于各種應用場景,如校園卡、身份證、家用電器…

《golang設計模式》第二部分·結構型模式-02-橋接模式(Bridge)

文章目錄 1. 概念1.1 角色1.2 類圖 2. 代碼示例2.1 設計2.1 代碼2.2 類圖 1. 概念 客戶端調用橋接接口實現原有功能和擴展功能的組合 1.1 角色 Implementor(實施者): 具體實施者的抽象,可以是一個接口。 Concrete Implementor&…

8.15號經典模型復習筆記

文章目錄 Deep Residual Learning for Image Recognition(CVPR2016)方法 Densely Connected Convolutional Networks(CVPR2017)方法 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(ICML2019)方法 Re…

使用維納過濾器消除駕駛艙噪音(Matlab代碼實現)

💥💥💞💞歡迎來到本博客????💥💥 🏆博主優勢:🌞🌞🌞博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ??座右銘&a…

信息論、推理和機器學習算法之間交叉的經典例子

信息論、推理和機器學習算法之間交叉的經典例子: 熵和信息增益在決策樹學習中的應用。信息增益利用熵的概念來評估特征的分類能力,從而指導決策樹的增長。 交叉熵在神經網絡訓練中的廣泛使用。它結合信息論與最大似然推斷,用于度量預測分布與真實分布之間的距離。 變分推斷常被…

Tomcat的多實例和動靜分離

目錄 一、多實例 二、 nginxtomcat的負載均衡和動靜分離 三、Tomcat 客戶端->四層代理->七層代理->tomcat服務器 實驗: 問題總結: tomcat日志文件:/usr/local/tomcat/logs/catalina.out 一、多實例 在一臺服務器上有多個tomc…

微信小程序(原生)和uniapp預覽電子文件doc/pdf/ppt/excel等

微信小程序原生預覽文件 function previewFile(value) {const fileExtName ${value.ext};const randFile new Date().getTime() fileExtName;uni.showLoading({title: 加載中...})wx.downloadFile({url: value.url, // 文件的本身urlfilePath: wx.env.USER_DATA_PATH / r…

ES使用心得

客戶端 Transport Client已經快要廢棄了,官方推薦使用High Level REST Client。 常用命令 啟停 systemctl start elasticsearch systemctl stop elasticsearch節點狀態 curl http://myservice1:9200/_cat/nodes?vip heap.percent ram.percent cpu l…

解壓版 MySQL 數據庫的安裝與配置

目錄 1 下載2 安裝3 配置3.1 添加環境變量3.2 新建配置文件3.3 初始化MySQL3.4 注冊MySQL服務3.5 啟動MySQL服務3.6 修改默認賬戶密碼 4 登錄5 卸載 安裝環境:Win10 64位 軟件版本:MySQL 5.7.24 解壓版 1 下載 點擊鏈接 進入如下界面 ??注意: 我們一般不會選擇最新…

防火墻筆記

什么是防火墻 在計算機網絡中是指設置在可信任的內部網絡和不可信任的外部網絡之間的屏障,通過強化邊界控制保障內容安全,同時不妨礙內部對外部的訪問。 20世紀80年代,最早的防火墻幾乎與路由器同時出現,第一代防火墻主要基于包過…

RocketMQ 5.1.0 源碼詳解 | Producer 發送流程

文章目錄 初始化DefaultMQProducer實例發送流程DefaultMQProducer#sendDefaultMQProducerImpl#sendMQClientInstance#updateTopicRouteInfoFromNameServer使用特定 topic 獲取路由信息使用默認 topic 獲取路由信息 DefaultMQProducerImpl#sendDefaultImpl發送流程總結 初始化De…

記一次練習(內容待完善)

記錄最近一次爬蟲和數據可視化練習 0、數據獲取 import pandas as pdyear [2018,2019,2020,2021,2022] header {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile S…

31 | 獨角獸企業數據分析

獨角獸企業:是投資行業尤其是風險投資業的術語,一般指成立時間不超過10年、估值超過10億美元的未上市創業公司。 項目目的: 1.通過對獨角獸企業進行全面地分析(地域,投資方,年份,行業等),便于做商業上的戰略決策 項目數據源介紹 1.數據源:本項目采用的數據源是近…