安装element-plus

npm install element-plus --save

安装lodash

npm install lodash --save

全局引入element-plus(不推荐)

  1. import {createApp} from 'vue'
  2. import App from './App.vue'
  3. import '/style/index.scss'
  4. import {router} from './router'
  5. import store from './store'
  6. import ElementPlus from 'element-plus'
  7. import 'element-plus/lib/theme-chalk/index.css'
  8. const app = createApp(App)
  9. app.use(router)
  10. app.use(store)
  11. app.use(ElementPlus)
  12. app.mount('#app')

手动按需引入element-plus(推荐)

创建配置文件plugins/ElementPlus.js

  1. import {ElButton} from 'element-plus'
  2. import 'element-plus/lib/theme-chalk/el-button.css'
  3. export default function (app) {
  4. app.use(ElButton)
  5. }

main.js引入

  1. import {createApp} from 'vue'
  2. import App from './App.vue'
  3. import '/style/index.scss'
  4. import {router} from './router'
  5. import store from './store'
  6. import ElementPlus from './plugins/ElementPlus'
  7. const app = createApp(App)
  8. app.use(router)
  9. app.use(store)
  10. app.use(ElementPlus)
  11. app.mount('#app')

自动按需引入element-plus(强烈推荐)

安装 vite-plugin-style-import:

npm install vite-plugin-style-import -D

修改vite.config.js

  1. import {defineConfig} from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import path from 'path';
  4. import styleImport from 'vite-plugin-style-import'
  5. // https://vitejs.dev/config/
  6. export default defineConfig({
  7. alias: {
  8. '@': path.resolve(__dirname, 'src')
  9. },
  10. plugins: [
  11. vue(),
  12. styleImport({
  13. libs: [{
  14. libraryName: 'element-plus',
  15. esModule: true,
  16. ensureStyleFile: true,
  17. resolveStyle: (name) => {
  18. name = name.slice(3)
  19. return `element-plus/packages/theme-chalk/src/${name}.scss`;
  20. },
  21. resolveComponent: (name) => {
  22. return `element-plus/lib/${name}`;
  23. },
  24. }]
  25. })
  26. ],
  27. css: {
  28. preprocessorOptions: {
  29. scss: {
  30. additionalData: `@import "@/assets/style/variable.scss";`
  31. }
  32. }
  33. }
  34. })

创建配置文件plugins/ElementPlus.js

  1. import {ElButton} from 'element-plus'
  2. export default function (app) {
  3. app.use(ElButton)
  4. }

main.js引入

  1. import {createApp} from 'vue'
  2. import App from './App.vue'
  3. import '/style/index.scss'
  4. import {router} from './router'
  5. import store from './store'
  6. import ElementPlus from './plugins/ElementPlus'
  7. const app = createApp(App)
  8. app.use(router)
  9. app.use(store)
  10. app.use(ElementPlus)
  11. app.mount('#app')

src/views/Home.vue使用

  1. <template>
  2. <h1>这是首页</h1>
  3. <button @click="valueAdd">{{ value }}</button>
  4. <el-button type="primary">主要按钮</el-button>
  5. </template>
  6. <script setup>
  7. import store from '@/store/index'
  8. import {computed} from "vue";
  9. const value = computed(() => store.state.count)
  10. const valueAdd = () => {
  11. store.commit('add')
  12. }
  13. </script>
  14. <style scoped lang="scss">
  15. h1 {
  16. color: $color-primary;
  17. }
  18. </style>