• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 组件预览
2
3<!--Kit: ArkUI-->
4<!--Subsystem: ArkUI-->
5<!--Owner: @huyisuo-->
6<!--Designer: @zhangboren-->
7<!--Tester: @TerryTsao-->
8<!--Adviser: @zhang_yixin13-->
9
10组件预览支持以自定义组件为最小单位进行预览,方便开发者查看单个自定义组件UI效果。
11
12>  **说明:**
13>
14>  从API version 7 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
15>
16>  组件预览详情,请查看[组件预览特性文档](../../../ui/ui-ide-previewer.md#组件预览)。
17
18## @Preview装饰器
19
20@Preview装饰器用来装饰自定义组件,从而实现组件预览。
21
22>  **说明:**
23>
24>  该接口支持在ArkTS卡片中使用,但是ArkTS卡片中暂不支持组件预览。
25
26**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
27
28**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
29
30**系统能力:** SystemCapability.ArkUI.ArkUI.Full
31
32## PreviewParams<sup>9+</sup>
33
34@Preview参数对象。
35
36设置@Preview的参数,指定预览设备的相关属性,如不同设备、不同屏幕状态等。
37
38**卡片能力:** 从API version 9开始,该接口支持在ArkTS卡片中使用。
39
40**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
41
42**系统能力:** SystemCapability.ArkUI.ArkUI.Full
43
44| 参数名 | 类型   | 必填 | 说明                                                         |
45| ------ | ------ | ---- | ------------------------------------------------------------ |
46| title | string | 否 | 组件预览模块名,默认为自定义组件名称。 |
47| width| number | 否 | 预览设备的宽度,单位:px,默认为1080px。 |
48| height | number | 否 | 预览设备的高度,单位:px,默认为2340px。 |
49| locale| string | 否 |  预览设备的语言,如zh_CN、en_US等,默认为zh_CN。 |
50| colorMode | string | 否 | 显示的亮暗模式,当前支持的取值为light或dark,默认为light。 |
51| deviceType | string | 否 | 组件预览渲染的设备类型,默认为Phone。 |
52| dpi | number | 否 | 预览设备的屏幕DPI值,默认为480。 |
53| orientation | string | 否 | 预览设备的横竖屏状态,取值为portrait或landscape,默认为portrait。 |
54| roundScreen | boolean | 否 | 预览的屏幕形状是否为圆形,默认为false。true为圆形,false为非圆形。 |
55
56## 示例
57
58该示例分别使用了不传参@Preview和传参的@Preview。
59
60```ts
61@Entry
62@Preview
63@Component
64struct Index {
65  @State message: string = 'default Preview';
66
67  build() {
68    RelativeContainer() {
69      Text(this.message)
70        .fontSize(50)
71        .fontWeight(FontWeight.Bold)
72    }
73    .height('100%')
74    .width('100%')
75  }
76}
77
78@Preview({
79  title: 'PreviewParams',
80  width: 540,
81  height: 1170
82})
83@Component
84struct Test {
85  @State message: string = 'PreviewParams';
86
87  build() {
88    RelativeContainer() {
89      Text(this.message)
90        .fontSize(40)
91        .fontWeight(FontWeight.Bold)
92    }
93    .height('100%')
94    .width('100%')
95  }
96}
97```
98