HarmonyOS实战开发-状态管理、通过使用页面级的状态变量 和应用级的状态变量 来实现应用的状态管理。

news2024/9/23 9:29:25

介绍

本示例通过使用页面级的状态变量 和应用级的状态变量 来实现应用的状态管理。

效果预览

在这里插入图片描述
使用说明

1.点击首页中的基本类型进入对应页面,点击按钮可以更改圆形的颜色;点击查看源码可以展示基本类型功能效果的源码。

2.点击首页中的数组类型进入对应页面,点击新增元素可以添加数据;点击删除元素可以删除数据,当数据为空时,点击删除会弹出一个提示窗;点击更新数组中的某个元素,可以更改第一条数据的age属性,当数据为空时,同样会弹出一个提示窗;点击查看源码可以展示数组类型功能效果的源码。

3.点击首页中的类对象类型进入对应页面,点击更新对象可以更改对象属性和对象属性中的属性;点击更新对象属性,对象属性数据发生变化;点击更新属性中的属性,对象属性的属性数据发生变化;点击查看源码可以展示类对象类型功能效果的源码。

4.点击首页中的只更新所绑定的组件进入对应页面,点击修改标题和内容,标题和内容数据都发生变化,页面更新标题数据,内容数据不刷新;点击查看源码可以展示类对象类型功能效果的源码。

5.点击单、双向同步进入对应页面,点击设置为粉色按钮,父组件圆形颜色更新,两个子组件颜色同步更新;点击设置为蓝色按钮,子组件A圆形颜色更新,父组件和子组件B颜色不更新;点击设置为红色按钮,子组件B圆形颜色更新,父组件和子组件A圆形颜色同步更新,点击查看源码可以展示单、双向同步功能效果的源码。

6.点击子组件同步父组件的部分内容进入对应页面,点击父组件中的属性1修改数据,子组件中的属性1数据同步,点击子组件的属性1修改数据,父组件中的属性1数据同步,点击查看源码可以展示子组件同步父组件的部分内容功能效果的源码。

7.点击爷孙组件之间状态同步进入对应页面,点击爷组件下拉框组件选择颜色,下拉框文本和圆形颜色改变,孙组件下拉框文本和圆形颜色同步刷新;点击孙组件下拉框选择颜色,下拉框文本和圆形颜色改变,爷组件下拉框文本和圆形颜色同步刷新,点击查看源码可以展示爷孙组件之间状态同步功能效果的源码。

8.点击兄弟组件之间状态同步进入对应页面,点击兄弟A组件下拉框选择颜色,下拉框文本和圆形颜色改变,兄弟B组件下拉框文本和圆形颜色同步刷新,点击兄弟B组件下拉框选择颜色,下拉框文本和圆形颜色改变,兄弟A组件下拉框文本和圆形颜色同步刷新,点击查看源码可以展示爷孙组件之间状态同步功能效果的源码。

9.点击应用内全局数据与UI之间的状态同步进入对应页面,点击修改夜间模式状态和字体大小,当前夜间模式状态以及字体大小发生变化,进入Ability1和Ability2页面,夜间模式状态以及字体大小同步更新;在Ability1界面中改变夜间模式状态和字体大小,夜间模式状态和字体大小发生变化,进入到主页面和Ability2页面,夜间模式状态同步更新,字体大小不变;在Ability2界面中修改夜间模式状态,夜间模式状态发生改变,进入到主页面和Ability1页面,夜间模式状态同步,点击查看源码可以展示应用内全局数据与UI之间的状态同步功能效果的源码。

10.点击Ability内全局数据与UI之间的状态同步进入对应页面,点击修改夜间模式状态和字体大小,当前夜间模式状态以及字体大小发生变化时,进入Page1和Page2以及跨Ability不同步页面,Page1和Page2夜间模式状态以及字体大小同步更新,跨Ability页面不同步更新;在Page1界面中改变夜间模式状态和字体大小,夜间模式状态和字体大小发生变化,进入到主页面、Page2和跨Ability不同步页面,主页面和Page2夜间模式状态同步更新,但是字体不发生变化,跨Ability页面夜间模式状态和字体都不同步更新;在Page2界面中修改夜间模式状态,夜间模式状态发生改变,进入到主页面、Page1页面和跨Ability不同步页面,主页和Page1夜间模式状态同步,跨Ability页面都不同步更新;在跨Ability界面中修改夜间模式状态,夜间模式状态发生改变,进入主页、Page1和Page2页面,夜间模式状态不同步,点击查看源码可以展示Ability内全局数据与UI之间的状态同步功能效果的源码。

工程目录

entry/src/main/ets/
|---commoncomponents
|   |---CodeView.ets                                          // 代码展示组件
|   |---TitleBar.ets                                          // 标题组件
|   |---TitleBarDark.ets                                      // 夜间模式下标题组件
|   |---ViewCodeText.ets                                      // 查看源码文本组件
|---entryability
|   |---EntryAbility.ts     
|---outofsyncability                           
|   |---OutOfSyncAbility.ts              
|---MainAbility
|---pages
|   |---applylevelstagemanagement                             // 应用级状态管理
|   |   |---abilityglobaldatasync                             // Ability内全局数据与UI之间的状态同步             
|   |   |   |---AbilityGlobalDataSync.ets                    
|   |   |   |---AbilityGlobalDataSyncCode.ets                 // Ability内全局数据与UI之间的状态同步主页
|   |   |   |---AbilityOutOfSyncPage.ets                      // 跨Ability页面
|   |   |   |---LocalStorageLinkPage.ets                      // 展示LocalStorageLink效果页面
|   |   |   |---LocalStoragePropPage.ets                      // 展示LocalStorageProp效果页面
|   |   |---applyglobaldatasync                               // 应用内全局数据与UI之间的状态同步
|   |   |   |---ApplyGlobalDataSync.ets
|   |   |   |---ApplyGlobalDataSyncCode.ets                   // 应用内全局数据与UI之间的状态同步主页
|   |   |   |---StorageLinkAbilityPage.ets                    // 展示StorageLinkAbility页面
|   |   |   |---StoragePropAbilityPage.ets                    // 展示StoragePropAbility页面
|   |   |---model             
|   |   |   |---AbilityConfigType.ets                         // Ability参数类型
|   |   |   |---CommonMethods.ets                             // 公用函数启动Ability
|   |---home             
|   |   |---data             
|   |   |   |---HomeData.ets                                  // 首页数据
|   |   |---model             
|   |   |   |---CategoricalDataType.ets                       // 层级类型
|   |   |---Home.ets                                          // 首页
|   |   |---TabContentNavigation.ets                          // Tab内容区组件
|   |---pagelevelstagemanagement                              // 页面级状态管理
|   |   |---multicompomentssync                               // 自定义组件之间的状态同步
|   |   |   |---brothercomponentssync                         // 兄弟组件之间状态同步 
|   |   |   |   |---BrotherComponentSync.ets                 
|   |   |   |   |---BrotherComponentSyncCode.ets              // 兄弟组件之间状态同步首页
|   |   |   |   |---ConsumeBrotherOneComponent.ets            // @Consume状态变量组件
|   |   |   |   |---ConsumeBrotherTwoComponent.ets            // @Consume状态变量组件
|   |   |   |   |---LinkBrotherOneComponent.ets               // @Link状态变量组件
|   |   |   |   |---LinkBrotherTwoComponent.ets               // @Link状态变量组件
|   |   |   |   |---ProvideAndConsumeSync.ets                 // @Privide状态变量组件
|   |   |   |   |---StateAndLinkSync.ets                      // @State状态变量组件
|   |   |   |---data     
|   |   |   |   |---ColorData.ets                             // 颜色数据
|   |   |   |---deepnestcomponentssync                        // 爷孙组件嵌套
|   |   |   |   |---ConsumeDescendentComponent.ets            // @Consume孙组件
|   |   |   |   |---DeepNestComponentsSync.ets                 
|   |   |   |   |---DeepNestComponentsSyncCode.ets            // 爷孙组件首页       
|   |   |   |   |---LinkDescendentComponent.ets               // @Link孙组件
|   |   |   |   |---ProvideAndConsumeSync.ets                 // @Provide爷组件
|   |   |   |   |---StateAndLinkSync.ets                      // @State爷组件
|   |   |   |---model                                
|   |   |   |   |---ColorType.ets                             // 颜色数据类型
|   |   |   |---parentchildcomponentsync                      // 父子组件之间状态同步
|   |   |   |   |---parentchildpartialcontentsync             // 子组件同步父组件部分内容
|   |   |   |   |   |---ObjectLinkComponent.ets               // @ObjectLink子组件
|   |   |   |   |   |---ParentChildPartialContentSync.ets     
|   |   |   |   |   |---ParentChildPartialContentSyncCode.ets // @Observer父组件
|   |   |   |   |---uniandbidirectionsync                     // 单、双向同步
|   |   |   |   |   |---ComponentLink.ets                     // Link组件
|   |   |   |   |   |---ComponentProp.ets                     // Prop组件
|   |   |   |   |   |---UniAndBidirectionSync.ets
|   |   |   |   |   |---UniAndBidirectionSyncCode.ets         // @State父组件
|   |   |---singlecomponentstatevariables                     // 单组件的状态同步
|   |   |   |---decoratedobjecttype                           // 修饰的对象类型
|   |   |   |   |---arraytype                                 // 数组类型
|   |   |   |   |   |---ArrayType.ets
|   |   |   |   |   |---ArrayTypeCode.ets                     // 数组类型源码页
|   |   |   |   |---basetype                                  // 基本类型
|   |   |   |   |   |---BaseType.ets
|   |   |   |   |   |---BaseTypeCode.ets                      // 基本类型源码页
|   |   |   |   |---classobjecttype                           // 对象类型
|   |   |   |   |   |---ClassObjectType.ets
|   |   |   |   |   |---ClassObjectTypeCode.ets               // 对象类型源码页
|   |   |   |---updatetactics                                 // 更新原理
|   |   |   |   |---updateboundcomponent                      // 只更新所绑定的组件
|   |   |   |   |   |---UpdateBoundComponent.ets               
|   |   |   |   |   |---UpdateBoundComponentCode.ets          // 只更新所绑定的组件源码
|---storagelinkability              
|   |---StorageLinkAbility.ts
|---storagepropability
|   |---StoragePropAbility.ts
|---utils
|   |---Logger.ts                                             // 日志文件
|   |---ResourceUtils.ts                                      // 资源转换方法
|   |---StartAbilityUtils.ts                                  // 启动Ability方法

具体实现

  • 查看源码:通过private controller: webView.WebviewController = newwebView.WebviewController()声明一个状态变量,使用this.controller.loadUrl(url)来打开web页面。
  • 基本类型:使用@State声明一个Resource类型的circleColor状态变量,然后通过点击事件根据circleColor的id来改变圆形颜色。
  • 数组类型:使用@State声明一个数组arrayTypeData状态变量,数据元素为newArrayDataType(),通过arrayTypeData.push()方法来新增元素数据,arrayTypeData.splice()方法删除元素,更新指定newArrayDataType()来实现更新某一个元素数据。
  • 类对象类型:使用@Observerd声明一个属性类ChildClass,然后声明一个对象类ParentClass,并将对象的其中一个属性类型设置为属性类,使用@State声明一个类对象数据状态变量classObjectData,更新对象可以通过newParentClass()生成一个对象并赋值来实现,更新对象属性可以通过this.classOjectData.attribute++来实现,更新对象属性的属性可以通过@ObjectLink声明一个状态变量并更新此状态变量的对象属性来实现。
  • 只更新所绑定的组件:使用@State和Private声明一个titleName和content状态变量,通过点击事件修改这两个状态变量。
  • 单、双向同步:父组件使用@State声明一个状态变量circleColor并作为参数给子组件A和子组件B,子组件A通过@Prop接收,子组件B通过@Link来接收,通过点击事件中的this.circleColor= COLOR_DATA.PINK来更改颜色。
  • 子组件同步父组件部分内容:父组件中使用@State声明一个数组状态变量parentData,@Observed声明数组元素的类,父组件向子组件传递parentData的某一个元素数据,子组件通过@ObjectLink来接收,父组件通过this.childObject.attributeType= value来修改元素数据,子组件同步更新,子组件同样通过this.childObjectData.attributeType = value来修改子组件的数据,父组件同步更新。
  • 爷孙组件之间状态同步:爷组件通过@State声明一个控制圆形颜色的状态变量circleColor和控制当前Select组件Index的状态变量currentSelectIndex,逐层传递给子组件给孙组件,通过@Link接收,爷组件通过onSelect事件来修改circleColor和currentSelectIndex,孙组件同样通过onSelect事件来修改circleColor和currentSelectIndex,然后爷组件通过@Provide声明一个控制圆形颜色的状态变量consumeCircleColor和控制当前Select组件Index的状态变量currentSelectIndex,孙组件通过@Consume来接收,爷组件通过onSelect事件来修改circleColor和currentSelectIndex,孙组件同样通过onSelect事件来修改circleColor和currentSelectIndex。
  • 兄弟组件之间状态同步:父组件通过@State声明一个控制圆形颜色的状态变量circleColor和控制当前Select组件Index的状态变量currentSelectIndex,传递给子组件A和子组件B,两者通过@Link接收,子组件A通过onSelect事件来修改circleColor和currentSelectIndex,子组件B同样通过onSelect事件来修改circleColor和currentSelectIndex;然后父组件通过@Provide声明一个控制圆形颜色的状态变量consumeCircleColor和控制当前Select组件Index的状态变量currentSelectIndex,子组件A和子组件B通过@Consume来接收,子组件A通过onSelect事件来修改circleColor和currentSelectIndex,,子组件B同样通过onSelect事件来修改circleColor和currentSelectIndex。
  • 应用内全局数据与UI之间的状态同步:主页、Ability1页面和Ability2页面通过@StorageLink声明一个控制夜间模式的状态变量currentModelStatus,在主页面通过onChange事件中的AppStorage.SetOrCreate(‘currentModelStatus’,this.currentModelStatus)来更改夜间模式的状态,,在Ability1页面和Ability页面通过onClick事件中的this.currentModelStatus= !this.currentModelStatus,主页和Ability2页面通过@StorageLink声明一个控制字体大小的状态变量contentFontSize,Ability1页面通过@StorageProp声明一个控制字体大小的状态变量contentFontSize,主页使用onChange事件中的this.contentFontSize= value和AppStorage.SetOrCreate(‘contentFontSize’, this.contentFontSize)来更改内容字体的大小,Ability1通过onChange事件中的this.contentFontSize= value来修改内容字体大小。
  • Ability内全局数据与UI之间的状态同步:在Entry当中声明一个storage,并通过this.storage.setOrCreate(‘currentModelStatus’,true)和this.storage.setOrCreate(‘contentFontSize’,18)来设置夜间模式状态变量currentModelStatus和字体大小状态变量contentFontSize,然后主页、Page1页面、Page2页面和跨Ability页面通过@LocalStorageLink声明一个控制夜间模式的状态变量currentModelStatus,在主页面通过onChange事件中的this.currentModelStatus= isOn来更改夜间模式的状态,Page1页面、Page2页面和跨Ability页面通过onClick事件中的this.currentModelStatus= !this.currentModelStatus来更改夜间模式的状态,主页、Page1页面和跨Ability页面通过@LocalStorageLink声明一个控制字体大小的状态变量contentFontSize,Page1页面通过@LocalStorageProp声明一个控制字体大小的状态变量contentFontSize,主页使用onChange事件中的this.contentFontSize= value和AppStorage.SetOrCreate(‘contentFontSize’, this.contentFontSize)来更改内容字体的大小,Page2通过onChange事件中的this.contentFontSize= value来修改内容字体大小。

相关权限

不涉及。

依赖

不涉及。

约束与限制

1.本示例仅支持标准系统上运行。

2.本示例已适配API version 9版本SDK,版本号:4.0.5.2。

3.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/UI/StateManagement/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程

在这里插入图片描述
在这里插入图片描述

鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

一、入门必看

1.应用开发导读(ArkTS)
2………
在这里插入图片描述

二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…

在这里插入图片描述

三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

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

在这里插入图片描述

四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

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

五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

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

更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1596452.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

密码知识汇总

文章目录 密码学知识CIA三要素机密性(Confidentiality)完整性(Integrity)可用性(Availability) 非安全信道的风险以及应对措施风险应对措施使用加密技术(防窃…

【第十五届】蓝桥杯省赛C++b组

今年的蓝桥杯省赛已经结束了,与以往不同,今年又回到了8道题,而22,23年出现了10道题 大家觉得难度怎么样,欢迎进来讨论,博主今年没参加哈,大家聊聊,我听听大家的意见和看法哈 试题A:…

【Labelimg标注使用预定义标签】

Labelimg标注使用预定义标签 安装 在环境中pip install labelimg 打开图片文件夹 把预定义标签放在保存文件夹里 选择保存文件夹地址

便宜的dv ssl证书推荐

SSL数字证书是维护互联网安全的重要手段之一。SSL数字证书主要目的是保护客户端和服务器数据传输的安全,防止网站数据在传输过程中被窃取或者篡改。其次,SSL数字证书能够验证网站的身份和合法性,防止用户访问到假冒或钓鱼网站。此外&#xff…

2.MMD关键帧及镜头自定义操作

1. 关键帧操作 如何控制关节移动 在骨骼操作界面打开选择 鼠标左键点击左腿根部的骨骼节点,可以通过右边local的六个键来旋转骨骼 目前红色点圆周外有一个黄色的圈 这是一个微调的动作,它会影响这单个关节而不会影响整个大腿 可以看到大腿微微抬起…

剑指offer之牛客与力扣——前者分类题单中的题目在后者的链接

搜索 [4.12完成] JZ1 LCR 172. 统计目标成绩的出现次数 JZ3 153. 寻找旋转排序数组中的最小值 JZ4 LCR 014. 字符串的排列 JZ5 LCR 163. 找到第 k 位数字 400 动态规划 [4.15完成] JZ2 LCR 161. 连续天数的最高销售额 53 JZ3 LCR 127. 跳跃训练 70 JZ4 LCR 126. 斐波那契…

游戏开发者必看:Perforce Helix Core 的功能特点及游戏开发中的常用工具、典型用例介绍

「不出海,即出局」随着全球化的加速发展,企业出海已成燎原之势。日前,2024 亚马逊云科技出海全球化论坛在深圳成功举办。龙智携手 Perforce 亮相游戏行业展区,展示了Perforce Helix Core如何与主流游戏开发引擎高效集成&#xff0…

自己开发的App如何上架,详细解读App上架操作流程

对于企业或个人开发的App,上架是必经之路。然而,许多人不清楚如何进行App上架。工信部在2023年规定,App必须备案才能上架。那么,让我们一起了解App上架流程吧。 1. 准备上架所需材料 在上架App之前,需要准备应用图标…

如何在OceanBase v4.2 中快速生成随机数据

在使用传统数据库如 MySQL 和 Oracle 时,由于缺乏多样化的随机数据生成方案,或者实现成本过高,构造随机数据的开发成本受到了影响。OceanBase在老版本中虽然有相应的解决方案,但语法复杂和性能较差等问题仍然存在。 现在&#xf…

医学图像分割入门-UNet理论与实践

U-Net: 用于图像分割的深度学习网络 引言 在计算机视觉领域,图像分割是一项重要的任务,旨在将图像中的每个像素分配到预定义的类别或区域。传统的图像分割方法通常基于手工设计的特征和启发式算法,但随着深度学习的发展,基于深度…

负载均衡(理解/解析)

目录 什么是负载均衡 应用场景 网络服务和应用: 云计算和虚拟化: 负载均衡分类 硬件负载均衡器 软件负载均衡器 部署方式 硬件部署: 软件部署: 云部署: 路由模式: 算法实现 轮询法(Round R…

java学习——消息队列MQ

上一篇传送门:点我 目前只学习了RabbitMQ,后续学习了其他MQ后会继续补充。 MQ有了解过吗?说说什么是MQ? MQ是Message Queue的缩写,也就是消息队列的意思。它是一种应用程序对应用程序的通信方法,使得应用…

Apache Zeppelin 命令执行漏洞复现(CVE-2024-31861)

0x01 产品简介 Apache Zeppelin 是一个让交互式数据分析变得可行的基于网页的开源框架,Zeppelin提供了数据分析、数据可视化等功能, 0x02 漏洞概述 Apache Zeppelin 中代码生成控制不当(“代码注入”)漏洞。攻击者可以使用 She…

Springboot集成Ehcache3实现本地缓存

如果只需要在单个应用程序中使用本地缓存&#xff0c;则可以选择Ehcache&#xff1b;它支持内存和磁盘存储&#xff0c;这里不以注解方式演示&#xff0c;通过自己实现缓存管理者灵活控制缓存的读写&#xff1b; 1、引入相关依赖 <!-- ehcache3集成start --><depende…

蓝色系UX/UI设计求职面试作品集模版figmasketchPPT可编辑源文件

页面数量: 20P 页面尺寸:1920*1080PX 交付格式&#xff1a;figma、sketch、PPT 赠送文件&#xff1a;24款高质量样机&#xff08;PSD格式&#xff09; 该作品集虽然只有20页&#xff0c;但可根据需求复制作品集里已有的页面作为模版来扩展您的设计项目 该作品集模版可编辑可修…

MySQL (索引 事务)

索引 索引是一种特殊的文件, 包含着对于数据库里所有数据的引用指针. 可以对表中的一列或多列创建索引, 并指定索引类型, 各类索引有各自的数据结构实现 索引的目的在于 快速定位, 检索数据 索引可以提高 查找 效率, 但会增加 增删改 的开销 索引创建好之后, 每次调用 查询操作…

探索顶级短视频素材库:多样化选择助力创作

在数字创作的浪潮中&#xff0c;寻找优质的短视频素材库是每位视频制作者的必经之路。多种短视频素材库有哪些&#xff1f;这里为您介绍一系列精选的素材库&#xff0c;它们不仅丰富多样&#xff0c;而且高质量&#xff0c;能极大地提升您的视频创作效率和质量。 1.蛙学网 蛙学…

华火电焰灶全国经销商加盟_优势怎么样_费用多少_华焰天下

随着科技的不断进步&#xff0c;电焰灶作为现代厨房的重要设备&#xff0c;其市场需求持续增长。华火电焰灶&#xff0c;凭借其独特的技术优势和广泛的市场前景&#xff0c;吸引了众多投资者的目光。本文将从华火电焰灶的优势、加盟费用以及华焰天下的机遇三个方面&#xff0c;…

【gdb调试】在ubuntu环境使用gdb调试一棵四层二叉树的数据结构详解

目录 &#x1f31e;1. 整体思路 &#x1f31e;2. 准备内容 &#x1f33c;2.1 配置.c文件 &#x1f33c;2.2 准备测试程序 &#x1f33c;2.3 GDB调试基础 &#x1f31e;3. GDB调试四层二叉树 &#x1f33c;3.1 测试程序分析 &#x1f33c;3.2 gdb分析 &#x1f33b;1. …

OpenHarmony轻量系统开发【3】代码编译和烧录

3.1源码目录 下载完代码后&#xff0c;大家可以进入代码目录&#xff1a; 这里重点介绍几个比较重要的文件夹&#xff1a; 1 vendor文件夹 该文件夹存放的是厂商相关的配置&#xff0c;包括组件配置、HDF相关配置&#xff0c;代码目录如下&#xff1a; 可以看到有hisilicon文…