Element Plus предоставляет возможность автоматического импорта компонентов, что значительно упрощает процесс разработки и уменьшает объем повторяющегося кода. В традиционном подходе требовалось вручную импортировать каждый компонент и регистрировать его в приложении Vue. Автоматический импорт решает эту задачу, позволяя подключать компоненты по мере их использования в шаблоне.
Для работы с автоматическим импортом компонентов используется плагин
unplugin-vue-components. Его можно установить через npm или
yarn:
npm install -D unplugin-vue-components
npm install -D unplugin-auto-import
Далее необходимо подключить его в конфигурации сборщика, например, в
vite.config.js для Vite:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [
vue(),
Components({
resolvers: [ElementPlusResolver()],
}),
],
})
Важный момент: ElementPlusResolver автоматически
определяет, какие компоненты используются в проекте, и подставляет
необходимые импорты, что исключает необходимость ручной регистрации
через app.component.
После настройки проекта можно использовать любые компоненты Element Plus прямо в шаблонах Vue. Например:
<template>
<el-button type="primary">Нажми меня</el-button>
<el-input v-model="value" placeholder="Введите текст"></el-input>
</template>
<script setup>
import { ref } from 'vue'
const value = ref('')
</script>
Здесь нет ни одного ручного импорта ElButton или
ElInput, однако сборщик автоматически подставляет
необходимые импорты.
Element Plus разделяет стили на компоненты, и при автоматическом импорте также можно автоматически подключать CSS. Для этого достаточно в конфигурации плагина указать:
Components({
resolvers: [
ElementPlusResolver({ importStyle: 'sass' })
],
})
Параметр importStyle может принимать значения:
'css' — подключение готовых CSS файлов,'sass' — подключение исходных SCSS файлов для
возможности переопределения переменных.Кроме компонентов, часто требуется использовать утилиты Element Plus,
например ElMessage или ElNotification. Для
этого применяется unplugin-auto-import:
import AutoImport from 'unplugin-auto-import/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [
AutoImport({
resolvers: [ElementPlusResolver()],
imports: ['vue'], // автоподключение функций Vue
}),
],
})
После этого можно использовать:
ElMessage.success('Данные успешно сохранены!')
без необходимости импортировать ElMessage вручную.
<script setup>.component :is)
требуется дополнительная ручная регистрация.unplugin-vue-components совместно с
unplugin-auto-import для полного покрытия автоматического
импорта.ElMessageBox, явно включать их в
конфигурацию автоподключения, чтобы избежать ошибок при вызове.Автоматический импорт в Element Plus существенно упрощает разработку интерфейсов на Vue 3. С правильной настройкой проекта можно минимизировать повторяющийся код, ускорить процесс подключения новых компонентов и гарантировать оптимизацию финальной сборки. Такой подход становится стандартом для крупных проектов, где количество используемых компонентов велико.