Component组件

WebComponents组件是es6标准,可以部分代替vue或react等数据响应式框架的部分功能,关键是Webcomponents获得标准支持,原生可用;基于webcomponents标准,AXUI的组件分为两类,一类是有至少一个模块内核的webcomponents组件,修改attributes属性等同于更新模块的参数(使用update方法),例如AX-MENU自定义标签,其内核是Menu模块;第二类是没有核心模块的普通webcomponents组件,通过修改其自身的attributes即可更新参数,例如AX-LINE等。
component系列文档 Component组件 1周前更新

前言

本框架的自定义组件命名以ax-开头,有两种组件类型:

  1. 纯样式组件,没有内置模块,例如ax-line组件,只能通过修改组件的attributes来改变状态
  2. 模块式组件,内置至少一个核心模块,除了修改组件的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 模块启用后执行