当前位置:   article > 正文

Vue3使用Element-plus_vue3 element-plus

vue3 element-plus

前言:此处 Vue3 使用了 Vite 构建工具 ,没有使用 webpack

安装 Element-plus

npm i element-plus

有淘宝镜像,可使用以下命令

cnpm i element-plus

注:默认后面会带上 @latest 表示安装最新版 如需安装其它版本 @版本号 即可

记录两种使用方式

方式1、全局导入

一次引用,全局可用,打包后资源大;

  1. // main.js 
  2. import './assets/main.css'
  3. import { createApp } from 'vue'
  4. import { createPinia } from 'pinia'
  5. import App from './App.vue'
  6. import router from './router'
  7. import ElementPlus from 'element-plus' // 引入模块
  8. import 'element-plus/dist/index.css' // 引入css
  9. const app = createApp(App)
  10. app.use(createPinia())
  11. app.use(router)
  12. app.use(ElementPlus) // 添加到中间件
  13. app.mount('#app')

 方式2、自动按需导入(建议)

打包后资源小;需要安装两个依赖;

npm i unplugin-vue-components unplugin-auto-import -D

无需配置 main.js

  1. // main.js 
  2. import './assets/main.css'
  3. import { createApp } from 'vue'
  4. import { createPinia } from 'pinia'
  5. import App from './App.vue'
  6. import router from './router'
  7. const app = createApp(App)
  8. app.use(createPinia())
  9. app.use(router)
  10. app.mount('#app')

vite.config.js 配置即可

  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import AutoImport from 'unplugin-auto-import/vite'
  5. import Components from 'unplugin-vue-components/vite'
  6. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  7. // https://vitejs.dev/config/
  8. export default defineConfig({
  9. plugins: [
  10. vue(),
  11. AutoImport({
  12. resolvers: [ElementPlusResolver()],
  13. }),
  14. Components({
  15. resolvers: [ElementPlusResolver()],
  16. }),
  17. ],
  18. resolve: {
  19. alias: {
  20. '@': fileURLToPath(new URL('./src', import.meta.url))
  21. }
  22. }
  23. })

官方参考

快速开始 | Element Plus

官方给了三种使用使用方式,还有一种(手动导入)未尝试

使用Element-plus中的icon

需要单独安装

npm i @element-plus/icons-vue

方式1、全局导入

一次性注册,全局可用,打包后资源大

  1. // main.js
  2. import './assets/main.css'
  3. import { createApp } from 'vue'
  4. import { createPinia } from 'pinia'
  5. import App from './App.vue'
  6. import router from './router'
  7. import * as ElIconModules from '@element-plus/icons-vue'
  8. const app = createApp(App)
  9. app.use(createPinia())
  10. app.use(router)
  11. // 统一注册Icon图标
  12. for (const iconName in ElIconModules) {
  13. if (Reflect.has(ElIconModules, iconName)) {
  14. const item = ElIconModules[iconName]
  15. app.component(iconName, item)
  16. }
  17. }
  18. app.mount('#app')

test.vue 使用 

  1. // test.vue
  2. <script setup>
  3. </script>
  4. <template>
  5. <el-icon style="vertical-align: middle">
  6. <Search />
  7. </el-icon>
  8. </template>

方式2、局部导入

按需导入,打包后资源小

  1. // main.js
  2. import './assets/main.css'
  3. import { createApp } from 'vue'
  4. import { createPinia } from 'pinia'
  5. import App from './App.vue'
  6. import router from './router'
  7. const app = createApp(App)
  8. app.use(createPinia())
  9. app.use(router)
  10. app.mount('#app')

test.vue 使用  

  1. // test.vue
  2. <script setup>
  3. import { Search } from '@element-plus/icons-vue'
  4. </script>
  5. <template>
  6. <el-icon style="vertical-align: middle">
  7. <Search />
  8. </el-icon>
  9. </template>

方式3、自动按需导入

需要安装依赖;

注:

1、如果 unplugin-auto-import  unplugin-vue-components 已安装则无需再安装;

2、此处安装 @iconify-json/ep 后则无需安装 @element-plus/icons-vue

npm i unplugin-auto-import unplugin-vue-components -D
npm i unplugin-icons -D
npm i @iconify-json/ep -D

vite.config.js 配置

  1. // ...
  2. import AutoImport from 'unplugin-auto-import/vite'
  3. import Components from 'unplugin-vue-components/vite'
  4. import Icons from 'unplugin-icons/vite'
  5. import IconsResolver from 'unplugin-icons/resolver'
  6. export default defineConfig({
  7. // ...
  8. plugins: [
  9. AutoImport({
  10. resolvers: [
  11. // 自动导入图标组件
  12. IconsResolver({
  13. prefix: 'Icon'
  14. })
  15. ]
  16. }),
  17. Components({
  18. resolvers: [
  19. // 自动注册图标组件
  20. IconsResolver({
  21. enabledCollections: ['ep']
  22. })
  23. ]
  24. }),
  25. Icons({
  26. autoInstall: true
  27. })
  28. ]
  29. })

 使用方式:需要加上 i-ep

  1. <el-icon>
  2. <i-ep-edit />
  3. </el-icon>

官方参考

Icon 图标 | Element Plus

国际化

Element Plus 组件 默认 使用英语,如果要使用其他语言需要单独配置;

方式1、全局导入时配置

  1. // main.js
  2. import { createApp } from 'vue'
  3. import App from './App.vue'
  4. import router from './router'
  5. import ElementPlus from 'element-plus'
  6. import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
  7. const app = createApp(App)
  8. app.use(router)
  9. app.use(ElementPlus, {
  10. locale: zhCn,
  11. })
  12. app.mount('#app')

 方式2、自动按需导入时配置

main.js 无需配置;在 app.vue 中配置 

  1. // App.vue
  2. <script setup>
  3. import { RouterView } from 'vue-router'
  4. // 引入配置组件
  5. import { ElConfigProvider } from 'element-plus'
  6. // 引入中文包
  7. import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
  8. </script>
  9. <template>
  10. <el-config-provider :locale="zhCn">
  11. <RouterView />
  12. </el-config-provider>
  13. </template>
  14. <style scoped>
  15. </style>

 国际化 | Element Plus


package.json

  1. {
  2. "name": "test",
  3. "version": "0.0.0",
  4. "private": true,
  5. "type": "module",
  6. "scripts": {
  7. "dev": "vite --mode dev",
  8. "test": "vite build --mode test",
  9. "build": "vite build",
  10. "preview": "vite preview"
  11. },
  12. "dependencies": {
  13. "element-plus": "^2.5.6",
  14. "pinia": "^2.1.7",
  15. "vue": "^3.4.15",
  16. "vue-router": "^4.2.5"
  17. },
  18. "devDependencies": {
  19. "@iconify-json/ep": "^1.1.14",
  20. "@vitejs/plugin-vue": "^5.0.3",
  21. "unplugin-auto-import": "^0.17.5",
  22. "unplugin-icons": "^0.18.5",
  23. "unplugin-vue-components": "^0.26.0",
  24. "vite": "^5.0.11"
  25. }
  26. }

相关文章:Vue3修改Element-plus语言与项目国际化-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/968582
推荐阅读
相关标签
  

闽ICP备14008679号