论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙HarmonyOS实战:状态管理和传值
鸿蒙HarmonyOS实战:状态管理和传值
王柳
金牌会员
|
2024-8-9 03:03:02
|
显示全部楼层
|
阅读模式
楼主
主题
539
|
帖子
539
|
积分
1617
状态管理
@State
@State是一个装饰器,是用来存放数据的,比力好理解
由@State的数据来举行状态驱动视图更新
代码很简单
@State count: number = 0;
复制代码
必要注意的是@State初始化的数据必须赋值
这里我们讨论简单用法,至于复杂的用法可以到项目中先容
传值
关于传值,官网给了一张图片,我们目前只关注组件的传值即可
通过这个图我们观察出,有父母,有孩子,有子孙,这体现出了组件之间的层级关系,有层级了才能体现出传递性
同时我们还发现,有的箭头是单向的,有的是双向的,所以证明父-子-孙之间是可以相互举行数据传递的,此中就会有单层传递,也可以跨层传递,所以就会有不同的装饰器来完成对应的功能
实在根据这个图,有别的框架学习经验的朋侪已经大概了解了,也能看出来哪个是单向的装饰器,哪个是双向的,以及哪个是跨级的了
那咱们挨个先容吧~
@Prop、@Link装饰器
@Prop装饰器用来举行父子组件的通信,并且是单向的传递
但是这里必要注意的是,用@Prop装饰的数据是不可以举行赋值的
@Entry
@Component
struct Demo {
@State message: string = 'shaka'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button('改变子组件数据')
.width(200)
.height(200)
.onClick(()=>{
this.message = 'virgo'
})
Son({name:this.message})
}
.width('100%')
}
.height('100%')
}
}
@Component //子组件
struct Son {
@Prop name:string //不能进行赋值
build() {
Row(){
Text(this.name)
.fontSize(50)
Button('改变父组件数据')
.width(200)
.height(200)
.backgroundColor(Color.Orange)
.onClick(()=>{
this.name = 'hhh'
})
}
}
}
复制代码
此时数据只能由父组件传递给子组件,不能从子组件传递给父组件
那么我们的@Link装饰器则是可以举行双向传递
我们只必要把之前代码的@Prop改成@Link即可
这回可以举行双向通信了
@Provide装饰器和@Consume装饰器
父子通信完事了,我们可以举行跨级别通信了,也就是爷孙传值
@Entry
@Component
struct Grandpa {
@Provide name: string = 'shaka'
build() {
Row() {
Column({ space: 20 }) {
Text(this.name)
.onClick(() => {
this.name = '这是爷组件改变的'
})
.backgroundColor(Color.Gray)
.width(200)
.height(100)
.fontSize(50)
Divider()
Father()
}.width('100%')
}.height('100%')
}
}
@Component
struct Father {
build() {
Column({ space: 20 }) {
Text('这是子组件')
.backgroundColor(Color.Red)
.width(200)
.height(100)
.fontSize(50)
Divider()
Des()
}
}
}
@Component
struct Des {
@Consume name: string
build() {
Column() {
Text( this.name)
.onClick(() => {
this.name = '这是孙组件改变的'
})
.backgroundColor(Color.Orange)
.width(200)
.height(150)
.fontSize(50)
}
}
}
复制代码
必要注意的是@Provide和@Consume装饰的变量名应保持一致,或者用变量别名
这里官网给了示例
效果是一样的
如许可以举行爷孙传值,并且是双向的
结尾
大致先容了一下,ArcTS中的状态管理,以及各种传值,对于接触过别的框架的朋侪理解起来非常轻松
此中 @Observed装饰器和@ObjectLink装饰器是针对于嵌套的数据范例,实在重要针对的就是class的情势
而关于class范例的数据范例,实在就是面向对象编程头脑
盼望对您有帮助
最后
有很多小同伴不知道学习哪些鸿蒙开辟技能?不知道必要重点把握哪些鸿蒙应用开辟知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的
鸿蒙(HarmonyOS NEXT)资料
用来跟着学习黑白常有必要的。
鸿蒙HarmonyOS Next全套学习资料←点击领取!(安全链接,放心点击
)
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开辟必把握的焦点知识要点,内容包含了
(ArkTS、ArkUI开辟组件、Stage模型、多端摆设、分布式应用开辟、音频、视频、WebGL、OpenHarmony多媒体技能、Napi组件、OpenHarmony内核、Harmony南向开辟、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)
技能知识点。
盼望这一份鸿蒙学习资料能够给大家带来帮助,有必要的小同伴自行领取,限时开源,先到先得~无套路领取!!
鸿蒙(HarmonyOS NEXT)最新学习门路
有了门路图,怎么能没有学习资料呢,小编也预备了一份联合鸿蒙官方发布条记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开辟入门教学视频,内容包含:ArkTS、ArkUI、Web开辟、应用模型、资源分类…等知识点。
获取以上完整版高清学习门路,请点击→纯血版全套鸿蒙HarmonyOS学习资料
HarmonyOS Next 最新全套视频教程
《鸿蒙 (OpenHarmony)开辟基础到实战手册》
OpenHarmony北向、南向开辟环境搭建
《鸿蒙开辟基础》
ArkTS语言
安装DevEco Studio
运用你的第一个ArkTS应用
ArkUI声明式UI开辟
.……
《鸿蒙开辟进阶》
Stage模型入门
网络管理
数据管理
电话服务
分布式应用开辟
关照与窗口管理
多媒体技能
安全技能
任务管理
WebGL
国际化开辟
应用测试
DFX面向将来计划
鸿蒙系统移植和裁剪定制
……
《鸿蒙进阶实战》
ArkTS实践
UIAbility应用
网络案例
……
大厂口试必问口试题
鸿蒙南向开辟技能
鸿蒙APP开辟必备
鸿蒙生态应用开辟白皮书V2.0PDF
获取以上完整鸿蒙HarmonyOS学习资料,请点击→
纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个寻衅,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的期间中立于不败之地。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
王柳
金牌会员
这个人很懒什么都没写!
楼主热帖
NSIS官方认证插件集成安装包 ...
[网鼎杯 2020 朱雀组]Think Java——wp ...
腾讯开源的 3 个 GitHub 项目,足够良 ...
Gorm 实现无限树形菜单
微信为什么使用 SQLite 保存聊天记录? ...
读Java实战(第二版)笔记18_基于Lambd ...
项目中多级缓存设计实践总结 ...
FPGA:乒乓球比赛模拟机的设计 ...
三天吃透Java基础八股文
Word书签替换,加盖电子印章及转换PDF ...
标签云
挺好的
服务器
浏览过的版块
MES
快速回复
返回顶部
返回列表