developtools_ace_ets2bundle/compiler/如何新增或修改组件指导规范.md
houhaoyu 03059eddda fix public sdk contains systemapi
Signed-off-by: houhaoyu <houhaoyu@huawei.com>
Change-Id: I3681904c53c240d74be4b64d06afb5c40613e9bb
2024-01-13 18:56:04 +08:00

2.4 KiB
Raw Blame History

新增或修改组件规则

概述:

当新增或更新组件和属性时需要在compiler/src/components目录下新增或修改对应的json文件。

同时我们将公共属性放入compiler/components/common_attrs.json文件中若要更新公共属性在该文件下修改即可。

组件形式如下:

{
  "name": string,
  "attrs": [],
  "atomic": boolean,
  "parents": [],
  "children": [],
  "single": boolean,
  "noDebugLine": boolean,
  "systemApi": boolean,
}
参数 参数描述
name(必须) 组件名称
attrs(组件必须, 若没有私有属性对应value写空数组) 组件属性
atomic(可选默认false) 是否不能有子组件
parents(可选,默认所有组件可用) 父组件只能是哪些组件
children(可选,默认所有组件可用) 子组件只能是哪些组件
single(可选默认false) 是否只能包含一个子组件
noDebugLine(可选默认false) 预览模式下对应组件是否生成debugline
systemApi(可选默认false) 不想在public sdk内添加该组件请将该属性设置为true

模块结构:

classDiagram
      Component_Map <|-- List
      Component_Map <|-- TextArea
      Component_Map <|-- AlphabetIndexer
      Component_Map <|-- Others
      class List{
          name,
  		  attrs,
  	      atomic?,
  	      children?,
  	      parents?,
  	      single?,
  	      noDebugLine?
      }
      class TextArea{
          name,
  	      attrs,
  	      atomic?,
  	      children?,
  	      parents,
  	      single?,
  	      noDebugLine?
      }
      class AlphabetIndexer{
          name,
  		  attrs,
  		  atomic?,
  		  children?,
  		  parents,
  	      single?,
  	      noDebugLine?
      }

文件结构:

ace_ets2bundle/compiler
	├── src
   		├── component_map
	├── components
   		├── Option
   		├── Line
		├── Gauge
   		....