马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
鸿蒙开辟入门教程
一、技能简介
鸿蒙利用体系(HarmonyOS)是面向万物互联期间的全场景分布式利用体系,具备分布式软总线、分布式数据管理、分布式使命调治等核心本事,能让装备间实现无缝毗连与协同,为用户提供同一、流畅的交互体验。
开辟语言方面,ArkTS 是专门为鸿蒙开辟计划的语言,联合了 TypeScript 的范例体系与声明式编程范式,提升了开辟服从和代码的可维护性。值得一提的是功能写法也和前端VUE框架颇为相似,信赖在我国具有大基数的前端开辟者会很容易上手吧
二、工具安装
- 下载 DevEco Studio
访问 华为开辟者官网,在官网找到 DevEco Studio 的下载链接,依据自身利用体系(Windows、Mac 或 Linux)选择符合版本下载。
- 安装 DevEco Studio
运行下载好的安装步调,按照提示完成安装。安装过程中可按需选择安装路径和组件。
- 设置 SDK
打开 DevEco Studio,选择 “Tools” -> “SDK Manager”,在 “SDK Platforms” 中选择所需的鸿蒙 SDK 版本举行下载安装;在 “SDK Tools” 中安装须要工具,如 Build Tools、Platform - Tools 等。
- 创建项目
打开 DevEco Studio,点击 “File” -> “New” -> “New Project”,选择基于 ArkTS 的项目模板(如 “Empty Ability (ArkTS)”),点击 “Next”,设置项目信息(项目名称、生存位置、包名等),末了点击 “Finish” 完成项目创建。
三、核心单元先容
- Ability
Ability 是鸿蒙应用的根本功能单元,负责处理惩罚应用的各种本事和业务逻辑。分为 FA(Feature Ability)和 PA(Particle Ability)。
FA(Feature Ability)
用于实现具有用户界面的功能,雷同于 Android 中的 Activity。通常用于展示界面、与用户交互等。
- // 在 pages 目录下创建 Index.ets 文件
- @Entry
- @Component
- struct Index {
- build() {
- Column({ space: 50 }) {
- Text('This is a Feature Ability page.')
- .fontSize(30)
- .width('100%')
- .textAlign(TextAlign.Center)
- }
- .width('100%')
- }
- }
复制代码 PA(Particle Ability)
用于实现无用户界面的功能,如配景服务、数据处理惩罚等,雷同于 Android 中的 Service。- // 在 service 目录下创建 MyService.ets 文件
- @Service
- @Component
- struct MyService {
- onStart() {
- console.log('MyService started.')
- // 在这里可以执行后台任务,如数据同步、定时任务等
- }
- onStop() {
- console.log('MyService stopped.')
- }
- }
复制代码 2. Module
Module 是对 Ability 的进一步封装,包罗多个 Ability 以及干系的资源和设置信息,便于对应勤奋能举行模块化管理。在 config.json 中可以对 Module 举行设置,比方指定 Module 的名称、包罗的 Ability 等。- {
- "module": {
- "name": "entry",
- "reqPermissions": [
- {
- "name": "ohos.permission.INTERNET",
- "reason": "Need internet access to fetch data",
- "usedScene": {
- "ability": [
- "com.example.myapp.MainAbility"
- ],
- "when": "always"
- }
- }
- ],
- "abilities": [
- {
- "name": "com.example.myapp.MainAbility",
- "icon": "$media:icon",
- "label": "$string:mainability_label",
- "srcEntrance": "pages/Index.ets",
- "description": "$string:mainability_description",
- "type": "page",
- "launchType": "standard"
- },
- {
- "name": "com.example.myapp.MyService",
- "srcEntrance": "service/MyService.ets",
- "description": "$string:myservice_description",
- "type": "service"
- }
- ]
- }
- }
复制代码 四、告急 UI 组件
- @Entry
- @Component
- struct Index {
- build() {
- Text('Hello, HarmonyOS!')
- .fontSize(30)
- .fontWeight(FontWeight.Bold)
- .textAlign(TextAlign.Center)
- }
- }
复制代码 2. Button
用于触发利用。- @Entry
- @Component
- struct Index {
- @State clickCount: number = 0
- build() {
- Column({ space: 50 }) {
- Text(`Button clicked ${this.clickCount} times.`)
- .fontSize(20)
- .width('100%')
- .textAlign(TextAlign.Center)
- Button('Click me')
- .onClick(() => {
- this.clickCount++
- })
- .width('50%')
- .margin({ left: '25%' })
- }
- .width('100%')
- }
- }
复制代码 3. Image
用于表现图片。- @Entry
- @Component
- struct Index {
- build() {
- Image($r('app.media.sample_image'))
- .width(200)
- .height(200)
- .objectFit(ImageFit.Contain)
- .margin({ top: 100 })
- .width('100%')
- .imageAlign(ImageAlign.Center)
- }
- }
复制代码 4. Column 和 Row
用于结构组件,Column 实现垂直结构,Row 实现程度结构。- @Entry
- @Component
- struct Index {
- build() {
- Column({ space: 20 }) {
- Text('Vertical Item 1')
- Text('Vertical Item 2')
- Row({ space: 20 }) {
- Text('Horizontal Item 1')
- Text('Horizontal Item 2')
- }
- }
- .width('100%')
- }
- }
复制代码 五、常勤奋能
1. 条件渲染
根据条件决定是否渲染组件。- @Entry
- @Component
- struct Index {
- @State showText: boolean = false
- build() {
- Column({ space: 50 }) {
- Button(this.showText? 'Hide Text' : 'Show Text')
- .onClick(() => {
- this.showText =!this.showText
- })
- .width('50%')
- .margin({ left: '25%' })
- if (this.showText) {
- Text('This text is conditionally rendered.')
- .fontSize(20)
- .width('100%')
- .textAlign(TextAlign.Center)
- }
- }
- .width('100%')
- }
- }
复制代码 2. 列表渲染
使用 ForEach 组件渲染列表数据。- @Entry
- @Component
- struct Index {
- private fruits: string[] = ['Apple', 'Banana', 'Cherry']
- build() {
- Column({ space: 20 }) {
- ForEach(this.fruits, (fruit) => {
- Text(fruit)
- .fontSize(20)
- .width('100%')
- .textAlign(TextAlign.Center)
- }, (fruit) => fruit)
- }
- .width('100%')
- }
- }
复制代码 3. 页面导航
在差别页面间举行导航。- // 在 pages 目录下创建 SecondPage.ets 文件
- @Component
- struct SecondPage {
- build() {
- Column({ space: 50 }) {
- Text('This is the second page.')
- .fontSize(30)
- .width('100%')
- .textAlign(TextAlign.Center)
- Button('Go back to first page')
- .onClick(() => {
- router.back()
- })
- .width('50%')
- .margin({ left: '25%' })
- }
- .width('100%')
- }
- }
- // 在 Index.ets 中添加导航按钮
- @Entry
- @Component
- struct Index {
- build() {
- Column({ space: 50 }) {
- Text('This is the first page.')
- .fontSize(30)
- .width('100%')
- .textAlign(TextAlign.Center)
- Button('Go to second page')
- .onClick(() => {
- router.pushUrl({ url: 'pages/SecondPage' })
- })
- .width('50%')
- .margin({ left: '25%' })
- }
- .width('100%')
- }
- }
复制代码 六、常用函数
1. onClick
用于绑定按钮等组件的点击变乱。- @Entry
- @Component
- struct Index {
- @State message: string = 'Button not clicked'
- build() {
- Button('Click me')
- .onClick(() => {
- this.message = 'Button clicked!'
- })
- Text(this.message)
- .fontSize(20)
- .width('100%')
- .textAlign(TextAlign.Center)
- }
- }
复制代码 2. onChange
用于绑定输入框等组件的值变革变乱。- @Entry
- @Component
- struct Index {
- @State inputValue: string = ''
- build() {
- Column({ space: 20 }) {
- Input({ placeholder: 'Enter text' })
- .onChange((value: string) => {
- this.inputValue = value
- })
- Text(`You entered: ${this.inputValue}`)
- .fontSize(20)
- .width('100%')
- .textAlign(TextAlign.Center)
- }
- .width('100%')
- }
- }
复制代码 3. router.pushUrl 和 router.back
用于页面导航,router.pushUrl 用于跳转到指定页面,router.back 用于返回上一页,如前面页面导航示例所示。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|