Vant-Weapp logo

Vant-Weapp

由有赞团队开源的轻量、可靠的微信小程序 UI 组件库,提供 70+ 高质量组件,覆盖电商、工具类小程序等核心场景,是小程序生态中使用最广泛的第三方组件库之一

精选工具移动端小程序微信小程序UI组件库

Vant Weapp 是有赞前端团队于 2017 年开源的微信小程序 UI 组件库,基于微信小程序原生自定义组件体系构建,利用 CSS 变量实现主题灵活性。提供 70+ 组件,尤其针对电商场景有专属业务组件。

Vant-Weapp

由有赞团队开源的轻量、可靠的微信小程序 UI 组件库,提供 70+ 高质量组件,覆盖电商、工具类小程序等核心场景,是小程序生态中使用最广泛的第三方组件库之一。

技术简介说明

Vant Weapp 是有赞(Youzan)前端团队于 2017 年开源的微信小程序 UI 组件库,作为 Vant 移动端组件库生态的小程序版本,与 Vue 2/Vue 3 版本共享设计理念与 API 风格。项目基于微信小程序原生自定义组件(Custom Component)体系构建,充分利用 Shadow DOM 的样式隔离能力与 CSS 变量的运行时穿透特性,实现了兼顾组件独立性与主题灵活性的技术方案。

作为微信小程序生态中最成熟的第三方组件库之一,Vant Weapp 在 GitHub 上积累了超过 18,400 Stars,npm 包 @vant/weapp 保持稳定下载量。其组件覆盖了基础组件、表单、导航、反馈、展示、业务等六大分类,尤其针对电商场景(商品卡片、SKU 选择器、提交订单栏等)提供了专属业务组件,是有赞多年电商技术积累的前端沉淀。

截至 2026 年,Vant Weapp 最新版本为 v1.11.7(2024 年 10 月发布),项目进入稳定维护阶段。虽然更新频率放缓,但凭借完善的文档体系、丰富的组件生态和广泛的社区基础,仍然是微信小程序开发中的主流 UI 选型之一。

基本信息

属性详情
官网https://vant-ui.github.io/vant-weapp/
国内镜像https://vant.pro/vant-weapp/
GitHubhttps://github.com/youzan/vant-weapp
Gitee 镜像https://gitee.com/vant-contrib/vant-weapp
LicenseMIT
最新版本v1.11.7(2024-10-14)
npm 包名@vant/weapp(v1.x)/ vant-weapp(v0.x,已废弃)
主要维护者有赞(Youzan)前端团队
核心贡献者chenjiahan、cookfront、wangnaiyi(w91)、pangxie(pangxie1991)、rex-zsd、nemo-shen、Lindysen、JakeLaoyu、landluck、wjw-gavin、inottn、zhousg 等 12+ 人
GitHub Stars18,400+
GitHub Forks3,500+
GitHub Commits2,820+
技术栈JavaScript 41.3% / TypeScript 39.6% / Less 19.0% / Shell 0.1%
小程序基础库要求>= 2.6.5
开源时间2017 年
1.0 正式版2019-12-11
DCloud 插件市场https://ext.dcloud.net.cn/plugin?id=100

快速上手

安装

Vant Weapp 支持通过 npm、yarn 或 pnpm 安装,也支持直接下载源码使用。

# npm 安装(推荐)
npm i @vant/weapp -S --production
 
# yarn 安装
yarn add @vant/weapp -S --production
 
# pnpm 安装
pnpm add @vant/weapp -S --production
 
# 安装 0.x 旧版(已废弃,不推荐)
npm i vant-weapp -S --production

注意:安装后需在微信开发者工具中执行「工具 → 构建 npm」,将 npm 包转换为小程序可用的代码,生成 miniprogram_npm 目录。

或直接下载源码,将 dist 目录拷贝到项目中:

git clone https://github.com/youzan/vant-weapp.git

基础配置

安装完成后,在 app.json 或页面的 .json 配置文件中通过 usingComponents 引入所需组件:

{
  "usingComponents": {
    "van-button": "@vant/weapp/button/index",
    "van-cell": "@vant/weapp/cell/index",
    "van-cell-group": "@vant/weapp/cell-group/index",
    "van-icon": "@vant/weapp/icon/index",
    "van-toast": "@vant/weapp/toast/index"
  }
}

最小示例

<!-- pages/index/index.wxml -->
<van-button type="primary" bind:click="onClick">主要按钮</van-button>
 
<van-cell-group>
  <van-cell title="单元格" value="内容" />
  <van-cell title="单元格" label="描述信息" />
</van-cell-group>
 
<van-toast id="van-toast" />
// pages/index/index.js
const Toast = require('@vant/weapp/toast/toast');
 
Page({
  data: {},
  onClick() {
    Toast.success('点击成功');
  }
});

核心概念与架构

技术架构

┌──────────────────────────────────────────────────────┐
│                    微信小程序运行时                      │
│  ┌────────────────────────────────────────────────┐  │
│  │           Vant Weapp 组件层                     │  │
│  │  ┌──────────┐ ┌──────────┐ ┌──────────┐      │  │
│  │  │ 基础组件  │ │ 表单组件  │ │ 业务组件  │ ...  │  │
│  │  │ Button   │ │ Field    │ │GoodsAction│      │  │
│  │  │ Cell     │ │ Picker   │ │ SubmitBar │      │  │
│  │  │ Icon     │ │ Calendar │ │ Card      │      │  │
│  │  └──────────┘ └──────────┘ └──────────┘      │  │
│  │          ↓ 每个组件 = 自定义组件 (Shadow DOM)   │  │
│  │  ┌──────────────────────────────────────┐     │  │
│  │  │ WXML 模板 + WXSS 样式 + JS 逻辑       │     │  │
│  │  │ + WXS 脚本(高性能手势/动画)          │     │  │
│  │  │ + CSS 变量主题系统(运行时可穿透)      │     │  │
│  │  └──────────────────────────────────────┘     │  │
│  └────────────────────────────────────────────────┘  │
│                         ↓                            │
│  ┌────────────────────────────────────────────────┐  │
│  │  基础能力层                                     │  │
│  │  Mixin(behaviors) / Relation / BEM / WXS 工具  │  │
│  └────────────────────────────────────────────────┘  │
│                         ↓                            │
│  ┌────────────────────────────────────────────────┐  │
│  │  主题定制层                                     │  │
│  │  app.wxss 全局 CSS 变量 / ConfigProvider 组件   │  │
│  └────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────┘

核心设计原则

  1. 自定义组件体系:每个组件基于微信小程序自定义组件规范实现,拥有独立的 Shadow DOM,确保样式隔离与封装性。

  2. CSS 变量主题系统:由于小程序不支持运行时编译 Less/Sass,Vant Weapp 采用 CSS 变量(Custom Properties)实现主题定制,变量天然穿透 Shadow DOM,外部可在运行时动态覆盖。从 v1.0 起所有组件支持 CSS 自定义属性,从 v1.7.0 起新增 ConfigProvider 全局配置组件。

  3. 按需引入:组件以独立目录组织,开发者通过 usingComponents 声明式引入,只打包实际使用的组件,控制代码包体积。

  4. WXS 增强:部分组件(如滑动单元格、轮播、Stepper 等)利用微信小程序的 WXS(WeiXin Script)实现高性能动画与手势交互,避免频繁的 setData 调用。WXS 中还封装了 addUnitstylebem 等工具函数减少 setData 次数。

  5. Mixin 复用(behaviors):通过小程序的 behaviors 机制实现组件逻辑复用,如 open-type(微信开放能力)、button(按钮基础)、page-scroll(页面滚动监听)、basic(基础方法)等。

  6. Relation 父子通信:利用小程序的 relations 实现父子组件联动通信(如 Tabs 与 Tab、CellGroup 与 Cell、Collapse 与 CollapseItem)。

  7. TypeScript 支持:提供完整的类型声明包 vant-weapp-typings,源码使用 TypeScript 编写(39.6%),支持开发时的类型检查与智能提示。

源码目录结构

vant-weapp/
├── packages/          # 组件源码(每个组件独立目录)
│   ├── button/
│   │   ├── index.ts       # 组件逻辑
│   │   ├── index.wxml     # 模板
│   │   ├── index.less     # 样式(编译为 WXSS)
│   │   ├── index.wxs      # WXS 脚本
│   │   └── README.md      # 组件文档
│   ├── cell/
│   ├── dialog/
│   ├── common/        # 公共样式与工具函数
│   └── wxs/           # 公共 WXS 脚本
├── dist/              # 编译产物(ES5)
├── example/           # 示例小程序
├── docs/              # 文档源文件
├── lib/               # 构建工具
├── types/             # 类型定义
├── package.json
└── gulpfile.js        # 构建脚本

核心特性

1. 丰富的组件体系(70+ 组件)

覆盖 8 大分类:

分类组件
基础组件Button、Cell、CellGroup、Icon、Image、Popup、Transition、Typography
表单组件Field、Checkbox、Radio、Switch、Stepper、Rate、Search、Uploader、Picker、Calendar、Area、DatetimePicker、Cascader
反馈组件Dialog、Toast、Notify、ActionSheet、ShareSheet、SwipeCell、Overlay、Loading
展示组件Tag、Collapse、CountDown、Divider、List、Skeleton、Steps、ImagePreview、Empty、Circle、Progress、NoticeBar
导航组件NavBar、Tabbar、Tabs、Sidebar、TreeSelect、Grid、IndexBar、DropdownMenu
业务组件GoodsAction、GoodsActionIcon、GoodsActionButton、SubmitBar、Card、Badge
布局组件Row、Col、Sticky、Panel
工具组件ConfigProvider(全局配置/主题定制)

2. CSS 变量主题定制

提供基于 CSS 变量的主题方案,支持全局主题覆盖与局部主题定制。通过 app.wxss 定义全局变量或在 ConfigProvider 组件中配置 theme-vars,实现运行时动态切换主题。

/* app.wxss - 全局覆盖 */
page {
  --van-primary-color: #ff6034;
  --van-button-primary-background-color: #ff6034;
  --van-cell-text-color: #333;
  --van-border-color: #f5f5f5;
}

3. 按需引入

每个组件独立打包,通过 usingComponents 按需声明引入,避免全量加载,有效控制小程序代码包大小(小程序主包限制 2MB)。

4. 电商场景组件

作为有赞出品,天然具备强大的电商基因,提供 GoodsAction(商品导航)、GoodsActionButton(商品按钮)、SubmitBar(提交订单栏)、Card(商品卡片)、Area(省市区选择)等电商专属组件,经过有赞微商城实战打磨。

5. 微信开放能力集成

Button 组件原生支持微信所有 open-type 能力:

  • contact(客服消息)、share(转发)、getPhoneNumber(手机号获取)
  • getUserProfile(用户信息)、chooseAvatar(头像选择)、launchApp(打开 App)
  • openSetting(授权设置)、feedback(意见反馈)
  • agreePrivacyAuthorization(隐私协议授权,v1.10.24 新增)
  • getRealTimePhoneNumber(实时手机号,v1.10.21 新增)

6. 完善的文档与示例

官方文档详尽,每个组件提供完整的属性说明、事件列表、样式变量、代码示例。提供多个实战模板和 vant-demo 官方示例仓库。

7. 高性能交互

利用 WXS 脚本实现手势交互与动画(如 Swipe 滑动、Sticky 吸顶、Slider 拖动等),避免 JS 线程与渲染线程之间的频繁通信,保持 60fps 流畅体验。v1.6.5 版本对 Cell、Col、Divider、Loading、NoticeBar、Picker、Stepper、Sticky、SwipeCell、Switch、Tag、Transition、Uploader 等组件进行了批量性能优化。

8. 跨框架兼容

支持与 Taro、uni-app 等主流小程序开发框架集成使用。在支付宝小程序中可通过社区适配版 vant-aliapp 使用。Taro + React 多端方案可使用社区衍生库 @antmjs/vantui

9. 稳定的 API 设计

自 v1.0 正式版以来,API 保持向后兼容。v1.0 时做了大量 API 调整(如 BadgeGroupSidebarSwitchCell 移除等),之后保持向后兼容,组件属性和事件命名规范统一,降低升级维护成本。

10. Skyline 渲染引擎部分适配

从 v1.11.2 起开始修复 Skyline 模式下部分组件报错问题(Calendar、Input、Textarea、Popup),部分组件已初步支持微信新一代 Skyline 渲染引擎,但完整适配仍在进行中。

生态图

                        Vant 生态全景
                            │
        ┌───────────────────┼───────────────────┐
        │                   │                   │
   Vant (Vue)         Vant Weapp           社区衍生
   ┌────┴────┐      ┌────┴────┐      ┌──────┴──────┐
   │ Vant 2  │      │ 微信小程序 │      │ @antmjs/    │
   │ (Vue 2) │      │ 原生组件  │      │  vantui     │
   ├─────────┤      ├─────────┤      │ (Taro+React)│
   │ Vant 4  │      │ 70+组件  │      ├─────────────┤
   │ (Vue 3) │      │CSS变量   │      │ vant-aliapp │
   ├─────────┤      │主题定制   │      │ (支付宝适配) │
   │React Vant│     │Skyline   │      ├─────────────┤
   │(社区维护)│      │部分适配   │      │ vantui.plus │
   ├─────────┤      └─────────┘      │ (多端版本)  │
   │ Vant CLI│                        └─────────────┘
   │ 构建工具 │
   ├─────────┤
   │vant-demo│
   │ 示例应用 │
   └─────────┘

   ┌───────────────────────────────────────────────────┐
   │                    设计资源                         │
   │  Sketch 设计稿 / Figma 组件库 / 图标库(iconfont.cn) │
   └───────────────────────────────────────────────────┘

生态项目

项目说明
VantVue 移动端组件库(v4.x,持续活跃更新)
Vant Weapp微信小程序组件库(本项目)
React Vant社区维护的 React 移动端组件库
@antmjs/vantui社区维护的 Taro + React 多端组件库
vant-aliapp支付宝小程序适配版本
vant-weapp-typingsTypeScript 类型声明包
Vant CLI组件库构建脚手架(v7)
vant-demo官方示例代码集
@vant/icons图标包(v3.0,迁移至 iconfont.cn)

跨端框架集成

框架集成方式支持端
原生小程序直接使用 @vant/weapp微信 / 抖音小程序
Taro使用 @antmjs/vantui(社区衍生库)微信 / 支付宝 / 百度 / H5 / React Native
uni-appDCloud 插件市场引入微信小程序

适用场景

1. 电商类小程序

Vant Weapp 内置丰富的电商业务组件(GoodsAction 商品导航、SubmitBar 提交订单栏、Card 商品卡片、Area 省市区选择等),源自有赞多年电商技术沉淀,是电商小程序的首选组件库。

2. 工具/效率类小程序

表单组件(Field 输入框、Calendar 日历、Picker 选择器、DatetimePicker 日期选择)、导航组件(Tabs、Sidebar、TreeSelect、DropdownMenu)和反馈组件(Toast、Dialog、Notify)覆盖工具类小程序的核心交互需求。

3. 快速原型与 MVP 开发

丰富的开箱即用组件和详尽的文档使开发者可在数天内完成一个功能完整的微信小程序 MVP,大幅减少 UI 开发工作量。

4. 品牌定制项目

借助 CSS 变量主题方案和 ConfigProvider 组件,可以快速适配品牌视觉规范,实现定制化 UI 风格,适合为不同品牌客户定制小程序外观。

5. 内容与资讯类小程序

List(无限滚动列表)、Skeleton(骨架屏)、NoticeBar(通知栏)、Tabs(标签页)、ImagePreview(图片预览)、CountDown(倒计时)、Tag(标签)等展示类组件适合新闻、社区、图文内容类应用。

6. 营销活动类小程序

ActionSheet(操作面板)、ShareSheet(分享面板)、Dialog(对话框)、Toast(轻提示)、Notify(消息通知)、Popup(弹出层)适合抽奖、促销、分享裂变等营销场景。

7. 内部管理系统小程序端

企业微信/微信小程序作为内部管理系统的移动端入口时,Vant Weapp 提供统一、规范的 UI 组件,降低多端维护成本。

开发与工程化

构建流程

# 克隆仓库
git clone https://github.com/youzan/vant-weapp.git
cd vant-weapp
 
# 安装依赖
npm install
 
# 开发模式(实时编译)
npm run dev
 
# 生产构建
npm run build
 
# 预览示例(微信开发者工具打开 example/ 目录)

项目工程化配置

  • 构建工具:基于 Gulp + TypeScript + Less + @vant/cli(v7)
  • 包管理:npm / yarn / pnpm
  • 代码规范:ESLint + Prettier
  • 类型检查:TypeScript 严格模式
  • 样式方案:Less + BEM 命名 + CSS 变量(--van- 命名空间前缀)
  • 版本管理:语义化版本(SemVer),GitHub Releases 发布
  • CI/CD:GitHub Actions 自动化构建与发布
  • 文档站点:基于 GitHub Pages 托管,国内镜像 vant.pro

开发规范

  • 组件采用 TypeScript 编写,提供完整类型声明
  • 组件命名使用 van- 前缀(如 van-buttonvan-cell
  • 事件命名使用 bind: 前缀,遵循小程序事件绑定规范
  • 属性命名使用 camelCase,通过 properties 声明
  • 样式变量统一使用 --van- 命名空间前缀(如 --van-button-primary-background-color
  • 每个组件提供 custom-classcustom-style 等外部样式类,支持业务层样式覆盖

二次开发指南

  1. 组件源码位于 packages/&lt;component&gt;/ 目录
  2. 每个组件包含:index.ts(逻辑)、index.wxml(模板)、index.less(样式)、index.wxs(脚本)、README.md(文档)
  3. 修改源码后执行 npm run dev 实时编译,在微信开发者工具中预览 example/ 目录
  4. 组件通过 custom-classcustom-style 等外部样式类支持业务层样式覆盖

性能与安全

性能优化

优化策略说明
按需引入通过 usingComponents 仅引入需要的组件,避免全量加载
WXS 手势滑动手势、吸顶等交互使用 WXS 实现,避免 JS 与渲染线程频繁通信
Shadow DOM 隔离每个组件样式独立,避免全局样式冲突和重复计算
CSS 变量主题运行时覆盖 CSS 变量无需重新编译,性能开销极低
图片懒加载Image 组件支持 lazy-load 属性,优化首屏加载
懒渲染Tabs、List 等组件支持 lazy-render,首次切换时才渲染内容
动画优化Collapse 使用 wx.createAnimation API 替代 CSS transition,提升动画帧率
WXS 工具函数addUnit()style()bem() 等在 WXS 层执行,减少 setData 调用次数
包体积控制移除 iOS 8 polyfill(v1.8.0)、精简依赖,npm 包默认输出 ES5
虚拟列表List 组件支持长列表虚拟化渲染,避免大量 DOM 节点

安全考量

安全维度说明
XSS 防护组件不直接渲染用户输入的 HTML,小程序基于 WXML 模板引擎,天然防止 XSS
依赖安全零外部运行时依赖,npm 包 @vant/weapp 无传递依赖风险
构建依赖安全定期更新 ws(v1.11.7 升级至 7.5.10)、rollup(升级至 4.22.4)等构建依赖
隐私合规Button 支持 agreePrivacyAuthorization open-type,适配微信隐私协议新规
referrer-policyUploader 支持 referrer-policy 属性,控制请求来源信息泄露
代码审计开源代码可审计,MIT 协议无商业使用风险
npm 供应链官方 npm 包由有赞团队维护,建议在 CI 中使用 lockfile 锁定版本

技术对比

与主流小程序组件库对比

维度Vant WeappWeUITDesign 小程序iView WeappNutUI
维护方有赞微信官方(腾讯)腾讯TalkingData京东
Stars18.4k+27k+4k+6k+7k+
组件数量70+30+(基础)60+50+70+
设计风格电商/现代/活泼微信原生企业级/正式简约/统一电商
主题定制CSS 变量 + ConfigProvider有限CSS 变量 + Design Token基础 Less 变量Less 变量
业务组件丰富(商品/SKU/订单)一般丰富
TypeScript完整支持部分支持完整支持完整支持
文档质量★★★★★★★★★★★★★★★★★★★★
更新活跃度稳定维护(低频)稳定活跃⚠️ 低维护活跃
Skyline 适配部分(进行中)✅ 原生较好
跨端支持Taro/uni-app 可用仅微信多端版本仅微信京东/Taro
适合场景电商/工具/定制微信原生风格企业级/腾讯生态通用工具京东生态/电商

Vant-Weapp vs TDesign Mini 选型建议

场景推荐理由
电商小程序Vant Weapp电商组件丰富,有赞实战验证
企业级应用TDesign Mini腾讯设计规范,Skyline 适配好
快速开发Vant Weapp社区资源丰富,文档完善
微信生态深度集成TDesign Mini腾讯出品,与微信设计体系更契合
跨端需求(Taro + React)@antmjs/vantui社区多端方案成熟
需要持续新特性TDesign更新活跃,Skyline 适配推进中

最佳实践

1. 按需引入控制包体积

// ❌ 不推荐:在 app.json 中全量引入所有组件
{
  "usingComponents": {
    "van-button": "@vant/weapp/button/index",
    "van-cell": "@vant/weapp/cell/index",
    "// ... 几十个组件全量引入": ""
  }
}
 
// ✅ 推荐:在页面 JSON 中按需引入
// pages/shop/shop.json
{
  "usingComponents": {
    "van-submit-bar": "@vant/weapp/submit-bar/index",
    "van-goods-action": "@vant/weapp/goods-action/index",
    "van-goods-action-button": "@vant/weapp/goods-action-button/index"
  }
}

2. 善用外部样式类

Vant-Weapp 组件提供丰富的外部样式类(custom-classtitle-classdesc-class 等),优先使用这些样式类覆盖样式,而非强行穿透组件内部:

<van-cell custom-class="my-cell" title-class="my-title" title="标题" />
.my-cell {
  padding: 20rpx;
}
.my-title {
  font-weight: bold;
}

3. 全局主题统一配置

/* app.wxss - 全局主题变量 */
page {
  --van-primary-color: #ff6034;
  --van-button-primary-background-color: #ff6034;
  --van-cell-text-color: #333;
  --van-border-color: #f5f5f5;
}

4. ConfigProvider 动态主题切换

<!-- 支持运行时切换主题 -->
<van-config-provider themeVars="{{ themeVars }}">
  <van-button type="primary">主题按钮</van-button>
</van-config-provider>
Page({
  data: {
    themeVars: {
      primaryColor: '#ff6034',
      buttonPrimaryBackgroundColor: '#ff6034'
    }
  }
});

5. 自定义组件中使用 Vant Weapp

// 在自定义组件中使用需开启样式共享
Component({
  options: {
    styleIsolation: 'shared'  // 允许外部样式穿透
  },
  // ...
});

6. 表单组件配合双向绑定

v1.3.0 起支持简易双向绑定,在 Search、Slider、Rate 等组件上使用 bind: 前缀简化事件处理:

<van-search bind:search="onSearch" value="{{ searchValue }}" placeholder="请输入搜索关键词" />
<van-field bind:change="onChange" value="{{ inputValue }}" label="用户名" placeholder="请输入" />

7. 长列表性能优化

使用 List 组件做无限滚动加载时,配合 lazy-render 和合理的 offset 阈值:

<van-list
  loading="{{ loading }}"
  finished="{{ finished }}"
  finished-text="没有更多了"
  bind:load="onLoad"
  offset="50"
>
  <van-cell
    wx:for="{{ list }}"
    wx:key="index"
    title="{{ item.title }}"
  />
</van-list>

8. 微信开放能力最佳实践

使用 Button 的 open-type 集成微信能力时,注意处理各种回调事件:

<van-button
  open-type="getPhoneNumber"
  bind:getphonenumber="onGetPhoneNumber"
  type="primary"
>
  获取手机号
</van-button>
Page({
  onGetPhoneNumber(event) {
    if (event.detail.errMsg === 'getPhoneNumber:ok') {
      const { code } = event.detail  // 动态令牌,用于后端解密
      // 发送 code 到后端服务
    }
  }
})

9. 配合 Taro 框架使用

在 Taro 项目中使用 Vant Weapp,推荐通过社区衍生库 @antmjs/vantui 实现多端支持。直接在 Taro 中使用原生 @vant/weapp 仅限微信小程序端。

技术局限与边界

1. Skyline 渲染引擎兼容不完整

Vant-Weapp 最初为 WebView 渲染环境设计,在微信新一代 Skyline 渲染引擎下存在兼容性问题:

  • NavBar 组件:在 Skyline 模式下无法正常使用(Issue #5893
  • :host 伪类:开启 Skyline 后部分组件会出现多余的 :host 伪类导致布局异常(Issue #6016
  • 按需加载:与 lazyCodeLoading: "requiredComponents" 配合使用时 Field 组件报错找不到 bem 方法

现状:官方从 v1.11.2 起逐步修复 Skyline 相关问题(Calendar、Input、Textarea、Popup 已初步修复),但完整适配仍在进行中。如需全面 Skyline 支持,建议关注官方更新或考虑 TDesign。

2. 维护节奏放缓

自 2024 年 10 月发布 v1.11.7 后,截至 2026 年 7 月未有新版本发布。项目进入稳定维护阶段,新特性增加较少,以 bug 修复为主。有赞团队核心维护精力已转向 Vant Vue 版本(v4.x)和其他新项目。

3. 小程序平台绑定

Vant Weapp 专为微信小程序设计,使用 WXML/WXSS/JS 技术栈,不能直接用于 Web(H5)、支付宝小程序或抖音小程序。如需跨端,需使用 Taro + @antmjs/vantui 等社区适配方案。抖音小程序可通过适配使用(社区方案),但非官方支持。

4. 样式覆盖受限

由于 Shadow DOM 样式隔离,深度自定义组件外观需要依赖 CSS 变量或 externalClasses 机制。对于未暴露 CSS 变量的样式细节,覆盖较为繁琐,需要解除样式隔离(styleIsolation: 'shared'),可能引入样式冲突风险。

5. 业务组件设计偏向电商

商品卡片、SKU 选择器等业务组件面向电商场景设计,非电商项目使用时可能需要大量定制或仅使用基础组件。

6. 不支持 Vue/React 语法

Vant Weapp 使用微信小程序原生组件体系(WXML + JS),不是 Vue 组件也不是 React 组件。开发者需要掌握小程序原生开发模式,不能直接使用 Vue/React 的模板语法和生命周期。Web 端需使用 vant(Vue)或 react-vant(React)。

7. 社区响应速度

由于项目进入低频维护阶段,GitHub Issues 的响应和修复速度可能较慢(当前约 132 个 Open Issues),紧急问题可能需要开发者自行 fork 修复并提交 PR。

学习资源

官方资源

社区教程

视频资源

  • B 站搜索「Vant Weapp 小程序开发」可找到多个实战教程
  • 慕课网、极客时间等平台有相关小程序开发课程涉及 Vant Weapp

2026 年现状

项目状态:稳定维护期

截至 2026 年 7 月,Vant Weapp 的最新版本仍为 v1.11.7(2024 年 10 月 14 日发布),近一年半未有新版本发布。项目进入「稳定维护」状态,意味着:

  • API 冻结:不会再有破坏性变更,现有项目可放心长期使用
  • 新功能停滞:不再增加新组件或重大特性(最后一个新组件 Cascader 于 v1.10.9 发布)
  • Bug 修复为主:仅针对关键问题进行修复
  • 有赞团队重心转移:核心维护精力已转向 Vant Vue 版本(v4.x,持续活跃更新)和其他新项目

版本演进历程

里程碑版本日期亮点
首次开源v0.x2017项目启动
1.0 正式版v1.0.02019-12npm 包重命名为 @vant/weapp,新增 11 个组件,全面支持 CSS 变量
ConfigProviderv1.7.02021-07新增全局配置组件,支持动态主题切换
双向绑定v1.3.02020-05Slider、Search、Rate 等组件支持简易双向绑定
Cascader 级联选择v1.10.92022-12新增最后一个新组件
Skyline 初步适配v1.11.22023-12修复 Skyline 模式下部分组件报错
最新版本v1.11.72024-10Bug 修复,依赖升级

生态分化

2025-2026 年,小程序组件库生态出现明显分化:

  • 腾讯 TDesign 小程序版快速崛起,作为腾讯官方设计体系的一部分,在 Skyline 适配和企业级场景获得更多关注
  • 社区版 @antmjs/vantui 为 Vant 生态注入活力,支持 Taro + React 多端开发
  • WeUI 作为微信官方组件库始终保持基础地位,但组件数量有限
  • Vant Weapp 凭借历史积累和 18k+ Stars 的社区基础,仍然是存量项目中使用最广的小程序组件库

选型建议

场景推荐方案
电商小程序(微信原生)✅ Vant Weapp(成熟稳定,首选)
新项目 + 需要 Skyline⚠️ 谨慎选择,TDesign 更合适
存量 Vant Weapp 项目✅ 继续使用,API 稳定无迁移压力
需要多端(H5/RN/多小程序)⚠️ 评估 @antmjs/vantui 成熟度
企业级 / 政务类TDesign Mini 更合适
Vue 生态统一Vant Vue 4 + Vant Weapp(设计语言一致)
Taro + React 跨端@antmjs/vantui

风险提示

  • Skyline 全面适配时间不确定,如果项目强依赖 Skyline,建议做好技术储备或选择 TDesign
  • 项目可能进入长期维护阶段,重大特性更新预期较低
  • 新项目可考虑同时评估 TDesign Mini 作为备选方案
  • 社区 Issues 响应速度较慢,紧急问题可能需要自行 fork 修复

总结

Vant Weapp 作为微信小程序生态的「老牌劲旅」,在 2026 年仍然是一个可靠、成熟、文档完善的选择。其 70+ 组件覆盖了绝大多数小程序开发场景,CSS 变量主题方案灵活实用,18k+ Stars 的社区基础保证了问题排查资源丰富。但新项目选型时,需要权衡其更新放缓的现实,结合团队技术栈和项目需求做出决策。对于追求最新特性和活跃社区的项目,TDesign 或社区衍生方案可能是更好的选择。