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

纯血鸿蒙APP实战开发——Navigation页面跳转对象传递案例

介绍

本示例主要介绍在使用Navigation实现页面跳转时,如何在跳转页面得到转入页面传的类对象的方法。实现过程中使用了第三方插件class-transformer,传递对象经过该插件的plainToClass方法转换后可以直接调用对象的方法,

效果图预览

使用说明

  1. 从首页进入本页面时,会传递一个类对象UserBookingInfo。点击“换个座位”按钮会调用该类对象的generateRandSeatNo()方法,该方法随机生成一个座位号。

实现思路

  1. 在oh-package.json5中添加第三方插件class-transformer的依赖

    "dependencies": {"class-transformer": "^0.5.1"
    }
    
  2. 在使用第三方插件class-transformer的页面导入class-transformer库。

    import { plainToClass } from "class-transformer";
    
  3. 定义要传递的类

    // 定义一个用户类
    export class UserBookingInfo {userName: string = '张山'; // 姓名userID: string = '332045199008120045'; // 证件号date: string = '1月1日' // 日期seatNo: number = 0; // 座位号price: number = 200; // 价格constructor(name: string, id: string, date: string) {this.userName = name;this.userID = id;this.date = date;}// 获取随机座位号generateRandSeatNo(): number {this.seatNo = Math.floor(Math.random() * (200 - 1) + 1);  // 获取200以内随机号return this.seatNo;}
    }
    
  4. 将传递过来的参数通过class-transformer的plainToClass方法转化为类对象。

    let bookingString:string = this.pageStack.getParamByName('NavigationParameterTransfer')[0] as string;
    // 转化成普通对象
    let userBookingTmp: UserBookingInfo = JSON.parse(bookingString);
    // TODO:知识点:通过调用第三方插件class-transformer的plainToClass方法转换成类对象, 不进行转换直接使用userBookingTmp调用getUserInfo方法会造成crash
    this.userBooking = plainToClass(UserBookingInfo, userBookingTmp);
    

高性能知识点

不涉及

工程结构&模块类型

navigationparametertransfer                        // har类型
|---src\main\ets\components
|   |---UserBookingInfo.ets                        // 要传递的类对象
|---src\main\ets\view
|   |---NavigationParameterTransferView.ets        // 视图层-Navigation主页面

模块依赖

  1. 本实例依赖class-transformer三方库。

参考资料

class-transformer三方库

鸿蒙全栈开发全新学习指南

也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线【包含了大厂APP实战项目开发】

本路线共分为四个阶段:

第一阶段:鸿蒙初中级开发必备技能

在这里插入图片描述

第二阶段:鸿蒙南北双向高工技能基础:gitee.com/MNxiaona/733GH

第三阶段:应用开发中高级就业技术

第四阶段:全网首发-工业级南向设备开发就业技术:gitee.com/MNxiaona/733GH

《鸿蒙 (Harmony OS)开发学习手册》(共计892页)

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

开发基础知识:gitee.com/MNxiaona/733GH

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

基于ArkTS 开发

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

鸿蒙开发面试真题(含参考答案):gitee.com/MNxiaona/733GH

鸿蒙入门教学视频:

美团APP实战开发教学:gitee.com/MNxiaona/733GH

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新学习资源,请移步前往小编:gitee.com/MNxiaona/733GH

http://www.lryc.cn/news/349751.html

相关文章:

  • Windows C++ 读取、修改配置文件.ini
  • 物联网D3——按键控制LED、光敏传感蜂鸣器
  • Spring初学入门(跟学笔记)
  • 二进制部署k8s---下篇
  • 基于Sentinel-1遥感数据的水体提取
  • C++自定义头文件使用(函数和类)
  • 消息队列选型
  • ubuntu在conda环境中使用 pip install -r requirements.txt但是没有安装在虚拟环境中
  • 力扣127.单词接龙讲解
  • latex笔记
  • 秋招算法——AcWing101——拦截导弹
  • IDEA不能创建新项目和新模块
  • WebRTC 的核心:RTCPeerConnection
  • LeetCode hot100-39-N
  • NumPy常用操作
  • 学习笔记——字符串(单模+多模+练习题)
  • DOT + graphviz 轻松画图
  • 使用Vue调用ColaAI Plus大模型,实现聊天(简陋版)
  • Unity使用sherpa-onnx实现离线语音合成
  • Elasticsearch入门基础和集群部署
  • 12、24年--信息系统治理——IT治理
  • Electron学习笔记(三)
  • 【Redis】Redis键值存储
  • C++系统编程篇——Linux初识(系统安装、权限管理,权限设置)
  • No Cortex-M SW Device Found
  • 提升写作效率的秘密武器:一个资深编辑的AI写作体验
  • Python sort() 和 sorted() 的区别应用实例详解
  • 七、Redis三种高级数据结构-HyperLogLog
  • 2024年【金属非金属矿山(露天矿山)安全管理人员】模拟考试题库及金属非金属矿山(露天矿山)安全管理人员作业模拟考试
  • 网站DDoS攻击应对策略:全面防护与恢复指南