Vue3使用Element-plus

本文介绍了如何在Vue3项目中使用Vite构建工具并配置Element-plus,包括全局导入导致资源增大、自动按需导入以减小资源、以及国际化设置的方法,同时提供了package.json示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

安装 Element-plus

npm i element-plus

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

cnpm i element-plus

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

记录两种使用方式

方式1、全局导入

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

// main.js 

import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'

import ElementPlus from 'element-plus' // 引入模块
import 'element-plus/dist/index.css' // 引入css

const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(ElementPlus) // 添加到中间件

app.mount('#app')

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

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

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

无需配置 main.js

// main.js 

import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'

const app = createApp(App)

app.use(createPinia())
app.use(router)

app.mount('#app')

vite.config.js 配置即可

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

官方参考

快速开始 | Element Plus

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

使用Element-plus中的icon

需要单独安装

npm i @element-plus/icons-vue

方式1、全局导入

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

// main.js

import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'

import * as ElIconModules from '@element-plus/icons-vue'

const app = createApp(App)

app.use(createPinia())
app.use(router)
// 统一注册Icon图标
for (const iconName in ElIconModules) {
  if (Reflect.has(ElIconModules, iconName)) {
    const item = ElIconModules[iconName]
    app.component(iconName, item)
  }
}

app.mount('#app')

test.vue 使用 

// test.vue

<script setup>
</script>

<template>
  <el-icon style="vertical-align: middle">
    <Search />
  </el-icon>
</template>

方式2、局部导入

按需导入,打包后资源小

// main.js

import './assets/main.css'

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'

const app = createApp(App)

app.use(createPinia())
app.use(router)

app.mount('#app')

test.vue 使用  

// test.vue

<script setup>
import { Search } from '@element-plus/icons-vue'
</script>

<template>
  <el-icon style="vertical-align: middle">
    <Search />
  </el-icon>
</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 配置

// ...
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'

export default defineConfig({
  // ...

  plugins: [
    AutoImport({
      resolvers: [
        // 自动导入图标组件
        IconsResolver({
          prefix: 'Icon'
        })
      ]
    }),

    Components({
      resolvers: [
        // 自动注册图标组件
        IconsResolver({
          enabledCollections: ['ep']
        })
      ]
    }),
    
    Icons({
      autoInstall: true
    })
  ]
})

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

<el-icon>
  <i-ep-edit />
</el-icon>

官方参考

Icon 图标 | Element Plus

国际化

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

方式1、全局导入时配置

// main.js

import { createApp } from 'vue'

import App from './App.vue'
import router from './router'

import ElementPlus from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'

const app = createApp(App)
app.use(router)

app.use(ElementPlus, {
  locale: zhCn,
})

app.mount('#app')

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

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

// App.vue

<script setup>
import { RouterView } from 'vue-router'
// 引入配置组件
import { ElConfigProvider } from 'element-plus'
// 引入中文包
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
</script>

<template>
  <el-config-provider :locale="zhCn">
    <RouterView />
  </el-config-provider>
</template>

<style scoped>
</style>

 国际化 | Element Plus


package.json

{
  "name": "test",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "vite --mode dev",
    "test": "vite build --mode test",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "element-plus": "^2.5.6",
    "pinia": "^2.1.7",
    "vue": "^3.4.15",
    "vue-router": "^4.2.5"
  },
  "devDependencies": {
    "@iconify-json/ep": "^1.1.14",
    "@vitejs/plugin-vue": "^5.0.3",
    "unplugin-auto-import": "^0.17.5",
    "unplugin-icons": "^0.18.5",
    "unplugin-vue-components": "^0.26.0",
    "vite": "^5.0.11"
  }
}

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

### 安装和配置 Element Plus #### 创建 Vue 3 项目 为了开始,在本地环境中创建一个新的 Vue 3 项目是必要的。这可以通过 Vue CLI 或 Vite 来完成,取决于个人偏好或是项目的具体需求[^1]。 对于使用 Vue CLI 的情况,确保已经安装了 Node.js 和 npm 后,可以执行以下命令来设置新的 Vue 项目: ```bash npm install -g @vue/cli vue create my-vue-app cd my-vue-app ``` 而对于希望采用更快速打包工具的开发者来说,则可以选择 Vite: ```bash npm init vite@latest my-vue-app --template vue cd my-vue-app npm install ``` #### 安装 Element Plus 库 一旦有了基础的 Vue 3 项目结构之后,就可以继续安装 Element Plus 组件库。通过终端进入项目根目录,并运行下面这条指令来进行安装操作: ```bash npm install element-plus --save ``` 此过程会自动处理依赖关系并将所需资源加入到 package.json 文件之中[^3]。 #### 配置 main.js 文件引入 Element Plus 为了让整个应用程序能够访问来自 Element Plus 提供的各种组件和服务,需要编辑 `src/main.js` 文件以导入并注册这些功能模块。以下是修改后的代码片段示例: ```javascript import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; // 导入全部样式表 (可选) import &#39;element-plus/lib/theme-chalk/index.css&#39;; // 按需加载特定组件的方式(推荐),这里仅作为演示用途选择了 Button 组件 import { ElButton, ElMessage } from &#39;element-plus&#39;; const app = createApp(App); app.use(ElementPlus); app.component(&#39;el-button&#39;, ElButton); // 注册单个组件实例 app.config.globalProperties.$message = ElMessage; // 将消息提示方法挂载至全局属性上 app.mount(&#39;#app&#39;); ``` 上述例子展示了两种不同的方式——整体引入与按需加载;后者有助于减少最终构建产物体积,因此被广泛认为是一种更好的做法[^4]。 #### 使用 Element Plus 组件 最后一步就是在实际页面里运用所学的知识啦!只需要按照官方文档说明编写相应的 HTML 结构加上对应的标签名即可轻松实现各种交互效果。比如要展示一个按钮控件的话,可以在 `.vue` 单文件组件内部这样写: ```html <template> <div id="example"> <!-- 调用已注册过的 el-button --> <el-button type="primary">点击我</el-button> <!-- 直接调用 $message 方法发送通知 --> <button @click="$message({ message: &#39;你好呀!&#39;,type:&#39;success&#39;})">显示消息框</button> </div> </template> ``` 以上就是完整的在 Vue 3 中集成 Element Plus 的流程介绍[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值