> 文档中心 > HarmonyOS元服务-动态创建组件

HarmonyOS元服务-动态创建组件


示例效果:

    

提供在页面中动态添加组件,并为动态添加的组件设置属性与样式的能力(API version 8开始支持)。

属性:

createElement

createElement(tag: string): Element  创建一个组件对象。

参数

参数名

类型

必填

说明

tag

string

组件名称。

setAttribute

setAttribute(name: string, value: string): void  动态设置组件属性。

参数:

参数名

类型

必填

说明

name

string

属性名称。

value

string

属性值。

setStyle

setStyle(name: string, value: string): boolean  动态设置组件的样式。

参数:

参数名

类型

必填

说明

name

string

样式名称。

value

string

样式值。

addChild

addChild(child: Element): void  将动态创建的组件添加到父组件当中。

参数:

参数名

类型

必填

说明

child

Element

组件对象。

示例代码:

index.hml

index.css

.container {    flex-direction: column;    align-items: center;    justify-content: center;    width: 100%;    height: 100%;}.parent {    flex-direction: column;}.btn {    width: 70%;    margin: 15px;    padding: 20px;}

index.js

let newDiv = nulllet newImage = nullexport default {    appendDiv() { let parent = this.$element('parentDiv') newDiv = dom.createElement('div') newDiv.setStyle('width', '80%') newDiv.setStyle('height', '60%') newDiv.setStyle('backgroundColor', '#AEEEEE') newDiv.setStyle('flexDirection', 'column') newDiv.setStyle('alignItems', 'center') newDiv.setStyle('justifyContent', 'center') newDiv.setStyle('borderRadius', '20px') parent.addChild(newDiv)    },    appendImage() { newImage = dom.createElement('image') newImage.setAttribute('src', 'common/test.jpeg')// newImage.setStyle('width', '300px') newImage.setStyle('height', '300px') newImage.setStyle('padding', '20px') newDiv.addChild(newImage)    }}