【HarmonyOS】【鸿蒙应用开辟】DevEco Studio小白必看开辟项目中UI结构框架 ...

金歌  论坛元老 | 2024-9-30 14:18:46 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1056|帖子 1056|积分 3168

知识点:

模块module、UIAbility、page页面三者的创建 跳转 结构关系


概括

在鸿蒙开辟中,一个项目中可以存在多个模块,然后会在模块中定义UIAbility,并在UIAbility中创建和配置Page页面。Page页面则通过组合和配置不同的组件来构建复杂的用户界面,实现与用户的交互。这种结构框架使得鸿蒙的UI开辟更加灵活和高效。





创建并简单先容

模块module 




项目创建的时间会默认创建一个模块,但是也可以别的创建多个模块。像entry、entry2就是两个不同的模块,模块是项目下最基本的单元,在手机APP中,不同的模块在APP的后台可以独立存在,同一个项目中,只有模块可以在手机后台互相独立存在。如下所示




UIAbility







UIAbility在创建项目时也默认创建了,其作为一种界面本领,在同一个模块内,不同的UIAbility可以共享相同的Page页面。这种计划方式允许开辟者在不重复编写相同页面代码的情况下,实现多个界面本领的复用。这极大地减少了开辟成本,提高了开辟服从。

page页面




page是在UI直接展示的界面,其也是最底子最直观展示的部分。

实现跳转


模块间跳转:

entry跳转到自己新建的entry2模块
  1. import { common, Want } from '@kit.AbilityKit';
  2. @Entry
  3. @Component
  4. struct Index {
  5.   @State message: string = 'entry';
  6.   //获取当前上下文
  7.   private context = getContext(this) as common.UIAbilityContext;
  8.   build() {
  9.     Row() {
  10.       Column() {
  11.         Text(this.message)
  12.           .fontSize(50)
  13.           .fontWeight(FontWeight.Bold)
  14.         Button('跳转entry2模块')
  15.           .onClick(()=>{
  16.             // context为Ability对象的成员,在非Ability对象内部调用需要
  17.             // 将Context对象传递过去
  18.             let wantInfo: Want = {
  19.               //不用填
  20.               deviceId: '', // deviceId为空表示本设备
  21.               //应用标识符 在AppScope路径下的app.json5文件里面可以找到自己项目对应的应用标识符
  22.               bundleName: 'com.example.firforstage',
  23.               //填写要跳转到的模块的名字
  24.               moduleName: 'entry2', // moduleName非必选
  25.               //填写要跳转到的模块下的UIAbility 因为既然跳转其实在UI显示上直观切换的是page页面,而page页面也在UIAbility下
  26.               abilityName: 'Entry2Ability',
  27.               parameters: {
  28.                 // 自定义信息
  29.                 info: '来自EntryAbility Page_UIAbilityComponentsInteractive页面'
  30.               },
  31.             }
  32.             this.context.startAbility(wantInfo)
  33.           })
  34.       }
  35.       .width('100%')
  36.     }
  37.     .height('100%')
  38.   }
  39. }
复制代码
项目内UIAbility跳转:

在项目内每个UIAbility有自己的默认打开页面,可以在如下每个UIAbility中对应的文件中找到

跳转方法与模块间跳转相同,只不外没有模块的变化,只需要填写UIAbility的变化即可


页面Page的跳转:

用router组件实现即可,具体可以翻阅文档OpenAtom OpenHarmony
  1. import router from '@ohos.router';
  2. @Entry
  3. @Component
  4. struct Index2Page {
  5.   @State message: string = 'Hello World';
  6.   build() {
  7.     Row() {
  8.       Column() {
  9.         Button('页面跳转')
  10.           .onClick(()=>{
  11.           router.pushUrl({
  12.             url:'pages/Index'
  13.           })
  14.           })
  15.       }
  16.       .width('100%')
  17.     }
  18.     .height('100%')
  19.   }
  20. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表