从“按钮都不会点”到“能撸大厂 UI”:我用 react-vant 踢开组件库的大门!

🧊 前言:从"写个按钮都要 Google"开始

初入前端江湖那会儿,我写个按钮样式都要整半天,UI 做得跟 Windows 98 一样土。朋友告诉我:"组件库用起来,它写好一切,只要你会用,就能瞬间变大厂味儿。"

听完我眼睛一亮,但 Vue 的 Vant 太火,React 呢?这不就来了嘛------react-vant,Vant 团队亲儿子在 React 下的高仿实现!

所以今天,我就来带大家用一个真实的"菜鸟视角",深度拆解下 react-vant,从"怎么用"到"用得溜",顺便埋个坑:这玩意儿,真香。


🛠 什么是 react-vant?

一句话简介:

react-vant = Vant 移动端组件库 + React 风味再加工

它是由Vant 团队官方维护的 React 版本组件库,风格轻盈、设计移动优先,特别适合你这种要做微信小程序、H5 页、小程序转 Web 项目的开发者。

你可以把它当成 "适配移动端的 Ant Design Mini"。


🚧 如何开始?先撸个按钮压压惊

🍜 安装(像点外卖一样简单)

css 复制代码
npm install react-vant --save

然后在项目中引入样式(必须加!不然空白一片):

arduino 复制代码
import 'react-vant/lib/index.css';

🧩 核心组件拆解 + 场景实战

接下来,我们挑几个移动端开发中常用又有坑的组件,详细讲讲。


1️⃣ Button 按钮:最基本也是最灵魂的存在

js 复制代码
import { Button } from 'react-vant';

<Button type="primary">主按钮</Button>
<Button plain hairline type="primary">细边按钮</Button>
<Button loading>加载中...</Button>

✅ 核心知识点

  • type:可选 primary / success / danger / warning
  • plain:朴素按钮,适合放在背景浅的页面
  • hairline:1px 边框效果,移动端 UI 更精致
  • loading:带 loading 动效,业务感拉满

💡 实战提示

当你点"提交"时,用 loading + disabled 套路防止用户连点:

xml 复制代码
<Button loading={submitting} disabled={submitting}>提交</Button>

2️⃣ ActionSheet 操作面板:下拉弹窗神器

js 复制代码
<ActionSheet
  visible={show}
  actions={[{ name: '编辑' }, { name: '删除', color: 'red' }]}
  onClose={() => setShow(false)}
/>

✅ 核心知识点

  • actions:支持传 namecolordisabled 等字段
  • onSelect:监听点击项的回调
  • onClose:关闭面板

💡 实战提示

微信里那种"底部弹出菜单",它就是!用户体验无敌棒。


3️⃣ Dialog 对话框:比 alert 漂亮一百倍

js 复制代码
Dialog.confirm({
  title: '你确定要删除?',
  message: '删除之后不可恢复哦~',
}).then(() => {
  console.log('用户点击了确定');
});

✅ 核心知识点

  • Dialog.alert:单按钮
  • Dialog.confirm:双按钮
  • 返回 Promise,可以链式操作

💡 实战提示

用这个弹窗,你就可以优雅地实现各种二次确认、退出登录提示。


4️⃣ Cell 单元格:移动端列表页面基石

js 复制代码
<Cell.Group title="账号信息">
  <Cell title="用户名" value="jiangyufeng" />
  <Cell title="手机号" value="1234567890" isLink />
</Cell.Group>

✅ 核心知识点

  • title + value:左右排版
  • isLink:带箭头,表示可点击
  • border:是否展示下划线(默认是)

💡 实战提示

用户中心、设置页、订单页,一页十个 Cell 不过分。


5️⃣ TabBar + Icon:底部导航栏组合拳

js 复制代码
<Tabbar active={active} onChange={setActive}>
  <Tabbar.Item icon="home-o">首页</Tabbar.Item>
  <Tabbar.Item icon="user-o">我的</Tabbar.Item>
</Tabbar>

✅ 核心知识点

  • 图标使用内置 Icon 名称(home-o、user-o 等)
  • 可以配合 React Router 做页面跳转
ini 复制代码
<Tabbar.Item icon="search" onClick={() => navigate('/search')}>搜索</Tabbar.Item>

🧠 高阶技能:配合 React 项目使用技巧

📦 1. Tree Shaking 优化打包大小

使用 babel-plugin-import 实现按需加载,避免整个库都打包进来:

arduino 复制代码
npm install babel-plugin-import -D

.babelrcvite.config.js 中配置:

js 复制代码
{
  "plugins": [
    ["import", {
      "libraryName": "react-vant",
      "libraryDirectory": "es",
      "style": true
    }]
  ]
}

💅 2. 自定义主题

react-vant 使用 Less 变量控制主题色:

less 复制代码
// 覆盖主色
@primary-color: #ff5722;

配合 Vite 的 less 配置,全局修改就这么简单。


🧪 小白练习建议:边学边改 + 仿写 Demo

  • 官方文档地址:react-vant.3lang.dev/
  • 先学 Button、Dialog、Cell、TabBar、Popup 这五大金刚
  • 用 Vite + React 快速起手项目,边用边写笔记

📦 总结:react-vant,适合谁?值不值得学?

适合谁 原因
React 初学者 不用设计,只管搬砖,用着用着就懂了
做移动端页面的人 组件偏移动端友好,样式高度还原
要快速出原型的你 快速交互 + 视觉统一,不用写一堆 CSS
喜欢 Vant 但写 React 的开发者 熟悉 API,快速迁移无压力

❤️ 我的感受:

学完之后,我真的不想再自己手撸按钮、弹窗了。React 本来就够"工程"了,UI 再不交给专业组件库,写页面的快乐全被 bug 吞了!


📢 最后一波鸡汤:

没人天生就懂组件库,但只要你愿意点开文档、愿意跑个 Demo,你就已经超越了一堆人。

你看我,现在不仅能点按钮了,还能弹弹窗、做底栏,甚至能写个完整的微信风项目。react-vant,真的让我体验到了"拿来即用"的快乐!


如果你也想从小白变大神,react-vant 可以是你组件库的第一步。不求你写得多 fancy,先让项目跑起来、有交互、有结构,有页面,就很牛了!

相关推荐
拾光拾趣录1 分钟前
Flexbox 布局:从“垂直居中都搞不定”到写出响应式万能布局
前端·css
渣渣盟13 分钟前
JavaScript核心概念全解析
开发语言·javascript·es6
huxihua200641 分钟前
各种前端框架界面
前端
拾光拾趣录42 分钟前
GET/POST 的区别:从“为什么登录请求不能用 GET”说起
前端·网络协议
Carlos_sam1 小时前
OpenLayers:ol-wind之渲染风场图全解析
前端·javascript
拾光拾趣录1 小时前
闭包:从“变量怎么还没死”到写出真正健壮的模块
前端·javascript
拾光拾趣录1 小时前
for..in 和 Object.keys 的区别:从“遍历对象属性的坑”说起
前端·javascript
OpenTiny社区2 小时前
把 SearchBox 塞进项目,搜索转化率怒涨 400%?
前端·vue.js·github
编程猪猪侠2 小时前
Tailwind CSS 自定义工具类与主题配置指南
前端·css
qhd吴飞2 小时前
mybatis 差异更新法
java·前端·mybatis