3-2 Vant 组件库
配套 Demo
移动端常见的 UI(按钮、弹窗、标签栏、表单、轮播、下拉刷新……)不用自己从零写,用现成的组件库。移动端 Vue 最流行的是 Vant(有赞出品)。
后端类比:Vant ≈ 一套现成的「UI 工具类库」,你直接调它的组件,不用造轮子。 配套 demo:
demo/3-2-vant-cdn.html(CDN 版,双击即可看 Vant 组件效果,需联网)。第 5 部分会用 npm 方式正式集成。
1. 工程里安装 Vant(项目标准方式)
bash
npm install vantVant 4 支持自动按需引入(只打包你用到的组件,体积小)。推荐配 @vant/auto-import-resolver:
bash
npm install @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -Dvite.config.js:
js
import Components from 'unplugin-vue-components/vite'
import { VantResolver } from '@vant/auto-import-resolver'
export default defineConfig({
plugins: [
vue(),
Components({ resolvers: [VantResolver()] }), // 自动引入用到的 Vant 组件
],
})配好后,模板里直接用 <van-xxx> 组件,不用手动 import。第 5 部分实战就是这套配置。
简单起见,也可以全量引入(开发学习够用):
js// main.js import Vant from 'vant' import 'vant/lib/index.css' app.use(Vant)
2. 常用组件一览(挑高频的)
Vant 组件都以 van- 开头。下面是 H5 里几乎天天用的:
按钮 Button
html
<van-button type="primary">主要按钮</van-button>
<van-button type="success" size="small">小按钮</van-button>
<van-button type="primary" block>块级按钮(占满整行)</van-button>
<van-button type="primary" loading>加载中</van-button>单元格 Cell(列表行,移动端最常见)
html
<van-cell-group inset>
<van-cell title="标题" value="内容" />
<van-cell title="带箭头" is-link to="/about" />
<van-cell title="带图标" icon="location-o" value="深圳" />
</van-cell-group>导航栏 NavBar(顶部标题栏)
html
<van-nav-bar title="标题" left-text="返回" left-arrow @click-left="onBack" />标签栏 Tabbar(底部导航,H5 App 必备)
html
<van-tabbar v-model="active">
<van-tabbar-item icon="home-o">首页</van-tabbar-item>
<van-tabbar-item icon="search">分类</van-tabbar-item>
<van-tabbar-item icon="cart-o" :badge="cartCount">购物车</van-tabbar-item>
<van-tabbar-item icon="user-o">我的</van-tabbar-item>
</van-tabbar>表单 Form + Field
html
<van-form @submit="onSubmit">
<van-cell-group inset>
<van-field v-model="username" label="用户名" placeholder="请输入"
:rules="[{ required: true, message: '请填用户名' }]" />
<van-field v-model="password" type="password" label="密码" />
</van-cell-group>
<van-button type="primary" block native-type="submit">提交</van-button>
</van-form>注意:Vant 的表单组件也用 v-model 双向绑定(回顾 1-2),:rules 做校验。
3. 函数式组件(Toast / Dialog / Notify)
提示、弹窗这类,Vant 提供函数调用方式,不用写标签:
js
import { showToast, showDialog, showConfirmDialog } from 'vant'
showToast('提交成功') // 轻提示
showToast({ type: 'loading', message: '加载中...' })
showConfirmDialog({ title: '确认删除?', message: '删了找不回' })
.then(() => { /* 点了确认 */ })
.catch(() => { /* 点了取消 */ })后端类比:像调用一个工具方法弹个提示,而不是在页面里摆一个隐藏的弹窗组件再控制显隐。很方便。
4. 怎么查组件用法
Vant 组件非常多,不用全记。用到时去官方文档查:每个组件都有完整示例和属性表。
- 官网:vant 官方文档(搜「Vant 4」)
- 用法套路一致:看示例 → 复制 → 改 props → 看效果
学习方法:先在 demo / 实战项目里把「按钮、Cell、NavBar、Tabbar、Field、Toast、Dialog」这几个用熟,其余按需查文档即可。
动手练习
- 双击打开
demo/3-2-vant-cdn.html(需联网),看各种 Vant 组件长什么样、能交互。 - 点「显示 Toast」「确认弹窗」按钮,体会函数式调用。
- 底部 Tabbar 切换,观察选中态;给购物车项的
:badge改个数字看角标。 - 在表单里不填用户名直接提交,看 Vant 的校验提示。
- 按 F12 开设备工具栏,用手机视图看,更接近真机效果。
小结
- 移动端 UI 用 Vant 组件库,组件以
van-开头。 - 工程里
npm install vant+ 自动按需引入(@vant/auto-import-resolver)。 - 高频组件:Button、Cell、NavBar、Tabbar、Form/Field;提示用函数式
showToast/showDialog。 - 用法靠查官方文档,先把几个核心组件用熟。
➡️ 下一章:3-3 触摸事件与下拉刷新/上拉加载