Skip to content

🚀 快速上手 - 5 分钟让你爱上 Vant!

🎯 开始你的 Vant 之旅

欢迎来到 Vant 的世界!这里将带你快速掌握 Vant 的安装方法和基本使用技巧。无论你是前端新手还是资深开发者,都能在这里找到最适合的上手方式。

💡 小贴士:建议先花 2 分钟浏览一下整个文档,然后选择最适合你的安装方式开始实践!

📦 安装 Vant

🔧 方式一:npm 安装(推荐)

这是最常用也是最推荐的安装方式,适合大部分项目场景:

bash
# 🎉 Vue 3 项目,安装最新版 Vant(推荐)
npm i vant

# 🔄 Vue 2 项目,安装 Vant 2(维护版本)
npm i vant@latest-v2

其他包管理器

bash
# 🧶 通过 yarn 安装(速度快)
yarn add vant

# 📦 通过 pnpm 安装(节省空间)
pnpm add vant

# ⚡ 通过 Bun 安装(超快速度)
bun add vant

🌟 为什么选择 npm 安装?

  • ✅ 支持 Tree Shaking,自动优化包体积
  • ✅ 完整的 TypeScript 支持
  • ✅ 可以使用所有高级功能
  • ✅ 便于版本管理和更新

🆕 创建新项目

准备开始一个全新的项目?我们为你精心挑选了几个最佳的构建工具:

🏆 Rsbuild(强烈推荐)

为什么选择 Rsbuild?

  • 超快构建:基于 Rspack,构建速度比 Webpack 快 5-10 倍
  • 🎯 官方支持:由 Vant 作者亲自开发,对 Vant 提供第一优先级支持
  • 🛠️ 开箱即用:零配置即可开始开发
  • 🔧 现代化:支持最新的前端技术栈
bash
# 🚀 一键创建 Rsbuild 项目
npm create rsbuild@latest

💡 小贴士:选择 Vue 模板,然后安装 Vant,就能立即开始开发了!

🌟 其他优秀选择

  • Vite:轻量快速,开发体验极佳
  • Nuxt:全栈框架,支持 SSR/SSG

📚 官方示例项目

不想从零开始?直接使用我们的示例项目,拿来即用:

项目技术栈特色
🏗️ Rsbuild 示例Vue 3 + Vant 4 + Rsbuild🚀 极速构建,官方推荐
⚡ Vite 示例Vue 3 + Vant 4 + Vite🔥 热更新,开发体验佳
🌐 Nuxt3 示例Vue 3 + Nuxt 3 + Vant 4📱 SSR 支持,SEO 友好

🎯 快速开始git clone 任意一个示例项目,然后 npm install && npm run dev 即可!

🌐 方式二:CDN 引入(适合快速原型)

想要快速验证想法或制作简单页面?CDN 引入是你的最佳选择!

html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>🎉 我的第一个 Vant 页面</title>
  
  <!-- 🎨 引入 Vant 样式文件 -->
  <link
    rel="stylesheet"
    href="https://fastly.jsdelivr.net/npm/vant@4/lib/index.css"
  />
</head>
<body>
  <div id="app">
    <!-- 📱 这里将渲染我们的移动端应用 -->
  </div>

  <!-- 🔧 引入 Vue 和 Vant 的 JS 文件 -->
  <script src="https://fastly.jsdelivr.net/npm/vue@3"></script>
  <script src="https://fastly.jsdelivr.net/npm/vant@4/lib/vant.min.js"></script>

  <script>
    // 🚀 创建 Vue 应用
    const app = Vue.createApp({
      template: `
        <div style="padding: 20px;">
          <h2>🎉 欢迎使用 Vant!</h2>
          <van-button type="primary" @click="handleClick">
            点击我试试
          </van-button>
        </div>
      `,
      methods: {
        handleClick() {
          // 📢 调用 Vant 的 Toast 组件
          vant.showToast('🎊 恭喜你,成功使用 Vant!');
        }
      }
    });
    
    // 🔌 注册 Vant 组件
    app.use(vant);
    
    // 🖼️ 如果需要使用图片懒加载,手动注册 Lazyload
    app.use(vant.Lazyload);
    
    // 🎯 挂载应用
    app.mount('#app');
  </script>
</body>
</html>

💡 试试看:复制上面的代码到一个 HTML 文件中,用浏览器打开,你就能看到一个可以工作的 Vant 应用了!

🌐 免费 CDN 服务

以下是一些优质的免费 CDN 服务,任选其一即可:

CDN 服务特点链接
🚀 jsDelivr全球 CDN,速度快,稳定性好查看详情
📦 cdnjsCloudflare 提供,覆盖全球查看详情
🔗 unpkgnpm 官方 CDN,实时同步查看详情

⚠️ 使用建议

适用场景

  • ✅ 快速原型开发
  • ✅ 学习和实验
  • ✅ 个人小项目
  • ✅ 技术演示

企业级项目建议

  • 🏢 npm 安装 + 构建工具打包(推荐)
  • 🏢 下载文件并托管在自己的 CDN 上
  • 🏢 使用私有 npm 仓库

🔒 安全提示:生产环境建议使用自托管方式,避免第三方 CDN 的潜在风险。

🎯 学习示例

📚 官方示例工程

想要深入学习 Vant?我们为你准备了丰富的示例工程

🎓 你将学到什么?

学习内容难度收获
🏗️ 基于 Rsbuild 搭建应用⭐⭐掌握最新构建工具
基于 Vite 搭建应用⭐⭐体验极速开发
🌐 基于 Nuxt 搭建应用⭐⭐⭐学会 SSR 开发
🔧 基于 Vue CLI 搭建应用⭐⭐传统构建方式
📦 配置按需引入组件⭐⭐⭐优化包体积
📱 配置 Rem 适配方案⭐⭐⭐移动端适配
🖥️ 配置 Viewport 适配方案⭐⭐⭐响应式设计
🔷 配置 TypeScript 工程⭐⭐⭐⭐类型安全开发

🎯 学习建议:建议从 Rsbuild 示例开始,它是最现代化的方案!

🔧 引入组件

🌟 方法一:常规用法(推荐新手)

这是最简单直接的使用方式,适合快速上手:

js
import { createApp } from 'vue';
// 🎯 1. 引入你需要的组件
import { Button } from 'vant';
// 🎨 2. 引入组件样式
import 'vant/lib/index.css';

const app = createApp();

// 🔌 3. 注册你需要的组件
app.use(Button);

🎉 优势

  • 简单易懂:三步即可完成配置
  • 自动优化:支持 Tree Shaking,自动移除未使用的 JS 代码
  • 零配置:无需额外插件配置
  • 稳定可靠:不依赖第三方插件

📖 更多注册方式: Vant 支持多种组件注册方式:

  • 🌍 全局注册
  • 📍 局部注册
  • 🔄 动态注册

💡 小贴士:虽然 JS 代码会自动优化,但 CSS 样式会全量引入。如果你的项目对 CSS 体积要求极致,可以考虑下面的方法二。

⚡ 方法二:按需引入样式(进阶优化)

想要极致的包体积优化?这个方法适合你!

🎯 适用场景

  • 📱 对包体积要求极致的移动端应用
  • 🚀 需要极快加载速度的项目
  • 💰 流量敏感的应用

🔧 技术原理: 使用 unplugin-vue-components 插件自动引入组件,配合 Vant 官方的 @vant/auto-import-resolver 解析器,实现 CSS 样式的按需引入。

⚖️ 权衡考虑

  • 优势:CSS 体积更小,加载更快
  • 劣势:配置稍微复杂,依赖第三方插件

💡 建议:如果你的项目对 CSS 体积要求不是特别极致,推荐使用更简便的方法一。

🔧 步骤一:安装插件

bash
# 📦 npm 安装
npm i @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D

# 🧶 yarn 安装
yarn add @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D

# 📦 pnpm 安装
pnpm add @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D

# ⚡ bun 安装
bun add @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import -D

⚙️ 步骤二:配置插件

根据你的构建工具选择对应的配置方式:

🏗️ Rsbuild 项目配置

rsbuild.config.js 文件中配置:

js
import { defineConfig } from '@rsbuild/core';
import { pluginVue } from '@rsbuild/plugin-vue';
import AutoImport from 'unplugin-auto-import/rspack';
import Components from 'unplugin-vue-components/rspack';
import { VantResolver } from '@vant/auto-import-resolver';

export default defineConfig({
  plugins: [pluginVue()],
  tools: {
    rspack: {
      plugins: [
        // 🔄 自动导入 Vant 组件的 API
        AutoImport({
          resolvers: [VantResolver()],
        }),
        // 🎨 自动导入 Vant 组件和样式
        Components({
          resolvers: [VantResolver()],
        }),
      ],
    },
  },
});
⚡ Vite 项目配置

vite.config.js 文件中配置:

js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from '@vant/auto-import-resolver';

export default defineConfig({
  plugins: [
    vue(),
    // 🔄 自动导入 Vant 组件的 API
    AutoImport({
      resolvers: [VantResolver()],
    }),
    // 🎨 自动导入 Vant 组件和样式
    Components({
      resolvers: [VantResolver()],
    }),
  ],
});
🔧 Webpack / Vue CLI 项目配置

webpack.config.jsvue.config.js 文件中配置:

js
const AutoImport = require('unplugin-auto-import/webpack');
const Components = require('unplugin-vue-components/webpack');
const { VantResolver } = require('@vant/auto-import-resolver');

module.exports = {
  // ...其他配置
  plugins: [
    // 🔄 自动导入 Vant 组件的 API
    AutoImport({
      resolvers: [VantResolver()],
    }),
    // 🎨 自动导入 Vant 组件和样式
    Components({
      resolvers: [VantResolver()],
    }),
  ],
};

🎯 配置说明

  • AutoImport:自动导入组件的 API(如 showToastshowDialog 等)
  • Components:自动导入组件本身和对应的 CSS 样式

🎉 步骤三:开始使用

配置完成后,你就可以享受自动导入的便利了!

vue
<template>
  <!-- ✨ 无需手动导入,直接使用 Vant 组件 -->
  <van-button type="primary" @click="showToast('success')">
    点击我试试
  </van-button>
  <van-cell title="自动导入真香!" />
</template>

<script setup>
// 🎯 无需手动导入,直接使用 Vant 的 API
showToast('Hello Vant!');

// 🔥 也可以使用其他 API
const showSuccess = () => {
  showToast({
    type: 'success',
    message: '操作成功!'
  });
};
</script>

🎊 享受的便利

  • 零导入:无需手动 import 组件和样式
  • 智能提示:IDE 自动提示可用组件
  • 按需加载:只打包使用到的组件和样式
  • 类型安全:完整的 TypeScript 支持

⚠️ 使用提示

🚨 重要注意事项

  • 避免混用:不要同时使用「全量引入」和「按需引入」,会导致代码重复
  • 🐛 问题反馈:组件导入问题请到 unplugin-vue-components 反馈
  • 🎨 样式问题:样式相关问题请到 Vant 仓库反馈

🔧 版本兼容性

  • unplugin-vue-components >= 0.26.0 时,webpack/vue-cli/rspack 需要使用 ComponentsPlugin.default
  • 更多配置选项请查看 @vant/auto-import-resolver 文档

🌐 在框架中使用

🌟 在 Nuxt 3 中使用

🎯 推荐方案:使用官方的 vant-nuxt 模块,享受开箱即用的体验!

✨ 特色功能

  • 🔄 自动引入组件
  • 🎨 按需引入样式
  • 📱 支持函数组件
  • 🚀 零配置使用

📦 步骤一:安装模块

bash
# 📦 npm 安装
npm i @vant/nuxt -D

# 🧶 yarn 安装
yarn add @vant/nuxt -D

# 📦 pnpm 安装
pnpm add @vant/nuxt -D

# ⚡ bun 安装
bun add @vant/nuxt -D

⚙️ 步骤二:配置模块

nuxt.config.js 文件中添加模块:

js
export default defineNuxtConfig({
  // 🔌 添加 Vant Nuxt 模块
  modules: ['@vant/nuxt'],
  
  // 🎨 可选:自定义配置
  vant: {
    /** Vant 配置选项 */
  }
});

🎉 步骤三:开始使用

配置完成后,就可以直接使用 Vant 组件了!

vue
<template>
  <div>
    <!-- 🎯 标准写法 -->
    <van-button type="primary" @click="showToast('toast')">
      显示提示
    </van-button>
    
    <!-- 🔤 PascalCase 写法 -->
    <VanButton type="success" @click="showNotify('notify')">
      显示通知
    </VanButton>
    
    <!-- ⚡ 懒加载写法 -->
    <LazyVanButton type="default">
      懒加载按钮
    </LazyVanButton>
  </div>
</template>

<script setup>
// 🎯 直接使用 API,无需导入
const handleClick = () => {
  showToast({
    type: 'success',
    message: 'Nuxt + Vant 真香!'
  });
};
</script>

📚 了解更多:查看 Nuxt 组件文档 了解组件的更多用法。

🔄 迁移指南

告别 babel-plugin-import

🎉 好消息:Vant 4.0+ 不再需要 babel-plugin-import

如果你的项目还在使用,请立即移除:

diff
// babel.config.js
module.exports = {
  plugins: [
-    ['import', {
-      libraryName: 'vant',
-      libraryDirectory: 'es',
-      style: true
-    }, 'vant']
  ]
};

🚀 移除后的收益

收益说明
编译更快可以使用 esbuild、swc 等现代编译工具
🔓 导入更灵活可以导入工具函数、类型定义等
🛠️ 配置更简单减少 babel 配置复杂度
🔧 兼容性更好支持更多构建工具和框架

💡 现在你可以这样导入

ts
// 🎯 导入组件
import { Button, Cell } from 'vant';

// 🔧 导入 API 函数
import { showToast, showDialog } from 'vant';

// 📝 导入类型定义(TypeScript)
import type { ButtonType, CellProps } from 'vant';

🎯 迁移提示

  • ✅ 移除插件后,现有代码无需修改
  • ✅ 建议使用方法一(常规用法)或方法二(按需引入)
  • ✅ 享受更快的编译速度和更灵活的导入方式

📚 相关内容

🚀 快速开始

🔧 开发指南

🛠️ 开发工具

🌐 多端支持

🎯 构建工具集成

💡 最佳实践

🤝 社区与支持

📖 学习资源

基于Vant构建的企业级移动端解决方案