harmony 鸿蒙Dynamic Component Creation
Dynamic Component Creation
You can dynamically add components with specified attributes and styles to pages.
NOTE
This API is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.
createElement
createElement(tag: string): Element
Creates a component object.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
tag | string | Yes | Component name. |
Return value
Type | Description |
---|---|
Element | Component object corresponding to the value of tag. |
let newImage = dom.createElement('image')
setAttribute
setAttribute(name: string, value: string): void
Dynamically sets the attributes of this component.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
name | string | Yes | Attribute name. |
value | string | Yes | Attribute value. |
newImage.setAttribute('src', 'common/testImage.jpg')
setStyle
setStyle(name: string, value: string): boolean
Dynamically sets the style of this component.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
name | string | Yes | Style name. |
value | string | Yes | Style value. |
Return value
Type | Description |
---|---|
boolean | Returns true if the setting is successful; returns false otherwise. |
newImage.setStyle('width', '120px')
addChild
addChild(child: Element): void
Adds a dynamically created component to the parent component.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
child | Element | Yes | Component object. |
newDiv.addChild(newImage)
Example
<!-- xxx.hml -->
<div class="container">
<div id="parentDiv" class="parent"></div>
<button onclick="appendDiv" class="btn">Dynamically create a <div> component.</button>
<button onclick="appendImage" class="btn">Dynamically create an <image> component and add it to the newly created <div> component.</button>
</div>
/* xxx.css */
.container {
flex-direction: column;
align-items: center;
width: 100%;
}
.parent {
flex-direction: column;
}
.btn {
width: 70%;
height: 60px;
margin: 15px;
}
// xxx.js
let newDiv = null
let newImage = null
export default {
appendDiv() {
let parent = this.$element('parentDiv')
newDiv = dom.createElement('div')
newDiv.setStyle('width', '150px')
newDiv.setStyle('height', '150px')
newDiv.setStyle('backgroundColor', '#AEEEEE')
newDiv.setStyle('marginTop', '15px')
parent.addChild(newDiv)
},
appendImage() {
newImage = dom.createElement('image')
newImage.setAttribute('src', 'common/testImage.jpg')
newImage.setStyle('width', '120px')
newImage.setStyle('height', '120px')
newDiv.addChild(newImage)
}
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙JavaScript-compatible Web-like Development Paradigm
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦