Component组件
WebComponents组件是es6标准,可以部分代替vue或react等数据响应式框架的部分功能,关键是Webcomponents获得标准支持,原生可用;基于webcomponents标准,AXUI的组件分为两类,一类是有至少一个模块内核的webcomponents组件,修改attributes属性等同于更新模块的参数(使用update方法),例如AX-MENU自定义标签,其内核是Menu模块;第二类是没有核心模块的普通webcomponents组件,通过修改其自身的attributes即可更新参数,例如AX-LINE等。
前言
本框架的自定义组件命名以ax-
开头,有两种组件类型:
- 纯样式组件,没有内置模块,例如
ax-line
组件,只能通过修改组件的attributes
来改变状态 - 模块式组件,内置至少一个核心模块,除了修改组件的
attributes
来改变状态,还可通过操作模块实例改变组件状态,例如ax-menu
组件
公共变量
本框架的自定义有相同的内部变量。
变量名 | 值类型 | 默认值 | 说明 |
---|---|---|---|
propsRaw | object | {} | attributes转properties的初始值,始终不变 |
properties | object | {} | 随时可能变化的properties值 |
propsProxy | object | {} | properties值的代理对象 |
propsObs | object | {proxy,ins,target} | properties值的代理 |
wrapEl | HTMLElement | null | 主节点 |
plans | object[] | [] | 监听数据(发布/订阅) |
timestamp | number | - | 组件载入页面的时间戳 |
connCount | number | 0 | 组件载入页面的次数 |
canListen | boolean | true | 是否允许监听attrs属性变化 |
connected | boolean | false | 是否已经是载入状态,载入之后会转为true |
公共方法
本框架的组件有通用的内部方法,这些方法在某些组件中可能会被改写,但是功能和意义是一致的。
方法名 | 返回值 | 说明 |
---|---|---|
reset() | this | 组件恢复propsRaw属性,无参数 |
clear('attr') | this | 组件清除某属性值 |
set({key,value}) | this | 组件设置某属性值(可使用数组) |
on('event',()=>{}) | this | 组件事件监听 |
公共事件
既然有公共方法,就有相应的公共事件。使用on('event',()=>{})
方法监听。
- reset事件,使用reset()方法后执行,无参数
- cleared事件,使用clear()方法后执行,支持一个参数即被删除的属性名
- set事件,使用set()方法后执行,支持一个参数即被设置的键值对
- connected事件,当组件载入页面时执行,无参数
- disconnected事件,当组件被删除时执行,无参数
- adopted事件,当组件被转移到其他地方(如iframe)后执行,无参数
模块式组件公共变量
本框架的模块式组件基于相同的编写方式,所以有相同的内部变量。
变量名 | 值类型 | 默认值 | 说明 |
---|---|---|---|
shadowEl | HTMLElement | null | 影子节点 |
slotEl | HTMLElement | null | 插槽节点 |
ins | object | null | 主模块实例 |
模块式组件公共属性
本框架的模块式组件基于相同的编写方式,所以有相同的参数选项。
在标签上写属性值都是字符串格式,但是本框架会将其转为该属性本身所属的格式类型。
属性名 | 值类型 | 默认值 | 说明 |
---|---|---|---|
ins-name | string | '' | 实例名,如果填写了可通过ax.instance取得实例,查看ax.instance详细 |
stor-name | string | '' | 数据缓存名称,如果填写了可自动保存参数 |
stor-keys | array | [] | 在填写了storName前提下,该参数将决定保存哪些参数 |
breakpoints | object | {} | 在不同尺寸终端下使用不同的参数,查看ax.breakpoints详细 |
lang | object | {} | 语言包,如果填写了将替换ax.lang中的值 |
b4-init | function | null | 等待函数,初始化开始时执行,应返回Promise |
模块式组件公共事件
本框架的模块式组件基于相同的编写方式,所以有相同的监听事件。
在标签上写属性值都是字符串格式,但是本框架会将其转为该属性本身所属的格式类型。
事件名 | 参数 | 返回值 | 说明 |
---|---|---|---|
on-constructed | () | this | 完成构造函数后,开始初始化之前执行 |
on-initiate | () | Promise(this) | 开始初始化时执行 |
on-initiated | () | Promise(this) | 完成初始化后执行 |
on-destroyed | (item) | this | 实例销毁后执行 |
on-reset | () | this | 参数重置后执行 |
on-updated | (settings) | Promise(this) | 更新参数后执行 |
on-saved | (item) | this | 保存缓存后执行 |
on-clearedcache | () | this | 清除缓存后执行 |
on-updatedcache | () | this | 更新缓存后执行 |
on-error | () | this | 报错后执行 |
on-locked | () | this | 模块禁用后执行 |
on-unlocked | () | this | 模块启用后执行 |