写点什么

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

作者:幽蓝计划
  • 2025-05-25
    山东
  • 本文字数:938 字

    阅读完需:约 3 分钟

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

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


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



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


package ohos_app_cangjie_entry.pageimport ohos.base.*import ohos.component.*import ohos.state_manage.*import ohos.state_macro_manage.*@Entry@Componentpublic 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 语言 ##仓颉 ##购物 #

发布于: 刚刚阅读数: 4
用户头像

幽蓝计划

关注

还未添加个人签名 2025-05-09 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙仓颉开发语言实战教程:页面跳转和传参_幽蓝计划_InfoQ写作社区