Element Plus官网
基于vue3项目搭建好,项目内需应用elementPlus,按下列要求操作即可
一. 完整引入
// main.ts
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')
二. 按需引入
1. 安装elementPlus和自动导入插件
npm i element-plus
npm install -D unplugin-vue-components unplugin-auto-import
2. 配置自动按需导入
// 引入插件
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()],
}),
]
})
3. 测试组件
<template>
<el-button type="primary">测试button按钮</el-button>
</template>
三. 定制elementPlus主题
1. 安装sass ( 基于vite的项目默认不支持css预处理器,需要开发者单独安装 )
npm i sass -D
2. 准备定制化的样式文件
@forward 'element-plus/theme-chalk/src/common/var.scss' with (
// 根据项目 自定义的色调来配置
$colors: (
'primary': (
// 主色
'base': #27ba9b,
),
'success': (
// 成功色
'base': #1dc779,
),
'warning': (
// 警告色
'base': #ffb302,
),
'danger': (
// 危险色
'base': #e26237,
),
'error': (
// 错误色
'base': #cf4444,
),
)
)
3. 自动导入配置
这里自动导入需要深入到elementPlus的组件中,按照官方的配置文档来
-
自动导入定制化样式文件进行样式覆盖
-
按需定制主题配置 (需要安装 unplugin-element-plus)
npm install unplugin-element-plus -D
// ...
// 导入对应包
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import ElementPlus from 'unplugin-element-plus/vite'
export default defineConfig({
plugins: [
vue(),
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
// 1.配置elementPlus采用sass样式配色系统
resolvers: [{importStyle:"sass"}],
}),
// 3.按需定制主题配置
ElementPlus({
useSource: true,
}),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
css: {
preprocessorOptions: {
scss: {
// 2. 自动导入定制化样式文件进行样式覆盖
additionalData: `
@use "@/styles/element/index.scss" as *;
`,
}
}
}
})
4.测试组件
<template>
<div>
<el-button type="success">测试一下 success</el-button>
<el-button type="danger">测试一下 danger</el-button>
<el-button type="primary">测试一下 primary</el-button>
</div>
</template>