第十章:组件库 — 别再手搓 UI 了
进阶篇的最后一章,也是最能提升你”开发幸福感”的一章。学完你会明白:漂亮的界面,真的不用一点点手写。
10.1 组件库是干嘛的
先想象一个场景。你要做一个后台管理系统,页面里需要:
- 各种样式的按钮(主要、危险、禁用……)
- 弹窗(确认框、提示框)
- 表格(带排序、分页)
- 日期选择器、下拉菜单、消息提示……
如果这些全靠你用 HTML + CSS + JS 手写,光一个”日期选择器”就够你折腾一整天,还不一定好用。
组件库就是来拯救你的:
组件库 = 一套别人已经做好的、又好看又好用的 UI 零件集合。 按钮、弹窗、表格、日期选择器……全都现成的,拿来即用。
你不用再关心样式怎么写、交互怎么处理,一行代码就能用上一个精致的组件。
10.2 为什么要用
| 好处 | 说明 |
|---|---|
| 省时间 | 一行代码 = 一个精致组件,不用自己写几十行 CSS |
| 样式统一 | 整个项目所有按钮、表格风格一致,专业感拉满 |
| 细节到位 | 键盘操作、无障碍、加载状态、各种边界情况,人家都帮你处理好了 |
| 少踩坑 | 都是经过成千上万项目验证的成熟代码,稳定可靠 |
一句话:把时间花在你的业务逻辑上,UI 这种通用零件交给组件库。
10.3 手写 vs 组件库(示意)
直观感受一下差距。同样是做一个”主要按钮”:
手写:还得自己写一堆 CSS
<template>
<button class="my-btn">提交</button>
</template>
<style scoped>
.my-btn {
padding: 8px 20px;
background: #409eff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
.my-btn:hover {
background: #66b1ff; /* 鼠标悬停变色,还得自己写 */
}
/* 还有禁用状态、点击效果……继续写 */
</style>
用组件库(以 Element Plus 为例):一行搞定
<template>
<el-button type="primary">提交</el-button>
</template>
就这一行。样式、悬停效果、点击反馈、禁用状态……全都自带。想要个危险的红色按钮?
<el-button type="danger">删除</el-button>
想要个带加载动画的按钮?
<el-button type="primary" :loading="true">提交中</el-button>
对比一下,你就懂为什么没人愿意手搓 UI 了。
10.4 主流选择
Vue 生态里常见的组件库,选一个用就行,别都装:
| 组件库 | 一句话特点 |
|---|---|
| Element Plus | 生态最成熟、文档最全,后台管理系统首选,新手推荐 |
| Ant Design Vue | 蚂蚁出品,企业级,设计规范完善 |
| Naive UI | 轻量、好看、对 TypeScript 友好 |
| Vant | 移动端(手机页面)专用 |
新手建议直接上 Element Plus,中文文档友好、示例丰富、遇到问题网上一搜一大把。
10.5 三步用起来
以 Element Plus 为例。
第一步:安装
npm install element-plus
第二步:在 main.js 里注册
import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css' // 别忘了引入样式!
createApp(App)
.use(ElementPlus)
.mount('#app')
⚠️ 最容易漏的一步:引入那行 CSS。忘了它,组件会长得”光秃秃”没有样式。
第三步:模板里直接用
注册后,所有 el- 开头的组件在任意 .vue 文件里直接用,不用再 import:
<template>
<el-button type="primary">按钮</el-button>
<el-input v-model="text" placeholder="请输入" />
<el-switch v-model="isOn" />
</template>
<script setup>
import { ref } from 'vue'
const text = ref('')
const isOn = ref(false)
</script>
想用哪个组件、有什么参数,查官方文档:每个组件都有可直接复制的示例代码。用组件库的核心技能,其实就是”会查文档 + 会复制示例”。
10.6 小结
- 组件库 = 现成的高质量 UI 零件集合(按钮、弹窗、表格、日期选择器……),拿来即用
- 用它的理由:省时间、样式统一、细节到位、少踩坑
- 手写一个按钮要几十行 CSS,用组件库
<el-button type="primary">一行搞定 - 主流选择:Element Plus(后台首选,新手推荐)、Ant Design Vue、Naive UI、Vant(移动端)
- 三步用起来:
npm install→main.js注册(别忘引 CSS)→ 模板里直接用<el-xxx> - 核心技能:会查文档、会抄示例
恭喜你,进阶篇完结!
回头看看你这一路打通的链路:
Node(能跑 JS)→ nvm(管版本)→ npm(装依赖)→ 模块化(拼项目)
→ Vite(翻译打包)→ Vue Demo(跑起来)
→ Router(页面)+ Pinia(数据)+ Axios(请求)+ 组件库(界面)
现在的你,已经能:
- 看得懂任何 Vue 项目的目录结构和启动流程
- 独立搭建并运行一个工程化的 Vue 项目
- 理解前端各个工具”分别解决什么问题”
接下来最好的学习方式,就是动手做一个完整的小项目(比如把入门篇的 AI 对话应用,用上路由、Pinia、Axios、组件库重做一遍),在实战中把这些串成肌肉记忆。加油!