在 Vue3 中使用 Element Plus

ElementPlus是基于Vue3的桌面端组件库,专为企业级中后台系统设计。


它采用Composition API和TypeScript重构,提供60+组件(包括表单、表格等),支持暗黑模式、国际化等功能。


相比旧版ElementUI,它完全适配Vue3并优化了TypeScript支持。


安装只需pnpm install element-plus,通过main.ts全局引入组件和CSS即可快速使用。


推荐按需引入以减少体积。


ElementPlus文档详细且社区活跃,是Vue3项目的高效开发选择。


Element Plus


Element Plus 是一套为开发者、设计师和产品经理准备的基于 Vue 3 的桌面端组件库。


简单来说,如果你正在使用 Vue 3 开发企业级的后台管理系统(如 CRM、ERP 或各种中后台界面),Element Plus 就是一套现成的"积木",能让你快速搭建出美观且功能完善的页面,而不需要从零开始写 CSS 和交互逻辑。


🚀 核心亮点

  1. Vue 3 原生支持 🌟
    它不是旧版的简单移植,而是基于 Vue 3 的 Composition API 和 TypeScript 从头重写的。
  2. 企业级定位 🏢
    它的设计初衷就是为了服务企业级中后台产品。组件风格简洁、统一,涵盖了从基础的按钮、表单,到复杂的表格、树形控件、数据大屏等几乎所有后台场景的需求。
  3. 现代化特性 🎨
    • 暗色主题: 内置了对暗黑模式的支持,满足不同用户的视觉偏好。
    • 国际化: 支持多语言切换,适配全球用户。
    • 无障碍访问: 组件在设计时考虑了可访问性,对屏幕阅读器等辅助技术有更好的支持。

📊 Element Plus vs 旧版 Element UI

很多开发者容易混淆 Element Plus 和 Element UI,它们其实是"父子"关系。


特性 Element UI (旧版) Element Plus (新版)
适用框架 Vue 2.x Vue 3.x
TypeScript 支持有限 原生支持,类型定义完善
核心架构 Options API 为主 Composition API
组件数量 约 50+ 60+ (功能更丰富)

🛠️ 如何开始使用?

如果你想在项目中引入 Element Plus,通常非常简单。


关联阅读推荐: 实用篇:vsCode 中连接 WSL 并快速开始一个 Vue3 新项目

假设你已经创建了一个 Vue 3 项目(推荐使用 Vite 脚手架),可以通过以下步骤安装:


安装依赖

你可以使用你喜欢的包管理器(npm, yarn, pnpm)进行安装:

bash 复制代码
# 使用 npm
npm install element-plus --save<websource>source_group_web_10</websource>

# 使用 yarn
yarn add element-plus

# 使用 pnpm
pnpm install element-plus
```<websource>source_group_web_11</websource>

引入方式

  • 完整引入:最简单的方式,在 `main.js` 中一次性引入所有组件和样式(适合快速原型开发,但打包体积较大)。

  • 按需引入(推荐):只引入你用到的组件,可以有效减少最终打包的 JS 体积。配合插件(如 `unplugin-vue-components` 和 `unplugin-auto-import`),你甚至不需要手动去 `import` 组件,写模板时直接用,插件会自动帮你引入。


总结

如果你正在启动一个新的 Vue 3 项目,Element Plus 是一个非常稳妥且高效的选择。它的文档非常完善,社区活跃度极高,遇到问题很容易找到解决方案。


你可以先访问它的官方中文文档(https://element-plus.org/zh-CN/),那里有详细的组件示例和教程,能帮你快速上手。


在 `main.ts` 中一次性引入所有组件和样式


要在 main.ts完整引入 (全局引入)Element Plus,你需要做两件事:引入组件库本身引入对应的 CSS 样式文件


这是最简单、最直接的引入方式,适合快速搭建原型或对打包体积不敏感的项目。


✅ 步骤一:安装依赖

确保你已经安装了 element-plus 包。如果没有,请在终端运行:

bash 复制代码
pnpm install element-plus

或使用 npm/yarn


✅ 步骤二:修改 main.ts 文件

打开你的 main.ts(通常在 src/main.ts),按照以下代码进行配置:

TypeScript 复制代码
import { createApp } from 'vue'
import App from './App.vue'

// 1. 引入 Element Plus 组件库
import ElementPlus from 'element-plus'

// 2. 引入 Element Plus 的样式文件 (非常重要!)
import 'element-plus/dist/index.css'

// 3. 创建应用实例
const app = createApp(App)

// 4. 使用 Element Plus (将其注册为全局插件)
app.use(ElementPlus)

// 5. 挂载应用
app.mount('#app')

💡 关键点说明

  1. import 'element-plus/dist/index.css'
    • 这一行必不可少。如果你只引入了组件库但没引入 CSS,页面上只会显示原始的 HTML 标签(没有颜色、圆角、阴影等样式) [[3.

app.use(ElementPlus)

  • 这行代码会将所有的 Element Plus 组件(如 ElButton, ElTable 等)注册为全局组件。这意味着你在任何 .vue 文件的模板中都可以直接使用 <el-button>,而不需要在单个组件内再次 import [[2, 5.

🌍 补充:设置中文(可选)

Element Plus 默认是英文。如果你希望全局默认使用中文(例如日期选择器显示"年/月/日"而不是"Jan/Feb"),可以稍微修改一下代码:

TypeScript 复制代码
import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

// 引入中文语言包
import zhCn from 'element-plus/es/locale/lang/zh-cn'

const app = createApp(App)

// 在 use 时传入 locale 选项
app.use(ElementPlus, {
  locale: zhCn,
})

app.mount('#app')

完成以上步骤后,你就可以在项目中任意位置直接使用 Element Plus 的组件了,例如在 App.vue 中:

javascript 复制代码
<template> <el-button type="primary">你好,Element Plus!</el-button> </template>

页面效果

在一个空白 Vue3 项目中使用 Element Plus

相关推荐
gis开发之家3 天前
《Vue3 从入门到大神40篇》Vue3 源码详解(十):diff 算法全解析 —— 为什么 Vue3 比 Vue2 更快?
javascript·算法·typescript·前端框架·vue3·vue3源码
想你依然心痛6 天前
让数据会说话,Vue 结合 ECharts 打造电力可视化大屏
echarts·vue3·数据大屏·电力可视化
路光.7 天前
Vue2升级Vue3处理原 UMD/CommonJS 打包文件,不是标准 ESM
前端·javascript·vue.js·vue3
gis开发之家7 天前
《Vue3 从入门到大神37篇》Vue3 源码详解(七):watch 与 watchEffect 源码对比——副作用是如何被追踪的?
javascript·前端框架·vue3·vue3源码
布兰妮甜10 天前
从 0 搭建企业级 Vue3/Vite 脚手架(规范、eslint、husky、打包、环境变量全流程)
typescript·vue3·vite·脚手架·前端工程化
gis开发之家10 天前
《Vue3 从入门到大神35篇》Vue3 源码详解(五):effect 依赖收集原理——track 与 trigger 是如何工作的?
javascript·typescript·前端框架·vue3·vue3源码
华玥作者12 天前
uniapp 万条数据不卡顿:我写了个虚拟列表组件 hy-list,原生支持瀑布流
数据结构·uni-app·list·vue3
sugar__salt13 天前
Vue3 基础知识点整理 —— 从入门到响应式核心完全指南
vue.js·笔记·vue·vue3
万亿少女的梦16814 天前
基于微信小程序、Spring Boot与Vue3的智慧养老管理系统设计与实现
spring boot·redis·微信小程序·mybatis·vue3
gis开发之家15 天前
《Vue3 从入门到大神33篇》Vue3 源码详解(三):响应式核心思想——从 Object.defineProperty 到 Proxy
前端·javascript·vue.js·vue3·vue3源码