当前位置: 首页 > news >正文

鸿蒙仓颉开发语言实战教程:页面跳转和传参

前两天分别实现了商城应用的首页和商品详情页面,今天要分享新的内容,就是这两个页面之间的相互跳转和传递参数。

首先我们需要两个页面。如果你的项目中还没有第二个页面,可以右键cangjie文件夹新建仓颉文件:

新建的文件里面没什么内容,我们给他添加上4个基础的引用,再简单添加个按钮:

package ohos_app_cangjie_entry.page
import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*
@Entry
@Component
public class testPage {func build() {Column {Button('返回')}}
}

页面跳转和返回

仓颉语言有和ArkTs相同的路由Router,不过用法不太一样。在跳转页面的时候,push使用的url,不再是路径,而是直接写页面名称,不用管的路径。比如我刚才新建了页面testPage,跳转的时候就是:

Router.push(url: 'testPage')

当页面需要返回,使用Router.back(),back中可以写url参数,也可以不写。

要注意,这里我们说的页面名称,并不是文件的名字,而是页面的名称。比如index.cj文件,它的页面名称是EntryView而不是index。

传递参数

页面跳转通常伴随着传递参数,在使用push跳转的时候能看到和url并列的还有一个params用来传递参数,它支持两种类型,string和JsonObject。

只需传递一个参数的时候我们可以直接传递string类型的参数:

Router.push(url: 'testPage', params: '100')

在下一个页面接收的参数的时候也要使用Router:

Router.getParams()

同样的,在返回上一级页面的时候也可以同样的方式传递参数,接收参数也是一样的。

Router.back(url: 'EntryView',params:'参数2')

在需要传递多个参数的时候,我们需要使用JsonObject类型,这是一个全新的数据类型,幽蓝君使用它的时候颇费了一番周折。好在看了这篇文章的友友不用再浪费时间了,它是这样用的:

var map = JsonObject()
map.put("name", JsonString("衬衫"))
map.put(“size”, JsonString(“xl”))
Router.push(url: 'testPage', params: map)

在下一个页面接收多个参数时,要使用Router.getParamsObject():

let obj =  Router.getParamsObject()
let a =  obj['name']
AppLog.info('接收多个参数:' + a.toString())

以上就是仓颉开发语言中的页面跳转和传参。#HarmonyOS语言##仓颉##购物#

相关文章:

  • Java多线程JUC
  • 2025.05.23 Axure 动态面板学习笔记
  • Linux 的编辑器--vim
  • Apache 高级配置实战:从连接保持到日志分析的完整指南
  • 对WireShark 中的UDP抓包数据进行解析
  • Php JIT 使用详解
  • 从智能提效到产品赋能的架构实践
  • 【HW系列】—web常规漏洞(SQL注入与XSS)
  • RocketMQ 5.0 核心概念与架构解析
  • python | vscode | 使用uv快速创建虚拟环境(实现一个项目一个虚拟环境,方便环境管理)
  • 【排序算法】典型排序算法和python 实现
  • 前端流行框架Vue3教程:28. Vue应用
  • 【排序算法】典型排序算法 Java实现
  • 基于opencv的全景图像拼接
  • CSS传统布局与定位详解与TDK三大标签SEO优化
  • Java 8 Stream操作示例
  • Redis 3.0~8.0特性与数据结构全面解析
  • Android-flutter学习总结
  • 云迹机器人底盘调用
  • 高可用 Redis 服务架构分析与搭建
  • 网站建设小工具/白杨seo课程
  • 模板网站什么意思/抖音代运营收费详细价格
  • 那里有学做网站的/站长之家关键词挖掘
  • 建小说网站需要多少钱/怎样进行seo推广
  • 山东建设厅官方网站临沂/网上营销型网站
  • 制作ppt的网站/网络整合营销的特点有