HarmonyOS鸿蒙Next中【快应用】父组件中如何设置子组件样式
HarmonyOS鸿蒙Next中【快应用】父组件中如何设置子组件样式 问题背景: 子组件被引用时,如果在父组件的布局效果不理想,需要去修改子组件对应的样式,是比较麻烦的,现在快应用在1100版本之后推出了externalClasses属性,可以将外部样式直接传给自定义组件,便于开发者调试。
使用方式:
- 子组件中声明传递的样式
externalClasses: ['childstyle']
和class=”childstyle”
。 - 父组件里调用
childstyle=”parentstyle”。
相关代码: child.ux:
<template>
<div class="container">
<text class="txt" onclick="click">child button</text>
</div>
</template>
<style>
.container {
flex: 1;
flex-direction: column;
align-items: center;
}
</style>
<script>
import prompt from '@system.prompt';
export default {
externalClasses: ['txt'],
click() {
prompt.showToast({
message: 'this is child',
})
}
}
</script>
parent.ux:
<import name="child" src="../New/child.ux"></import>
<template>
<div class="container">
<text class="txt">hello</text>
<child txt="parentxt"></child>
</div>
</template>
<style>
.container {
flex: 1;
flex-direction: column;
align-items: center;
}
.txt {
height: 150px;
width: 85%;
margin-bottom: 15px;
border: 1px solid #000000;
}
//父组件设置样式
.parentxt {
background-color: #00fa9a;
height: 150px;
width: 85%;
align-items: flex-start;
margin-bottom: 15px;
border-color: #9400D3;
border-width: 5px;
}
</style>
运行截图:
更多关于HarmonyOS鸿蒙Next中【快应用】父组件中如何设置子组件样式的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中【快应用】父组件中如何设置子组件样式的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,父组件可以通过@Component
装饰器中的styles
属性为子组件设置样式。具体步骤如下:
- 定义样式:在父组件的
styles
属性中定义样式类。 - 应用样式:在子组件的
@Component
装饰器中通过class
属性引用父组件定义的样式类。
示例代码:
@Component({
styles: `
.childStyle {
color: red;
font-size: 20px;
}
`
})
class ParentComponent {
build() {
Column() {
ChildComponent({ class: 'childStyle' })
}
}
}
@Component
class ChildComponent {
@Prop class: string = '';
build() {
Text('子组件').className(this.class)
}
}
通过这种方式,父组件可以灵活地为子组件设置样式。