sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
141 lines (91 loc) • 4.85 kB
Markdown
nav: 组件
title: Grid
subtitle: 宫格
group:
title: 布局
order: 1
## 介绍
将多个类目进行等宽排列,用于内容展示或者页面导航。
## 引入
```ts
import Grid from 'sard-uniapp/components/grid/grid.vue'
import GridItem from 'sard-uniapp/components/grid-item/grid-item.vue'
```
## 代码演示
### 基础使用
使用`text`属性设置文本内容,使用`icon`属性设置图标。
@code('${DEMO_PATH}/grid/demo/Basic.vue')
### 自定义列数
默认一行展示四个格子,可以通过`columns`自定义列数。
@code('${DEMO_PATH}/grid/demo/Columns.vue')
### 正方形格子
设置`square`属性后,格子的高度会和宽度保持一致。
@code('${DEMO_PATH}/grid/demo/Square.vue')
### 格子间距
通过`gap`属性设置格子之间的距离。
@code('${DEMO_PATH}/grid/demo/Gap.vue')
### 显示边框
显示边框后看起来分割更明显。
@code('${DEMO_PATH}/grid/demo/Border.vue')
### 内容横排
将`direction`属性设置为`horizontal`可以让宫格的内容呈横向排列。
@code('${DEMO_PATH}/grid/demo/Horizontal.vue')
### 内容翻转
将文本和图标的位置调换。
@code('${DEMO_PATH}/grid/demo/Reverse.vue')
### 可点击的
添加点击态。
@code('${DEMO_PATH}/grid/demo/Clickable.vue')
### 徽标提示
添加点击态。
@code('${DEMO_PATH}/grid/demo/Badge.vue')
### 自定义内容
通过默认插槽可以自定义格子展示的内容。
@code('${DEMO_PATH}/grid/demo/Custom.vue')
## API
### GridProps
| 属性 | 描述 | 类型 | 默认值 |
| ---------- | ------------------------ | -------------------------- | ---------- |
| root-class | 组件根元素类名 | string | - |
| root-style | 组件根元素样式 | StyleValue | - |
| columns | 列数 | number | 4 |
| gap | 格子间距 | string | 0 |
| bordered | 是否显示边框 | boolean | false |
| square | 是否将格子显示为正方形 | boolean | false |
| clickable | 格子是否可点击 | boolean | false |
| reverse | 是否调换图标和文本的位置 | boolean | false |
| direction | 格子排列方向 | 'horizontal' \| 'vertical' | 'vertical' |
### GridSlots
| 插槽 | 描述 | 属性 |
| ------- | -------------- | ---- |
| default | 自定义默认内容 | - |
### GridItemProps
| 属性 | 描述 | 类型 | 默认值 |
| ---------------------------- | -------------------------- | -------------------------------- | ------ |
| root-class | 组件根元素类名 | string | - |
| root-style | 组件根元素样式 | StyleValue | - |
| content-class | 内容元素类名 | string | - |
| content-style | 内容元素样式 | StyleValue | - |
| text | 自定义文字内容 | string | - |
| icon | 图标名称,可以为图片路径 | string | - |
| icon-size | 图标尺寸 | string | - |
| icon-color | 图标颜色 | string | - |
| icon-family | 图标字体名称 | string | - |
| dot <sup>1.12+</sup> | 是否显示宫格项右上角小红点 | boolean | false |
| badge <sup>1.12+</sup> | 宫格项右上角徽标的内容 | number \| string | - |
| badge-props <sup>1.12+</sup> | 自定义徽标属性 | [BadgeProps](./badge#BadgeProps) | - |
### GridItemSlots
| 插槽 | 描述 | 属性 |
| ------- | -------------------------------- | ---- |
| default | 自定义默认内容,会覆盖文字和图标 | - |
| text | 自定义文字内容,会覆盖`text`属性 | - |
| icon | 自定义图标内容,会覆盖`icon`属性 | - |
### GridItemEmits
| 事件 | 描述 | 类型 |
| ----- | -------------- | -------------------- |
| click | 点击格子时触发 | (event: any) => void |
## 主题定制
### CSS 变量
@code('./variables.scss#variables')