• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 添加容器
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @fenglinbailu-->
5<!--Designer: @lanshouren-->
6<!--Tester: @liuli0427-->
7<!--Adviser: @HelloCrease-->
8
9要将页面的基本元素组装在一起,需要使用容器组件。在页面布局中常用到三种容器组件,分别是div、list和tabs。在页面结构相对简单时,可以直接用div作为容器,因为div作为单纯的布局容器,可以支持多种子组件,使用起来更为方便。
10
11
12## List组件
13
14当页面结构较为复杂时,如果使用div循环渲染,容易出现卡顿,因此推荐使用list组件代替div组件实现长列表布局,从而实现更加流畅的列表滚动体验。需要注意的是,list仅支持list-item作为子组件,具体的使用示例如下:
15
16```html
17<!-- xxx.hml -->
18<list class="list">
19  <list-item type="listItem" for="{{textList}}">
20    <text class="desc-text">{{$item.value}}</text>
21  </list-item>
22</list>
23```
24
25```css
26/* xxx.css */
27.desc-text {
28  width: 683.3px;
29  font-size: 35.4px;
30}
31```
32
33```js
34// xxx.js
35export default {
36  data: {
37    textList:  [{value: 'JS FA'}],
38  },
39}
40```
41
42为避免示例代码过长,以上示例的list中只包含一个list-item,list-item中只有一个text组件。在实际应用中可以在list中加入多个list-item,同时list-item下可以包含多个其他子组件。
43
44
45## Tabs组件
46
47当页面经常需要动态加载时,推荐使用tabs组件。tabs组件支持change事件,在页签切换后触发。tabs组件仅支持一个tab-bar和一个tab-content。具体的使用示例如下:
48
49```html
50<!-- xxx.hml -->
51<tabs>
52  <tab-bar>
53    <text>Home</text>
54    <text>Index</text>
55    <text>Detail</text>
56  </tab-bar>
57  <tab-content>
58    <image src="{{homeImage}}"></image>
59    <image src="{{indexImage}}"></image>
60    <image src="{{detailImage}}"></image>
61  </tab-content>
62</tabs>
63```
64
65```js
66// xxx.js
67export default {
68  data: {
69    homeImage: '/common/home.png',
70    indexImage: '/common/index.png',
71    detailImage: '/common/detail.png',
72  },
73}
74```
75
76tab-content组件用来展示页签的内容区,高度默认充满tabs剩余空间。
77