安装element-plus
npm install element-plus --save
安装lodash
全局引入element-plus(不推荐)
import {createApp} from 'vue'import App from './App.vue'import '/style/index.scss'import {router} from './router'import store from './store'import ElementPlus from 'element-plus'import 'element-plus/lib/theme-chalk/index.css'const app = createApp(App)app.use(router)app.use(store)app.use(ElementPlus)app.mount('#app')
手动按需引入element-plus(推荐)
创建配置文件plugins/ElementPlus.js
import {ElButton} from 'element-plus'import 'element-plus/lib/theme-chalk/el-button.css'export default function (app) {app.use(ElButton)}
main.js引入
import {createApp} from 'vue'import App from './App.vue'import '/style/index.scss'import {router} from './router'import store from './store'import ElementPlus from './plugins/ElementPlus'const app = createApp(App)app.use(router)app.use(store)app.use(ElementPlus)app.mount('#app')
自动按需引入element-plus(强烈推荐)
安装 vite-plugin-style-import:
npm install vite-plugin-style-import -D
修改vite.config.js
import {defineConfig} from 'vite'import vue from '@vitejs/plugin-vue'import path from 'path';import styleImport from 'vite-plugin-style-import'// https://vitejs.dev/config/export default defineConfig({alias: {'@': path.resolve(__dirname, 'src')},plugins: [vue(),styleImport({libs: [{libraryName: 'element-plus',esModule: true,ensureStyleFile: true,resolveStyle: (name) => {name = name.slice(3)return `element-plus/packages/theme-chalk/src/${name}.scss`;},resolveComponent: (name) => {return `element-plus/lib/${name}`;},}]})],css: {preprocessorOptions: {scss: {additionalData: `@import "@/assets/style/variable.scss";`}}}})
创建配置文件plugins/ElementPlus.js
import {ElButton} from 'element-plus'export default function (app) {app.use(ElButton)}
main.js引入
import {createApp} from 'vue'import App from './App.vue'import '/style/index.scss'import {router} from './router'import store from './store'import ElementPlus from './plugins/ElementPlus'const app = createApp(App)app.use(router)app.use(store)app.use(ElementPlus)app.mount('#app')
src/views/Home.vue使用
<template><h1>这是首页</h1><button @click="valueAdd">{{ value }}</button><el-button type="primary">主要按钮</el-button></template><script setup>import store from '@/store/index'import {computed} from "vue";const value = computed(() => store.state.count)const valueAdd = () => {store.commit('add')}</script><style scoped lang="scss">h1 {color: $color-primary;}</style>
