【HarmonyOS Next之旅】ArkTS语法(四) -> 使用限制与扩展

简介: 本文介绍了ArkTS语言在生成器函数中的使用限制、变量的双向绑定以及自定义组件成员变量初始化的方式与约束。生成器函数中表达式的使用场景受限,且不能改变状态变量或包含局部变量。事件处理函数不受这些限制。双向绑定通过$$实现,支持基础类型及特定装饰器变量,变更时仅渲染当前组件以提升效率。成员变量初始化支持本地和构造参数两种方式,不同装饰器类型的变量有不同的初始化规则和约束,需根据具体需求选择合适的初始化方法。


目录

1 -> 在生成器函数中的使用限制

2 -> 变量的双向绑定

3 -> 自定义组件成员变量初始化的方式与约束

1 -> 在生成器函数中的使用限制
ArkTS语言的使用在生成器函数中存在一定的限制:

表达式仅允许在字符串(${expression})、if条件、ForEach的参数和组件的参数中使用;
任何表达式都不能导致任何应用程序状态变量(@State、@Link、@Prop)的改变,否则会导致未定义和潜在不稳定的框架行为;
生成器函数内部不能有局部变量。
上述限制都不适用于事件处理函数(例如onClick)的匿名函数实现。

2 -> 变量的双向绑定
ArkTS支持通过$$双向绑定变量,通常应用于状态值频繁改变的变量。 当前$$支持基础类型变量,以及@State、@Link和@Prop装饰的变量。
当前$$仅支持bindPopup属性的show参数和@State变量之间的渲染,Radio组件的checked属性。 $$绑定的变量变更时,仅渲染当前组件,提高渲染速度。
@Entry
@Component
struct bindPopup {
@State customPopup: boolean = false
build() {
Column() {
Button(){
Text('Popup')
}
.onClick(()=>{
this.customPopup = !this.customPopup
})
.bindPopup(
$$this.customPopup, {
message: "showPopup"
}
)
}
}
}
3 -> 自定义组件成员变量初始化的方式与约束
组件的成员变量可以通过两种方式初始化:

本地初始化:
@State counter: Counter = new Counter()
在构造组件时通过构造参数初始化:
MyComponent({counter: $myCounter})
装饰器类型 本地初始化 通过构造函数参数初始化
@State 必须 可选
@Prop 禁止 必须
@Link 禁止 必须
@StorageLink 必须 禁止
@StorageProp 必须 禁止
@Provide 必须 可选
@Consume 禁止 禁止
@ObjectLink 禁止 必须
常规成员变量 推荐 可选
从上表中可以看出:

通过构造函数方法初始化成员变量,需要遵循如下规则:

从父组件中的变量(下)到子组件中的变量(右) @State @Link @Prop 常规变量
@State 不允许 允许 允许 允许
@Link 不允许 允许 不推荐 允许
@Prop 不允许 不允许 允许 允许
@StorageLink 不允许 允许 不允许 允许
@StorageProp 不允许 不允许 不允许 允许
常规变量 允许 不允许 不允许 允许
从上表中可以看出:

感谢各位大佬支持!!!

互三啦!!!

目录
相关文章
|
9天前
|
JavaScript 开发者 索引
鸿蒙应用开发从入门到实战(九):ArkTS渲染控制
ArkTS拓展了TypeScript,可以结合ArkUI进行渲染控制,是的界面设计具有可编程性。本文简要描述鸿蒙应用开发中的条件渲染和循环渲染。
|
10天前
|
JavaScript
鸿蒙应用开发从入门到实战(八):ArkTS自定义组件语法
ArkUI除系统预置的组件外,还支持自定义组件。使用自定义组件,可使代码的结构更加清晰,并且能提高代码的复用性。
|
10天前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
66 0
|
10天前
|
存储 负载均衡 数据库
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
本文介绍基于华为AGC的端云一体化开发流程,涵盖项目创建、云函数开通、应用配置及DevEco集成。重点讲解云函数的编写、部署、调用与传参,并涉及环境变量设置、负载均衡、重试机制与熔断策略等高阶特性,助力开发者高效构建稳定云端服务。
89 0
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
|
10天前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
39 0
|
10天前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
105 0
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
10天前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段三
本文介绍了UI开发中的样式复用与组件构建技术,涵盖@Extend、@Styles和@Builder的使用方法,并通过Swiper轮播、Scroll滚动、Tabs导航等常用组件实现典型界面效果,结合生肖抽卡、小米轮播、回顶按钮等案例,展示实际应用技巧。
53 0
|
10天前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二
本文介绍鸿蒙应用界面开发中的弹性布局(Flex)、绝对定位、层叠布局及ArkTS语法进阶,涵盖字符串拼接、类型转换、数组操作、条件与循环语句,并结合B站视频卡、支付宝首页等案例,深入讲解点击事件、状态管理与界面交互功能。
58 0
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
2月前
|
安全 JavaScript API
鸿蒙开发核心要素
鸿蒙开发核心要素