金歌 发表于 2024-9-30 14:18:46

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

知识点:

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


概括

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

https://i-blog.csdnimg.cn/blog_migrate/db21e9efbbbad5919076c8ef40564ddd.png



创建并简单先容

模块module 


https://i-blog.csdnimg.cn/blog_migrate/5512fe8846001914a816fe8e2fa58683.png

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



UIAbility



https://i-blog.csdnimg.cn/blog_migrate/da01285e41a53f58886c0c63ba511a1c.png

https://i-blog.csdnimg.cn/blog_migrate/d58bc5829e7b34d27cf196851e84bfbd.png

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

page页面


https://i-blog.csdnimg.cn/blog_migrate/97e5453689a346a093fdc826fdf81188.png

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

实现跳转


模块间跳转:

entry跳转到自己新建的entry2模块
import { common, Want } from '@kit.AbilityKit';

@Entry
@Component
struct Index {
@State message: string = 'entry';
//获取当前上下文
private context = getContext(this) as common.UIAbilityContext;
build() {
    Row() {
      Column() {
      Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      Button('跳转entry2模块')
          .onClick(()=>{
            // context为Ability对象的成员,在非Ability对象内部调用需要
            // 将Context对象传递过去
            let wantInfo: Want = {
            //不用填
            deviceId: '', // deviceId为空表示本设备
            //应用标识符 在AppScope路径下的app.json5文件里面可以找到自己项目对应的应用标识符
            bundleName: 'com.example.firforstage',
            //填写要跳转到的模块的名字
            moduleName: 'entry2', // moduleName非必选
            //填写要跳转到的模块下的UIAbility 因为既然跳转其实在UI显示上直观切换的是page页面,而page页面也在UIAbility下
            abilityName: 'Entry2Ability',
            parameters: {
                // 自定义信息
                info: '来自EntryAbility Page_UIAbilityComponentsInteractive页面'
            },
            }
            this.context.startAbility(wantInfo)
          })
      }
      .width('100%')
    }
    .height('100%')
}
} 项目内UIAbility跳转:

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

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

https://i-blog.csdnimg.cn/blog_migrate/bfabfbd52e2ec255753480af3cd337d0.png
页面Page的跳转:

用router组件实现即可,具体可以翻阅文档OpenAtom OpenHarmony
import router from '@ohos.router';

@Entry
@Component
struct Index2Page {
@State message: string = 'Hello World';

build() {
    Row() {
      Column() {
      Button('页面跳转')
          .onClick(()=>{
          router.pushUrl({
            url:'pages/Index'
          })
          })
      }
      .width('100%')
    }
    .height('100%')
}
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【HarmonyOS】【鸿蒙应用开辟】DevEco Studio小白必看开辟项目中UI结构框架