harmonyOS学习笔记之@Styles装饰器与@Extend装饰器
@Styles装饰器
定义组件重用样式
自定义样式函数使用装饰器
可以定义在组件内或全局,内部优先级>外部,内部不需要function,外部需要function
定义在组件内的@styles可以通过this访问组件内部的常量和状态变量,可以在@styles里通过事件来改变状态变量
弊端:只支持通用属性和通用事件 不能传参
@Entry
@Component
struct StylesFun {@State count: number = 100@State bc: Color|string = Color.Blue// 组件内部@Styles interiorStyle() {.width(200).height(this.count).backgroundColor(this.bc).onClick(() => {this.count++if(this.bc==Color.Blue||this.bc=='blue'){this.bc='green'}else{this.bc='blue'}})}build() {Row() {Column() {Text('我是组件内部@Styles的样式').fontSize(30).interiorStyle()Text('我是全局@Styles的样式').fontSize(30).overallStyle()}.width('100%')}.height('100%')}
}
// 全局
@Styles function overallStyle () {.width(150).height(100).backgroundColor(Color.Pink)
}
@Extend装饰器
定义扩展组件样式
在@Styles的基础上,用于扩展原生组件样式
仅支持定义在全局,不支持在组件内部定义
支持封装指定的组件的私有属性和私有事件,也支持预定义相同组件的@Extend的方法
支持参数,可传递参数
参数可以为Function,或者 ()=>{} ,作为Event事件,例如:
@Extend(Text) function sizeColor(FSize:string|number,FColor?:string|Color){.fontSize(FSize).fontColor(FColor)
}
@Extend(Button) function testClick(FSize:string|number,click:()=>void) {.fontSize(FSize).width(300).height(50).click()
}
@Entry
@Component
struct ExtendFun {@State message: string = 'Hello World'@State count: number = 0onClickAdd() {this.count++}build() {Row() {Text('我是数字:'+this.count).sizeColor(40,Color.Pink)Button('点我...快点我...').testClick(40,()=>{this.onClickAdd()})}}
}
参数也可以是状态变量,当状态变量改变时,UI可以正常的被刷新渲染
当然 这只是我的学习笔记 ,若有什么不足之处还望大佬指出
相关文章:
harmonyOS学习笔记之@Styles装饰器与@Extend装饰器
Styles装饰器 定义组件重用样式 自定义样式函数使用装饰器 可以定义在组件内或全局,内部优先级>外部,内部不需要function,外部需要function 定义在组件内的styles可以通过this访问组件内部的常量和状态变量,可以在styles里通过事件来改变状态变量 弊端:只支持通用属性和通用…...
GateWay的路由与全局过滤器
1.断言工厂 我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件 例如Path/user/**是按照路径匹配,这个规则是由 org.springframework.cloud.gateway.handler.predicate.PathRoutePr…...
MuleSoft 中的细粒度与粗粒度 API
API 设计是一个令人着迷的话题。API 设计的一个重要方面是根据 API 的特性和功能确定正确的“大小”。所有建筑师都必须在某个时候解决过这个问题。在本文中,我将尝试对我们在获得“正确的”粒度 API 之前需要考虑的各种参数进行一些深入的探讨: 可维护…...
【笔记】2023最新Python安装教程(Windows 11)
🎈欢迎加群交流(备注:csdn)🎈 ✨✨✨https://ling71.cn/hmf.jpg✨✨✨ 🤓前言 作为一名经验丰富的CV工程师,今天我将带大家在全新的Windows 11系统上安装Python。无论你是编程新手还是老手&…...
Android Wifi断开问题分析和802.11原因码
Android Wifi连接和断链分析思路。 1.密码错误导致的连接失败 2.关联被拒绝 3.热点未回复AUTH_RSP或者STA未收到 AUTH_RSP 4.热点未回复ASSOC_RSP或者STA未收到ASSOC_RSP 5.DHCP FAILURE 6.发生roaming 7.AP发送了DEAUTH帧导致断开连接 8.被AP踢出,这个原因…...
【Cell Signaling + 神经递质(neurotransmitter) ; 神经肽 】
Neuroscience EndocytosisExcitatory synapse pathwayGlutamatergic synapseInflammatory PainInhibitors of axonal regenerationNeurotrophin signaling pathwaySecreted Extracellular VesiclesSynaptic vesicle cycle...
当springsecurity出现SerializationException问题
当springsecurity出现SerializationException问题 01 异常发生场景 当我使用springsecurity时,登录成功后携带token访问接口出了问题 org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Unrecognized field "userna…...
[SaaS] 广告创意中stable-diffusion的应用
深度对谈:广告创意领域中 AIGC 的应用这个领域非常快速发展,所以你应该保持好奇心,不断尝试新事物,不断挑战自己。https://mp.weixin.qq.com/s/ux9iEABNois3y4wwyaDzAQ我对AIGC领域应用调研,除了MaaS服务之外ÿ…...
第八节HarmonyOS @Component自定义组件的生命周期
在开始之前,我们先明确自定义组件和页面的关系: 1、自定义组件:Component装饰的UI单元,可以组合多个系统组件实现UI的复用。 2、页面:即应用的UI页面。可以由一个或者多个自定义组件组成,Entry装饰的自定…...
【Openstack Train安装】五、Memcached/Etcd安装
本文介绍Memcached/Etcd安装步骤,Memcached/Etcd仅需在控制节点安装。 在按照本教程安装之前,请确保完成以下配置: 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Openstack Train安装】三、openstack安装…...
29 kafka动态配置
为什么需要动态配置 线上运行的kafka broker修改配置需要重启的话,影响比较大。需要一个不需要重启就能使参数生效的功能 使用的场景 配置优先级: per-broker参数 > cluster-wide参数 > static参数 > 默认参数 1.动态调整network线程数和工…...
JIRA部分数据库结构
表jiraissue(问题表) 字段 数据类型 是否为空 KEY 说明 ID decimal(18,0) NO PRI 主键 pkey varchar(255) YES MUL 查看主键,“项目ID” PROJECT decimal(18,0) YES MUL 项目外键,项目表外键 REPORTER varch…...
RK3568平台开发系列讲解(Linux系统篇) dtb 到 device_node 的转化
🚀返回专栏总目录 文章目录 一、dtb 展开流程二、dtb 解析过程源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 dtb 如何展开成 device_node 一、dtb 展开流程 设备树源文件编写: 根据设备树的基本语法和相关知识编写符合规范的设备树。…...
屏幕的刷新率和分辨率
一、显示器刷新率和分辨率的区别 1、显示器刷新率是什么意思? 刷新率是指电子束对屏幕上的图像重复扫描的次数。刷新率越高,所显示的图像(画面)稳定就越好。 刷新率高低直接决定其价格,但是由于刷新率与分辨率两者相互制约,因此只有在高分辨率下达到…...
面试官:请说说JS中的防抖和节流
给大家推荐一个实用面试题库 1、前端面试题库 (面试必备) 推荐:★★★★★ 地址:web前端面试题库 前言 为什么要做性能优化?性能优化到底有多重要? 性能优化是为了提供更好的用户体验、加…...
[足式机器人]Part4 南科大高等机器人控制课 Ch00 课程简介
本文仅供学习使用 本文参考: B站:CLEAR_LAB 课程主讲教师: Prof. Wei Zhang 南科大高等机器人控制课 Ch00 课程简介 1. What is this course about?2. Tentative Schedule暂定时间表 1. What is this course about? Develop a solid found…...
SSM项目实战-登录验证成功并路由到首页面,Vue3+Vite+Axios+Element-Plus技术
1、util/request.js import axios from "axios";let request axios.create({baseURL: "http://localhost:8080",timeout: 50000 });export default request 2、api/sysUser.js import request from "../util/request.js";export const login (…...
Python----网络爬虫
目录 1.Robots排除协议 2.request库的使用 3.beautifulsoup4库的使用 Python网络爬虫应用一般分为两部: (1)通过网络连接获取网页内容 (2)对获得的网页内容进行处理 - 这两个步骤分别使用不同的函数库:requests …...
【微信小程序】上传头像 微信小程序内接小程序客服
这里写目录标题 微信小程序上传头像使用button按钮包裹img 微信小程序内接小程序客服使用button按钮跳转客服 微信小程序上传头像 使用button按钮包裹img 原本思路是只使用image标签再加上chooseImg,但发现使用button标签上传头像这种方法更实用。微信小程序文档上…...
【c++随笔15】c++常用第三方库
【c随笔15】c常用第三方库 一、数据库相关:HDFS、libpq、SQLite、RocksDB、unixODBC、Nanobdc、Ignite ; 二、网络通信相关:libcurl、libevent、libssh、mosquitto、nghttp2、libuv; 三、加密和安全相关:1、OpenSSL 四…...
Stable Yogi Leather-Dress-Collection实战:SpringBoot微服务集成与API开发
Stable Yogi Leather-Dress-Collection实战:SpringBoot微服务集成与API开发 最近在帮一个做时尚电商的朋友做技术方案,他们想在自己的商品详情页里,根据用户上传的真人照片,实时生成虚拟试穿效果。核心需求很明确:需要…...
OpenClaw飞书机器人实战:GLM-4.7-Flash智能问答系统搭建
OpenClaw飞书机器人实战:GLM-4.7-Flash智能问答系统搭建 1. 为什么选择OpenClaw飞书GLM组合? 去年我负责团队的知识库建设时,每天要处理上百条技术咨询。传统FAQ文档的维护成本高,而商业客服系统又超出预算。直到发现OpenClaw这…...
UltraStar Deluxe实战指南:免费打造专业级家庭KTV系统
UltraStar Deluxe实战指南:免费打造专业级家庭KTV系统 【免费下载链接】USDX The free and open source karaoke singing game UltraStar Deluxe, inspired by Sony SingStar™ 项目地址: https://gitcode.com/gh_mirrors/us/USDX 还在为KTV包厢的高昂费用而…...
AI辅助开发:让快马AI听懂你的话,智能定制专属Win11右键菜单
最近在折腾Windows 11的右键菜单,发现新系统的右键菜单虽然简洁,但很多常用功能被折叠到二级菜单里,用起来特别不方便。作为一个开发者,我经常需要快速访问各种工具,于是萌生了自己定制右键菜单的想法。 系统检测模块设…...
30/50/20分期怎么设?SAP付款条件Z028实战案例详解(附基准日期避坑指南)
SAP非等额分期付款实战指南:30/50/20比例配置与基准日期避坑 在工程项目、大额设备采购等业务场景中,分期付款是常见的交易方式。不同于标准的等额分期,工程类合同常采用30/50/20这类非对称比例,首期支付30%预付款,中期…...
HEX与BIN文件在单片机开发中的关键差异
单片机下载文件:HEX文件和BIN文件的区别解析1. 文件格式概述在嵌入式系统开发中,HEX和BIN是两种最常见的单片机程序下载文件格式。这两种格式在结构和使用方式上存在显著差异,直接影响着程序烧录流程和开发效率。1.1 HEX文件特性HEX文件&…...
突破静态界限:LivePortrait肖像动画技术深度解析
突破静态界限:LivePortrait肖像动画技术深度解析 【免费下载链接】LivePortrait Bring portraits to life! 项目地址: https://gitcode.com/GitHub_Trending/li/LivePortrait 你是否曾想过,让一张普通的照片或一幅古典油画中的人物"活"…...
抖音内容高效下载实战:从单视频到批量采集的完整指南
抖音内容高效下载实战:从单视频到批量采集的完整指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为无法保存喜欢的抖音内容而烦恼吗?是否经常遇到需要批量下载用户主页所有作…...
Swin2SR进阶使用:通过HTTP链接实现远程增强
Swin2SR进阶使用:通过HTTP链接实现远程增强 1. 引言:从本地工具到远程服务 如果你用过Swin2SR这个AI图像超分工具,一定会被它“化腐朽为神奇”的能力震撼——一张模糊的小图,经过AI的“脑补”,瞬间变成细节丰富的高清…...
从4.69万亿Token看中国AI大模型:调用量超越美国的背后逻辑
前言最近看到一组数据:截至2026年3月15日,中国AI大模型的周调用量达到4.69万亿Token,连续第二周超越美国,全球前三全部被中国模型包揽。作为一个长期关注AI行业的技术人,这个消息让我想深入挖一挖背后的逻辑࿱…...
