Grid 宫格

介绍

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

引入

app.jsonindex.json中引入组件,详细介绍见快速上手

  1. "usingComponents": {
  2. "van-grid": "@vant/weapp/grid/index",
  3. "van-grid-item": "@vant/weapp/grid-item/index"
  4. }

Vant Weapp 1.0 版本开始支持此组件,升级方式参见快速上手

代码演示

基本用法

通过icon属性设置格子内的图标,text属性设置文字内容。

  1. <van-grid>
  2. <van-grid-item icon="photo-o" text="文字" />
  3. <van-grid-item icon="photo-o" text="文字" />
  4. <van-grid-item icon="photo-o" text="文字" />
  5. <van-grid-item icon="photo-o" text="文字" />
  6. </van-grid>

自定义列数

默认一行展示四个格子,可以通过column-num自定义列数。

  1. <van-grid column-num="3">
  2. <van-grid-item icon="photo-o" text="文字" wx:for="{{ 6 }}" />
  3. </van-grid>

自定义内容

通过插槽可以自定义格子展示的内容。

  1. <van-grid column-num="3" border="{{ false }}">
  2. <van-grid-item use-slot wx:for="{{ 3 }}" wx:for-item="index">
  3. <image
  4. style="width: 100%; height: 90px;"
  5. src="https://img.yzcdn.cn/vant/apple-{{ index + 1 }}.jpg"
  6. />
  7. </van-grid-item>
  8. </van-grid>

正方形格子

设置square属性后,格子的高度会和宽度保持一致。

  1. <van-grid square>
  2. <van-grid-item icon="photo-o" text="文字" wx:for="{{ 8 }}" />
  3. </van-grid>

格子间距

通过gutter属性设置格子之间的距离。

  1. <van-grid gutter="{{ 10 }}">
  2. <van-grid-item icon="photo-o" text="文字" wx:for="{{ 8 }}" />
  3. </van-grid>

内容横排

direction属性设置为horizontal,可以让宫格的内容呈横向排列。

  1. <van-grid direction="horizontal" column-num="2">
  2. <van-grid-item icon="photo-o" text="文字" />
  3. <van-grid-item icon="photo-o" text="文字" />
  4. <van-grid-item icon="photo-o" text="文字" />
  5. </van-grid>

页面跳转

可以通过url属性进行页面跳转,通过link-type属性控制跳转类型。

  1. <van-grid clickable column-num="2">
  2. <van-grid-item
  3. icon="home-o"
  4. link-type="navigateTo"
  5. url="/pages/dashboard/index"
  6. text="Navigate 跳转"
  7. />
  8. <van-grid-item
  9. icon="search"
  10. link-type="reLaunch"
  11. url="/pages/dashboard/index"
  12. text="ReLaunch 跳转"
  13. />
  14. </van-grid>

提示信息

设置dot属性后,会在图标右上角展示一个小红点。设置badge属性后,会在图标右上角展示相应的徽标。

  1. <van-grid column-num="2">
  2. <van-grid-item icon="home-o" text="文字" dot />
  3. <van-grid-item icon="search" text="文字" badge="99+" />
  4. </van-grid>

API

Grid Props

参数说明类型默认值
column-num列数number4
icon-size v1.3.2图标大小,默认单位为pxstring28px
gutter格子之间的间距,默认单位为pxstring | number0
border是否显示边框booleantrue
center是否将格子内容居中显示booleantrue
square是否将格子固定为正方形booleanfalse
clickable是否开启格子点击反馈booleanfalse
direction格子内容排列的方向,可选值为 horizontalstringvertical
reverse v1.7.0是否调换图标和文本的位置booleanfalse
use-slot是否使用自定义内容的插槽booleanfalse

Grid 外部样式类

类名说明
custom-class根节点样式类

GridItem Props

参数说明类型默认值
text文字string-
icon图标名称或图片链接,可选值见 Icon 组件string-
icon-color图标颜色string-
icon-prefix v1.7.0第三方图标前缀stringvan-icon
dot是否显示图标右上角小红点booleanfalse
badge图标右上角徽标的内容string | number-
url点击后跳转的链接地址string-
link-type链接跳转类型,可选值为 redirectTo switchTab reLaunchstringnavigateTo

GridItem Events

事件名说明回调参数
bind:click点击格子时触发-

GridItem Slots

名称说明
-自定义宫格的所有内容,需要设置use-slot属性
icon自定义图标,如果设置了use-slot或者icon属性则不生效
text自定义文字,如果设置了use-slot或者text属性则不生效

GridItem 外部样式类

类名说明
custom-class根节点样式类
content-class内容样式类
icon-class图标样式类
text-class文本样式类

Grid 宫格 - 图1