arkui_ace_engine/README_zh.md

103 lines
5.1 KiB
Markdown
Raw Normal View History

2021-06-01 16:05:19 +00:00
# JS UI框架组件<a name="ZH-CN_TOPIC_0000001076213364"></a>
- [简介](#section15701932113019)
- [目录](#section1791423143211)
- [使用场景](#section171384529150)
- [接口说明](#section271831717166)
- [涉及仓](#section1447164910172)
## 简介<a name="section15701932113019"></a>
JS UI框架是OpenHarmony UI开发框架提供基础类、容器类、画布类等UI组件和标准CSS动画能力支持类Web范式编程。
- **类Web范式编程**
JS UI框架采用类HTML和CSS Web编程语言作为页面布局和页面样式的开发语言页面业务逻辑则支持ECMAScript规范的JavaScript语言。JS UI框架提供的类Web编程范式可以让开发者避免编写UI状态切换的代码视图配置信息更加直观。
**图 1** JS UI框架架构<a name="fig2606133765017"></a>
![](figures/JS-UI框架架构.png "JS-UI框架架构")
JS UI框架包括应用层Application、前端框架层Framework、引擎层Engine和平台适配层Porting Layer
- **Application**
应用层表示开发者使用JS UI框架开发的FA应用这里的FA应用特指JS FA应用。
- **Framework**
前端框架层主要完成前端页面解析以及提供MVVMModel-View-ViewModel开发模式、页面路由机制和自定义组件等能力。
- **Engine**
引擎层主要提供动画解析、DOMDocument Object Model树构建、布局计算、渲染命令构建与绘制、事件管理等能力。
- **Porting Layer**
适配层主要完成对平台层进行抽象,提供抽象接口,可以对接到系统平台。比如:事件对接、渲染管线对接和系统生命周期对接等。
## 目录<a name="section1791423143211"></a>
JS UI开发框架源代码在/foundation/ace/ace\_engine下目录结构如下图所示
```
/foundation/ace/ace_engine
├── adapter # 平台适配目录
│ ├── common
│ └── ohos
├── frameworks # 框架代码
│ ├── base # 基础库
│ ├── bridge # 前后端组件对接层
│ └── core # 核心组件目录
```
## 使用场景<a name="section171384529150"></a>
JS UI框架提供了丰富的、功能强大的UI组件、样式定义组件之间相互独立随取随用也可以在需求相同的地方重复使用。开发者还可以通过组件间合理的搭配定义满足业务需求的新组件减少开发量。
## 接口说明<a name="section271831717166"></a>
**表 1** 组件介绍
<a name="table2347172925617"></a>
<table><thead align="left"><tr id="row5347429155610"><th class="cellrowborder" valign="top" width="28.64%" id="mcps1.2.3.1.1"><p id="p1347102910567"><a name="p1347102910567"></a><a name="p1347102910567"></a>组件类型</p>
</th>
<th class="cellrowborder" valign="top" width="71.36%" id="mcps1.2.3.1.2"><p id="p83475294565"><a name="p83475294565"></a><a name="p83475294565"></a>主要组件</p>
</th>
</tr>
</thead>
<tbody><tr id="row15347122918562"><td class="cellrowborder" valign="top" width="28.64%" headers="mcps1.2.3.1.1 "><p id="p679795614335"><a name="p679795614335"></a><a name="p679795614335"></a>基础组件</p>
</td>
<td class="cellrowborder" valign="top" width="71.36%" headers="mcps1.2.3.1.2 "><p id="p88813982011"><a name="p88813982011"></a><a name="p88813982011"></a>button、text、input、label、image、progress、rating、span、marquee、image-animator、divider、menu、chart、option、picker、picker-view、piece、qrcode、select、slider、switch、toolbar、toolbar-item、toggle</p>
</td>
</tr>
<tr id="row1973535793115"><td class="cellrowborder" valign="top" width="28.64%" headers="mcps1.2.3.1.1 "><p id="p8735195713313"><a name="p8735195713313"></a><a name="p8735195713313"></a>容器组件</p>
</td>
<td class="cellrowborder" valign="top" width="71.36%" headers="mcps1.2.3.1.2 "><p id="p1268024618208"><a name="p1268024618208"></a><a name="p1268024618208"></a>div、list、list-item、list-item-group、stack、swiper、tabs、tab-bar、tab-content、refresh、dialog、badge、panel、popup、stepper、stepper-item</p>
</td>
</tr>
<tr id="row1792218915320"><td class="cellrowborder" valign="top" width="28.64%" headers="mcps1.2.3.1.1 "><p id="p692289163220"><a name="p692289163220"></a><a name="p692289163220"></a>画布组件</p>
</td>
<td class="cellrowborder" valign="top" width="71.36%" headers="mcps1.2.3.1.2 "><p id="p199228910327"><a name="p199228910327"></a><a name="p199228910327"></a>canvas</p>
</td>
</tr>
<tr id="row837615526208"><td class="cellrowborder" valign="top" width="28.64%" headers="mcps1.2.3.1.1 "><p id="p4377752152016"><a name="p4377752152016"></a><a name="p4377752152016"></a>栅格组件</p>
</td>
<td class="cellrowborder" valign="top" width="71.36%" headers="mcps1.2.3.1.2 "><p id="p17377185222019"><a name="p17377185222019"></a><a name="p17377185222019"></a>grid-container、grid-row、grid-col</p>
</td>
</tr>
</tbody>
</table>
## 涉及仓<a name="section1447164910172"></a>
JS UI框架子系统
**ace\_ace\_engine**
2021-06-02 11:02:57 +00:00
ace\_engine\_lite
2021-06-01 16:05:19 +00:00
ace\_napi