Detalhes do pacote

@hadss/web_adaptive_layout_ui

chensheng_slfx265MIT1.0.0-rc.2

Multi-device adaptation advanced component library of the HTML5 framework.

readme (leia-me)

@hadss/web_adaptive_layout_ui

介绍

H5框架的多设备适配高阶组件库核心代码。

目录结构

├─@hadss/web_adaptive_layout_ui // 项目名称
│  ├─src
│  │  ├─components // 组件库源码
│  │  │  └─{component-name}
│  │  │     ├─default // 组件默认属性
│  │  │     ├─index.ts // 父标签源码
│  │  │     └─item.ts // 子标签源码
│  │  ├─hooks // 公共方法
│  │  │  └─{method-name}
│  │  ├─types // 类型定义文件
│  │  │  └─{component/method name}
│  │  └─index.ts // 组件库入口文件
│  ├─LICENSE
│  ├─vite.config.ts // 打包配置文件
│  ├─tsconfig.json // typeScript配置文件

新增特性

  1. 新增纵向断点能力,相关接口useVerticalBreakpointValue和getCurrentVerticalBreakpoint。
  2. subscribeToBreakpoint接口新增对纵向断点的监听。

断点能力

API

属性 说明 参数值 返回值 默认值
customBreakpoints 自定义横向断点类型和区间,实例化时传入,暂不支持自定义纵向断点 Record<Breakpoint, number> - 横向断点 (xs:0,sm:320,md:600,lg:840,xl:1440)
subscribeToBreakpoint 订阅断点变化,传入回调函数 callback:(widthCallback: BreakpointCallback \ null , heightCallback: BreakpointCallback \ null ) => void 取消订阅的函数 widthCallback和heightCallback为null
useBreakpointValue 传入不同横向断点下的属性值,根据当前断点返回对应的值 Record<Breakpoint, any> 当前横向断点下的属性值 -
useVerticalBreakpointValue 传入不同纵向断点下的属性值,根据当前断点返回对应的值 Record<Breakpoint, any> 当前纵向断点下的属性值 -
getCurrentBreakpoint 获取当前的横向断点值 - 当前的横向断点值 -
getCurrentVerticalBreakpoint 获取当前的纵向断点值 - 当前的纵向断点值 纵向断点 (sm:高宽比小于0.8,md:高宽比0.8至1.2,lg:高宽比大于等于1.2)
getBreakpoints 获取当前的内置的横向断点类型和区间 - 当前的内置的横向断点类型和区间 -
destroy 销毁实例,移除监听器,清空回调函数集合 - - -

使用说明

1. import断点管理类

  import { BreakpointManager } from '@hadss/web_adaptive_layout_ui';

2. 实例化断点管理类

  const breakpointManager = new BreakpointManager({});

可传入参数customBreakpoints,自定义断点类型和区间:

  {
    xs: 0,
    sm: 320,
    md: 600,
    lg: 840,
    xl: 1440,
  }

3. 注册断点回调,在回调中实时获取当前断点下的属性值和断点值

  const unsubscribe = breakpointManager.subscribeToBreakpoint((bp,vbp) => {
    //bp为横向断点回调,vbp为纵向断点回调,均可设置为null来只使用一种断点  
    direction = breakpointManager.useBreakpointValue({
      xs: 'vertical',
      sm: 'vertical',
      md: 'horizontal',
      lg: 'horizontal',
      xl: 'horizontal',
    });
    breakpointManager.getCurrentBreakpoint();
    breakpointManager.getCurrentVerticalBreakpoint();
  })

如果只定义了中间连续区域的属性值,两侧的断点区间会根据最近的值进行补齐,故上面的代码可做一定的简化:

  const unsubscribe = breakpointManager.subscribeToBreakpoint((bp,vbp) => {
    direction = breakpointManager.useBreakpointValue({
      sm: 'vertical',
      md: 'horizontal',
    });
    breakpointManager.getCurrentBreakpoint();
    breakpointManager.getCurrentVerticalBreakpoint();
  })

4. 获取当前的内置的断点类型和区间

  breakpointManager.getBreakpoints();

5. 页面销毁前取消断点订阅并销毁实例

  unsubscribe();
  breakpointManager.destroy();

类挪移布局组件MultiDiversion

API

父标签

属性 说明 类型 可选值 默认值
direction 设置横纵向排列 String "horizontal":横向排列
"vertical":纵向排列
"xs":vertical
"sm":vertical
"md":horizontal
"lg":horizontal
"xl":horizontal
"xxl":horizontal
splitLine 设置是否显示子元素分割线 Boolean "true","false" false
splitLineMode 设置分割线的类型 String "solid":实线
"dashed":虚线
"dotted":点线
dotted

子标签

属性 说明 类型 可选值 默认值
name 当前子标签的唯一标识名称(必填) String - -
diversionCols 子元素占据的栅格列数 String / Number - 12
diversionGap 子元素内容的左右内边距和 String / Number - 0

页签栏组件MultiTabBar

API

父标签

属性 说明 类型 可选值 默认值
vertical 设置是否为纵向 Boolean "true":纵向tab
"false":横向tab
"xs":false
"sm":false
"md":false
"lg":true
"xl":true
"xxl":true
barPosition 设置组件的位置 String "start":容器左侧/顶部
"end":容器右侧/底部
"xs":end
"sm":end
"md":end
"lg":start
"xl":start
"xxl":start

页签栏标签

属性 说明 类型 可选值 默认值
value 设置页签栏子标签默认选中项 String / Number 子标签设置的name属性 -
width 设置组件的宽度 String / Number - "xs":100%
"sm":100%
"md":100%
"lg":58px
"xl":58px
"xxl":58px
height 设置组件的高度 String / Number - "xs":78px
"sm":78px
"md":78px
"lg":100%
"xl":100%
"xxl":100%
unselectedColor 设置子标签文本字体未选中时的颜色 String - #aaacab
selectedColor 设置子标签文本字体选中时的颜色 String - #0b59f7
layoutMode 设置子标签里元素的排布方式 String "vertical":子标签内容垂直排布
"horizontal":子标签内容水平排布
"xs":vertical
"sm":vertical
"md":horizontal
"lg":vertical
"xl":vertical
"xxl":vertical
verticalAlign 设置子标签里元素垂直方向上的对齐方式 String "top":顶部对齐
"center":居中对齐
"bottom":底部对齐
center
horizontalAlign 设置子标签里元素水平方向上的对齐方式 String "start":起始端对齐
"center":居中对齐
"end":末端对齐
center
bgColor 设置子标签未选中时的背景颜色 String - #ffffff
selectedBgColor 设置子标签选中时的背景颜色 String - #f1f5ff

子标签

属性 说明 类型 可选值 默认值
name 当前子标签的唯一标识名称(必填) String - -

EVENT

事件名 说明 参数
onTabItemClick 点击页签栏子项触发的事件 Function({index, name})
"index":选中子项的索引值
"name":选中子项的标识名称

网格组件MultiGrid

API

父标签

属性 说明 类型 可选值 默认值
columnsTemplate 设置组件每一列的列宽 String / Number 1.固定单位
2.百分比
3.repeat(),接受两个参数:
(1)参数1:重复的次数,参数2:需要重复的值
(2)参数1:auto-fill关键字表示自动填充,参数2:每列宽度
(3)参数1:auto-fit关键字表示自动填充,宽度不足时会调整
3.fr关键字:表示比例关系
4.minmax():接受最小值和最大值两个参数
5.auto关键字:浏览器自己决定长度
"xs":1fr 1fr 1fr 1fr
"sm":1fr 1fr 1fr 1fr
"md":1fr 1fr 1fr 1fr 1fr 1fr
"lg":1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr
"xl":1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr
"xxl":1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr
rowsTemplate 设置组件每一行的行高 String / Number 同columnsTemplate auto
gridRowGap 设置网格行与行的间隔 String / Number - 0
gridColumnGap 设置网格列与列的间隔 String / Number - 0
justifyItems 设置网格项内容的水平位置 String "stretch":拉伸以填充网格项
"start":网格项起点位置对齐
"end":网格项终点位置对齐
"center":网格项中间位置对齐
stretch
alignItems 设置网格项内容的垂直位置 String "stretch":拉伸以填充网格项
"start":网格项起点位置对齐
"end":网格项终点位置对齐
"center":网格项中间位置对齐
stretch
justifyContent 整个内容区域在容器里的水平位置 String "stretch":未指定大小时拉伸填充容器
"start":对齐容器的起始边框
"end":对齐容器的结束边框
"center":容器内容居中
"space-around":子项两侧间隔相等
"space-between":子项间间隔相等,与容器边框无间隔
"space-evenly":子项间间隔相等
stretch
alignContent 整个内容区域在容器里的垂直位置 String 同justifyContent stretch

子标签

属性 说明 类型 可选值 默认值
name 当前子标签的唯一标识名称(必填) String - -
gridColumnStart 设置左边框所在的起始列号 String / Number - auto
gridColumnEnd 设置右边框所在的终点列号 String / Number - auto
gridRowStart 设置上边框所在的起始行号 String / Number - auto
gridRowEnd 设置下边框所在的终点行号 String / Number - auto
label 设置网格项的文本内容(不支持断点) String - -
icon 设置网格项的图标链接(不支持断点,只支持网络链接) String - -

EVENT

事件名 说明 参数
onGridItemClick 点击网格子项触发的事件 Function({index, name})
"index":选中子项的索引值
"name":选中子项的标识名称