相关问题
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
74浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在鸿蒙开发中,自定义组件如何实现跨文件复用,有哪些步骤?
11浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现可变内容的自定义组件?
96浏览 • 1回复 待解决
#鸿蒙通关秘籍#通过自定义组件冻结功能如何优化鸿蒙应用的页面渲染时间?
107浏览 • 1回复 待解决
自定义组件实现了组件复用后,如果使用@Reuseable这个组件的复用范围是什么?
454浏览 • 0回复 待解决
如何通过自定义公共事件实现进程间的通信?
415浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现自定义组件方式的全局弹窗封装?
94浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用TextInput组件实现自定义安全键盘?
102浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过BaseNavigation实现自定义导航栏
87浏览 • 1回复 待解决
#鸿蒙通关秘籍#想做好管理自定义组件的代码复用性,怎么做
80浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙图片组件的布局参数?
88浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现鸿蒙应用中组件的跨文件样式复用?
1浏览 • 0回复 待解决
#鸿蒙通关秘籍#在HarmonyOS Next应用中实现自定义弹窗组件的动画效果
97浏览 • 1回复 待解决
#鸿蒙通关秘籍#Tabs组件中如何实现自定义页面切换动画?
74浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在NodeContainer中实现自定义组件节点的切换?
84浏览 • 1回复 待解决
如何在鸿蒙应用中创建自定义的组件?
174浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何通过Tab组件隐藏自带TabBar并自定义增删页面?
71浏览 • 0回复 待解决
#鸿蒙通关秘籍#HML自定义组件模板的使用
37浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙Tabs组件的导航栏样式?
44浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何查询当前自定义组件的页面信息?
53浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在Tabs组件中实现自定义导航栏样式?
75浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中创建自定义组件?
85浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何设置拖拽组件的自定义背板图?
89浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义PullToRefresh组件的下拉刷新动画?
94浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何获取自定义组件的ViewModel实例?
30浏览 • 1回复 待解决
在鸿蒙应用中,通过自定义组件来实现公共组件的复用,步骤如下:
定义自定义组件,支持传入多个
AttributeModifier
:javascript @Component export struct ImageText { @State textOne: AttributeModifier<TextAttribute> = new TextModifier(); @State imageModifier: AttributeModifier<ImageAttribute> = new ImageModifier();
build() { Row() { Image(this.imageSrc) .attributeModifier(this.imageModifier); Text(this.textOneContent) .attributeModifier(this.textOne) .fontColor($r('app.color.orange')); } } }
class ImageModifier implements AttributeModifier<ImageAttribute> { applyNormalAttribute(instance: ImageAttribute): void { instance.width($r('app.float.float_100')); instance.height($r('app.float.float_100')); } }
class TextModifier implements AttributeModifier<TextAttribute> { applyNormalAttribute(instance: TextAttribute): void { instance.fontSize($r('app.float.float_12')); instance.fontColor($r('app.color.orange')); } }
使用组件时,提供定制的
AttributeModifier
实例:javascript @Component export struct ShoppingCart { @State textOne: CommodityText = new CommodityText(TextType.TYPE_ONE, 15); @State imageModifier: ImageModifier = new ImageModifier(100, 100);
build() { ImageText({ item: item, textOne: this.textOne, imageModifier: this.imageModifier, imageSrc: $r('app.media.icon'), }); } }
通过使用自定义组件,开发者可以实现不同页面和场景下的组件复用,减少了冗余代码。