Skip to content

Grid 宫格 - Vant 4

Grid 宫格

🏢 介绍

Grid 宫格就像一个智能的收纳盒!✨ 它能将页面整齐地分割成一个个等宽的小格子,让内容展示变得井井有条。无论是应用首页的功能入口、电商平台的商品展示,还是分类导航的整齐排列,Grid 都能让你的页面瞬间变得专业又美观!就像搭积木一样简单,却能创造出无限可能的布局效果!🎯

📦 引入

通过以下方式来全局注册组件,更多注册方式请参考组件注册

js
import { createApp } from'vue'; import { Grid, GridItem } from'vant'; const app = createApp(); app.use(Grid); app.use(GridItem);

🎯 代码演示

🎯 基础用法

最简单的宫格魔法!✨ 通过 icon 属性为每个格子配上精美的图标,用 text 属性添加描述文字。就像给每个小房间贴上标签一样,让用户一眼就能明白每个格子的用途!简洁明了,颜值与实用并存!🏠

html

🔢 自定义列数

布局的自由度拉满!🎨 默认情况下一行展示四个格子,但通过 column-num 属性,你可以随心所欲地调整列数。想要紧凑一点?设置成 5 列!想要宽松一点?设置成 3 列!完全由你的设计需求决定,让每个页面都有独特的节奏感!

html

🎭 自定义内容

创意无限的表演舞台!✨ 通过插槽功能,你可以在每个格子里放入任何想要的内容。不再局限于简单的图标和文字,图片、按钮、小组件...统统都可以!就像给每个格子配备了一个魔法盒子,想装什么就装什么!🎪

html

⬜ 正方形格子

完美的几何美学!📐 设置 square 属性后,每个格子都会变成标准的正方形,高度和宽度完美匹配。就像精心切割的瓷砖一样,整齐划一,给人一种强迫症患者都会满意的视觉享受!特别适合图标展示和对称布局!

html

📏 格子间距

给格子们一些呼吸的空间!🌬️ 通过 gutter 属性可以精确控制格子之间的距离。想要紧密排列营造紧凑感?设置小一点的间距。想要疏朗的布局增加透气感?加大间距就对了!就像调节房间里家具的摆放距离一样,合适的间距让整个布局更加舒适!

html

↔️ 内容横排

换个角度看世界!🔄 将 direction 属性设置为 horizontal,格子内的图标和文字就会从上下排列变成左右排列。就像把竖版的名片改成横版一样,给用户带来不同的视觉体验。特别适合文字较长或者想要营造横向流动感的场景!

html

🧭 页面导航

让每个格子都成为传送门!🚀 通过 to 属性可以设置 Vue Router 路由跳转,实现应用内的无缝导航;通过 url 属性可以设置外部链接跳转,带用户去往任何想去的地方。就像给每个格子都装上了导航系统,一点即达,用户体验超级流畅!

html

🔴 徽标提示

小细节,大作用!✨ 设置 dot 属性后,图标右上角会出现一个醒目的小红点,就像手机应用的未读消息提示一样;设置 badge 属性后,可以显示具体的数字或文字徽标。这些小小的视觉提示能够有效吸引用户注意,让重要信息不被遗漏!🎯

html

API

Grid Props

参数说明类型默认值
column-num列数*numberstring*
icon-size图标大小,默认单位为px*numberstring*
gutter格子之间的间距,默认单位为px*numberstring*
border是否显示边框booleantrue
center是否将格子内容居中显示booleantrue
square是否将格子固定为正方形booleanfalse
clickable是否开启格子点击反馈booleanfalse
direction格子内容排列的方向,可选值为 horizontalstringvertical
reverse是否调换图标和文本的位置booleanfalse

GridItem Props

参数说明类型默认值
text文字string-
icon图标名称或图片链接,等同于 Icon 组件的 name 属性string-

| icon-prefix | 图标类名前缀,等同于 Icon 组件的 class-prefix 属性 | string | van-icon |

| icon-color | 图标颜色,等同于 Icon 组件的 color 属性 | string | - |

| dot | 是否显示图标右上角小红点 | boolean | false | | badge | 图标右上角徽标的内容 | number | string | - | | badge-props | 自定义徽标的属性,传入的对象会被透传给 Badge 组件的 props | BadgeProps | - |

| url | 点击后跳转的链接地址 | string | - | | to | 点击后跳转的目标路由对象,等同于 Vue Router 的 to 属性 | string | object | - |

| replace | 是否在跳转时替换当前页面历史 | boolean | false |

GridItem Events

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

GridItem Slots

名称说明
default自定义宫格的所有内容
icon自定义图标
text自定义文字

类型定义

组件导出以下类型定义:

ts
importtype { GridProps, GridDirection, GridItemProps } from'vant';

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值描述
--van-grid-item-content-paddingvar(--van-padding-md) var(--van-padding-xs)-
--van-grid-item-content-backgroundvar(--van-background-2)-
--van-grid-item-content-active-colorvar(--van-active-color)-
--van-grid-item-icon-size28px-
--van-grid-item-text-colorvar(--van-text-color)-
--van-grid-item-text-font-sizevar(--van-font-size-sm)-

📚 相关文档

Grid 宫格与这些组件搭配使用,能创造出更丰富的页面布局体验:

  • Icon 图标 - Grid 格子的视觉核心,让每个入口都有专属标识 🎨
  • Badge 徽标 - 格子右上角的小提示,重要信息不遗漏 🔴
  • Button 按钮 - 可以放入格子的交互元素,增强操作体验 🔘
  • Image 图片 - 自定义内容的好伙伴,让格子更加丰富多彩 🖼️
  • Cell 单元格 - 另一种列表布局选择,适合更详细的信息展示 📋
  • List 列表 - 垂直布局的完美搭档,不同场景的布局选择 📝
  • Tab 标签页 - 页面导航的另一种形式,与 Grid 形成互补 📑
  • NavBar 导航栏 - 页面顶部导航,与 Grid 构建完整导航体系 🧭
  • Tabbar 标签栏 - 底部导航栏,与 Grid 形成上下呼应 📱
  • ActionSheet 动作面板 - 格子点击后的操作选择面板 📋

基於Vant構建的企業級移動端解決方案