Skip to content

Grid 宫格布局

介绍

宫格可以在水平方向上把页面分隔成等宽度的区块,用于展示内容或进行页面导航。

基础用法

宫格的宽度是根据父元素的宽度自动计算的,宫格的列数可以通过 columns 属性来指定。

html
<vd-grid columns="6">
  <vd-grid-item v-for="num in 18" :key="num" :index="index">
    {{ num }}
  </vd-grid-item>
</vd-grid>

行、列间距

通过 rowGap columnGap 属性来设置宫格行、列间距。

html
<vd-grid columns="6" row-gap="12" column-gap="12">
  <vd-grid-item v-for="num in 18" :key="num" :index="index">
    {{ num }}
  </vd-grid-item>
</vd-grid>

自定义高度

通过 height 属性来设置宫格自定义高度,设置百分比时,根据宽度比例计算。

height="75%" 表示宫格高度为宫格宽度的 75%

html
<vd-grid columns="6" height="75%">
  <vd-grid-item v-for="num in 18" :key="num" :index="index">
    {{ num }}
  </vd-grid-item>
</vd-grid>

载入动画

通过 grid-transition 属性来设置宫格自定义载入动画,动画名称参考 Transition 组件。

html
<vd-grid columns="6" grid-transition="zoom">
  <vd-grid-item v-for="num in 18" :key="num" :index="index">
    {{ num }}
  </vd-grid-item>
</vd-grid>

拖拽排序

通过 sortable 属性来设置宫格是否可拖拽排序。

html
<vd-grid columns="6" sortable>
  <vd-grid-item v-for="num in 18" :key="num" :index="index">
    {{ num }}
  </vd-grid-item>
</vd-grid>

API

Grid Props

参数说明类型默认值
columns列数string | number3
height高度string | number'100%'
radius边框半径string | number4
row-gap行间距string | number8
column-gap列间距string | number8
grid-transition载入动画TransitionName'none'
grid-transition-duration载入动画持续时间TransitionDuration400
sortable是否可拖拽排序booleanfalse
sort-target是否展示排序目标占位booleanfalse

GridItem Props

参数说明类型默认值
transition载入动画TransitionName-
transition-duration载入动画持续时间TransitionDuration-
transition-delay载入动画延迟时间TransitionDuration-
sortable是否可拖拽排序boolean-
index索引,在循环时设置number-

代替原始 Props

参数说明类型默认值
custom-id根节点idstring-
custom-class根节点类名ClassValue-
custom-style根节点样式StyleValue-

Grid Events

事件名说明回调参数
click点击时触发MouseEvent
resize尺寸更新时触发NodeSize
sort-start排序开始时触发GridOnSortStartEvent
sort-change排序改变时触发GridOnSortChangeEvent
sort-end排序结束时触发GridOnSortEndEvent

GridItem Events

事件名说明回调参数
click点击时触发MouseEvent

Grid Slots

名称说明
default自定义内容
target排序目标占位内容

GridItem Slots

名称说明
default自定义内容
drag排序拖拽内容

类型定义

组件导出以下类型定义:

ts
import type { GridOnSortStartEvent, GridOnSortChangeEvent, GridOnSortEndEvent } from 'vital-design';

赣ICP备2025061025号-1