鸿蒙应用开发 自定义扩展:AttributeModifier

鸿蒙HarmonyOS开发:自定义扩展规范-AttributeModifier 声明式语法引入了@Styles和@Extend两个装饰器,可以解决部分复用的问题,但是存在以下受限场景: 阅读详情

概述

声明式语法引入了 @Styles 和 @Extend 两个装饰器,可以解决部分复用的问题,但是存在以下受限场景:

  • @Styles和@Extend均是编译期处理,不支持跨文件的导出复用。
  • @Styles仅能支持通用属性、事件,不支持组件特有的属性。
  • @Styles虽然支持在多态样式下使用,但不支持传参,无法对外开放一些属性。
  • @Extend虽然能支持特定组件的私有属性、事件,但同样不支持跨文件导出复用。
  • @Styles、@Extend对于属性设置,无法支持业务逻辑编写,动态决定是否设置某些属性。只能通过三元表达式对所有可能设置的属性进行全量设置,设置大量属性时效率低下。

为了解决上述问题,ArkUI引入了AttributeModifier的机制,可以通过Modifier对象动态修改属性。能力对比如下:

能力 @Styles @Extend AttributeModifier
跨文件导出 不支持 不支持 支持
鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:动态属性设置) ArkTS声明式开发(通用属性:动态属性设置) 阅读详情

相关推荐

鸿蒙API13开发【自定义扩展属性修改器 (AttributeModifier)】ArkUI开发

ArkUI框架提供一系列基于Modifier的自定义扩展能力,通过与UI分离的方式,对已有UI组件的属性、手势、内容进行扩展修改,以满足开发者在不改变UI组件底层实现的情况下,快速调整UI组件外观、行为等需求。自定义扩展包括[AttributeModifier]、[GestureModifier]、[DrawModifier]等。其中[AttributeModifier]和[AttributeUpdater]允许开发者通过自定义类设置属性,扩展了属性设置的实现方式,能够与原生属性设置方式混合使用。例如,使用

adsjgfjha123123的博客 1017

HarmonyOS NEXT实战开发:自定义扩展(AttributeModifier)

ArkUI引入了AttributeModifier的机制,可以通过Modifier对象动态修改属性。

2401_87288236的博客 1026

鸿蒙开发基础 —— 自定义扩展:AttributeModifier

Styles和@Extend均是编译期处理,不支持跨文件的导出复用。@Styles仅能支持通用属性、事件,不支持组件特有的属性。@Styles虽然支持在多态样式下使用,但不支持传参,无法对外开放一些属性。@Extend虽然能支持特定组件的私有属性、事件,但同样不支持跨文件导出复用。@Styles、@Extend对于属性设置,无法支持业务逻辑编写,动态决定是否设置某些属性。只能通过三元表达式对所有可能设置的属性进行全量设置,设置大量属性时效率低下。

guangxishaoji的博客 1198

纯血鸿蒙APP实战开发——图片九宫格封装案例

本示例介绍使用(Flex组件实现图片在不同个数情况下的布局效果(默认布局和自定义布局)。该场景多用于社交类应用。如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。

m0_71524094的博客 587

GoDaddy域名解析 到 阿里云域名DNS

一:登录GODaddy,点击“个人中心”,然后点击“管理域名” 二:域名解析 第一种:直接解析到对应的服务器 添加一个,类型默认A,主机填写二级域名前缀(image.主域名),指向填写目标服务器ip即可(注意目标服务器80端口是否开放) 第二种:将主域名dns转到阿里云域名下 三:若要修给为阿里云解析服务器,要做以下修改,点击“更改” 点击更改后出现如下页面,此时需要到阿里云官网云解析DNS下添加域名解析 四:阿里云添加域名解析...

xiaolinzi176的博客 6702

计算机考研常见面试题

写在前面 本人参加20考研,由于复试没有具体要求会问哪几门课,所以我就找了网上一些常见的计算机专业的面试题,整理如下 主要结构: 数据库 软件工程 操作系统 计算机组成原理 计算机网络 数据结构 C++ Java 数据库 1、数据:数据库中存储的基本对象。 数据库:长期存储在计算机内的、有组织的、可共享的数据集合。 数据库管理系统:专门用于建立和管理数据库的一套软件。对外部程序提供访问数据库的方法,对内进行数据管理。 数据库系统:与和数据库相关的整个系统,一般由数据库、数据库管理系统、应用程序、数

qq_38841618的博客 2万+

【AI概念】迁移学习 vs. 域自适应 vs. 域泛化|定义、核心原理、数学表达、易混淆点与工程选择建议|实际案例、工程实现细节、未来研究趋势、实际应用场景

大家好,我是爱酱。本篇将会详细梳理迁移学习(Transfer Learning)、域自适应(Domain Adaptation)、域泛化(Domain Generalization)三大常被混淆的核心概念,结合数学公式、典型算法与实际应用场景,帮助你厘清它们的本质区别、联系与工程意义。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

AI人工智能爱酱~你的AI学习好帮手~ 2468

Rancher入门到精通 - Nginx Ingress 配置指南

Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。

TechInk的博客 1311

【GlobalMapper精品教程】070:专题地图制作完整操作教程

与其它GIS软件一样,Globalmapper也可以制作出漂亮的地图,本文讲解专题地图制作完整操作流程。

智慧空间实验室 3752

大学计算 - 方程求解 实训答案 第3关

【代码】大学计算 - 方程求解 实训答案 第3关。

2403_89314916的博客 107

微信小程序视频内容服务类目审核不过?绕过审核的两种思路!

虽然不推荐绕过官方审核,但在实际项目中,总有一些特殊情况:比如,最近开发的小程序涉及视频播放,提交审核时,被官方要求补充“教育服务 - 在线视频课程”类目。但我们的内容只是车辆使用介绍,并非教育课程,无法提供相应资质。该怎么办?很多开发者发现,小程序开发不是最难的,审核才是最难的。 微信为了规避法律风险,要求某些功能必须提供资质。例如:然而,并不是所有公司都能轻松申请到这些资质,甚至有些资质根本不适用于我们的业务,导致审核卡住,无法上线。就像我遇到的这个问题,官方要求我们补充“在线视频课程”类目,但实际业务

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 3246

0 基础学前端:100 天拿 offer 实战课(第 16 天)—— JS 数组高级方法:数据处理效率翻倍,代码更简洁

方法名核心作用回调函数返回值返回结果适用场景map数据转换转换后的新元素新数组(长度与原数组一致)格式转换、新增字段、生成 DOM 字符串filter数据筛选true(保留)/false(过滤)新数组(符合条件的元素)筛选符合条件的元素(如未完成计划、今天的评论)reduce数据汇总新的累加值任意类型(数字、对象等)求和、计数、分组、多数据汇总find查找元素true(匹配)/false(不匹配)第一个匹配的元素 /undefined。

苏打水.X的博客 133

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 鸿蒙应用开发 ArkUI 组件动画效果
普通网友
博客等级 码龄2年 826粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值