Для быстрого использования компонентов Element Plus в проектах на Vue.js без необходимости настраивать сборку через Vite, Webpack или другие сборщики, можно подключить библиотеку напрямую через CDN. Это особенно удобно для прототипов, небольших проектов или образовательных целей.
Библиотека состоит из двух ключевых частей: CSS для оформления компонентов и JavaScript для их функциональности. При подключении через CDN необходимо указать оба файла в HTML:
<!-- Element Plus CSS -->
<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css" />
<!-- Vue.js (необходима для работы Element Plus) -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<!-- Element Plus JS -->
<script src="https://unpkg.com/element-plus/dist/index.full.js"></script>
Важно: подключение должно происходить после Vue.js, поскольку Element Plus зависит от экземпляра Vue.
После подключения файлов через CDN, библиотеку необходимо
зарегистрировать в экземпляре Vue. Для глобальной регистрации
компонентов используется метод app.use():
<div id="app">
<el-button type="primary">Нажми меня</el-button>
</div>
<script>
const { createApp } = Vue;
const { ElButton } = ElementPlus;
const app = createApp({
data() {
return {};
}
});
// Глобальная регистрация всех компонентов Element Plus
app.use(ElementPlus);
// Или выборочная регистрация компонента
// app.component('ElButton', ElButton);
app.mount('#app');
</script>
Ключевые моменты:
app.use(ElementPlus) подключает все компоненты
библиотеки.Element Plus доступен на популярных CDN-платформах:
UNPKG
https://unpkg.com/element-plus/dist/index.csshttps://unpkg.com/element-plus/dist/index.full.jsJSDelivr
https://cdn.jsdelivr.net/npm/element-plus/dist/index.csshttps://cdn.jsdelivr.net/npm/element-plus/dist/index.full.jsИспользование JSDelivr может быть предпочтительным для продакшен-проектов благодаря встроенному кэшированию и высокой доступности.
После глобальной регистрации компонентов можно использовать их в шаблоне напрямую:
<el-input v-model="text" placeholder="Введите текст"></el-input>
<el-button type="success" @click="submit">Отправить</el-button>
const app = createApp({
data() {
return {
text: ''
};
},
methods: {
submit() {
console.log(this.text);
}
}
});
app.use(ElementPlus);
app.mount('#app');
Особенности:
v-model) полностью
поддерживаются.<link> и
<script> тегов.Element Plus предоставляет набор встроенных иконок. Для работы с ними через CDN необходимо подключить отдельный пакет и зарегистрировать иконки:
<script src="https://unpkg.com/@element-plus/icons-vue/dist/index.full.js"></script>
const { ElIcon, Plus } = ElementPlusIconsVue;
app.component('ElIcon', ElIcon);
app.component('Plus', Plus);
Пример использования:
<el-button type="primary">
<el-icon><plus /></el-icon>
Добавить
</el-button>
Подключение через CDN позволяет использовать CSS-переменные для настройки внешнего вида компонентов без пересборки проекта:
<style>
:root {
--el-color-primary: #409eff;
--el-color-success: #67c23a;
--el-color-warning: #e6a23c;
--el-color-danger: #f56c6c;
--el-color-info: #909399;
}
</style>
Все компоненты автоматически подхватывают новые значения переменных.
Для стабильной работы важно фиксировать версию библиотеки:
<link rel="stylesheet" href="https://unpkg.com/element-plus@2.3.6/dist/index.css" />
<script src="https://unpkg.com/element-plus@2.3.6/dist/index.full.js"></script>
Так можно избежать проблем с неожиданными обновлениями и несовместимостью API.