网站首页 > 技术文章 正文
在 Vue 3 中引入 Element UI 需要使用 Element Plus,因为 Element UI 是为 Vue 2 设计的,而 Element Plus 是专为 Vue 3 设计的版本。以下是详细步骤:
安装 Element Plus
1. 创建 Vue 3 项目(如果还没有)
如果你还没有创建 Vue 3 项目,可以使用 Vue CLI 或 Vite 来创建一个:
# 使用 Vue CLI
npm install -g @vue/cli
vue create my-project
# 或使用 Vite
npm create vite@latest my-project --template vue
2. 安装 Element Plus
进入你的项目目录,然后安装 Element Plus:
npm install element-plus
或者使用 yarn:
yarn add element-plus
引入 Element Plus
方式一:完整引入(推荐新手使用)
在 main.js 或 main.ts 中完整引入 Element Plus:
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')
方式二:按需引入(推荐生产环境使用)
为了减少打包体积,可以使用按需引入。首先安装 unplugin-vue-components 和 unplugin-auto-import:
npm install -D unplugin-vue-components unplugin-auto-import
然后在 vite.config.js 或 vue.config.js 中配置:
// vite.config.js
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [
// ...
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
})
对于 Vue CLI 项目,修改 vue.config.js:
// vue.config.js
const { defineConfig } = require('@vue/cli-service')
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
module.exports = defineConfig({
configureWebpack: {
plugins: [
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
}
})
使用 Element Plus 组件
现在你可以在 Vue 组件中使用 Element Plus 的组件了。例如:
<template>
<div>
<el-button type="primary">主要按钮</el-button>
<el-date-picker v-model="date" type="date" placeholder="选择日期" />
</div>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const date = ref('')
return {
date
}
}
}
</script>
国际化(可选)
如果需要使用中文语言包:
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import 'element-plus/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus, {
locale: zhCn,
})
app.mount('#app')
主题定制(可选)
Element Plus 支持主题定制。你可以通过以下方式自定义主题:
- 安装 sass:
npm install sass -D
- 创建一个 SCSS 文件(如 element-variables.scss)来覆盖变量:
/* element-variables.scss */
@forward "element-plus/theme-chalk/src/common/var.scss" with (
$colors: (
'primary': (
'base': #409eff,
),
),
);
- 在 vite.config.js 或 vue.config.js 中配置:
// vite.config.js
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/styles/element-variables.scss" as *;`,
},
},
},
})
总结
- 安装:使用 npm install element-plus 安装 Element Plus
- 引入:可以选择完整引入或按需引入
- 使用:直接在组件中使用 Element Plus 组件
- 高级功能:支持国际化、主题定制等
通过以上步骤,你就可以在 Vue 3 项目中成功集成并使用 Element Plus 了。
- 上一篇: Excel表格如何添加自带的日期插件?
- 下一篇: 通用日期选择器的设置方法
猜你喜欢
- 2025-05-25 又解锁一款笔记工具:Logseq
- 2025-05-25 VBA财务工具控件配置技巧
- 2025-05-25 玫瑰金iPhone 7 Plus谍照 其实也很漂亮
- 2025-05-25 每周更新:Element、Vant新版更新、IntelliJ2019.1 发布 RC版
- 2025-05-25 如何使用C#读取经典WinCC归档数据
- 2025-05-25 【推荐】一个基于 SpringBoot 框架开发的 OA 办公自动化系统
- 2025-05-25 《进击吧!Blazor!》第一章 5.组件开发
- 2025-05-25 微信小程序云开发教室预约系统的数据库设计
- 2025-05-25 Android主流UI开源库整理
- 2025-05-25 组态王无法插入时间控件
- 1518℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 603℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 522℃MySQL service启动脚本浅析(r12笔记第59天)
- 490℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 457℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)