Библиотека Element Plus предоставляет широкий набор компонентов для построения интерфейсов на Vue 3. Порядок элементов в пользовательском интерфейсе напрямую влияет на восприятие и удобство использования приложения. В Element Plus порядок элементов определяется как на уровне разметки Vue, так и через специальные утилиты для управления layout, spacing и позиционированием.
Для организации компонентов используются контейнеры
el-row и el-col. Они создают гибкую
сетку, позволяя управлять порядком и расположением элементов:
<template>
<el-row :gutter="20">
<el-col :span="8">
<el-button type="primary">Кнопка 1</el-button>
</el-col>
<el-col :span="8">
<el-button type="success">Кнопка 2</el-button>
</el-col>
<el-col :span="8">
<el-button type="warning">Кнопка 3</el-button>
</el-col>
</el-row>
</template>
gutter – задаёт промежуток между колонками.<el-col> в разметке.:span задаёт ширину колонки в
рамках 24-частной сетки.Для динамического изменения порядка колонок можно использовать
Flex-свойства, доступные через атрибут
justify и align у el-row:
justify="start|center|end|space-between|space-around|space-evenly"
— горизонтальное выравнивание.align="top|middle|bottom" — вертикальное
выравнивание.Element Plus активно использует CSS Flexbox и Grid для управления
порядком компонентов. Компоненты с
display: flex поддерживают свойство
order, которое позволяет менять визуальный порядок без
изменения разметки:
<template>
<el-row type="flex" justify="start">
<el-col :span="8" :style="{ order: 2 }">
<el-card>Карточка B</el-card>
</el-col>
<el-col :span="8" :style="{ order: 1 }">
<el-card>Карточка A</el-card>
</el-col>
</el-row>
</template>
order – целочисленное значение, по которому элементы
сортируются. Элемент с меньшим значением отображается первым.Компоненты Element Plus поддерживают группировку, что влияет на их визуальный и логический порядок:
el-button-group — объединяет кнопки, отображая их в
единой линии.el-radio-group и el-checkbox-group —
группируют элементы формы и управляют их поведением как единого
блока.Пример упорядочивания кнопок с использованием группы:
<template>
<el-button-group>
<el-button type="primary">Сохранить</el-button>
<el-button type="danger">Удалить</el-button>
<el-button>Отмена</el-button>
</el-button-group>
</template>
В данном случае порядок кнопок определяется их последовательностью
внутри <el-button-group>.
Element Plus позволяет использовать CSS-классы для адаптивности, чтобы изменять порядок компонентов на разных разрешениях:
<template>
<el-row class="responsive-order">
<el-col :span="12" class="order-2-md">
<el-card>Контент B</el-card>
</el-col>
<el-col :span="12" class="order-1-md">
<el-card>Контент A</el-card>
</el-col>
</el-row>
</template>
<style>
@media (min-width: 768px) {
.order-1-md { order: 1; }
.order-2-md { order: 2; }
}
</style>
Некоторые компоненты Element Plus сами управляют порядком вложенных элементов:
el-menu — элементы меню выводятся в
том порядке, в котором они перечислены в разметке или массиве
данных.el-tabs — порядок вкладок
соответствует их порядку в <el-tab-pane>.el-table — колонки таблицы могут быть
переставлены динамически через v-for и массив
конфигурации.Пример динамического таба:
<template>
<el-tabs v-model="activeTab">
<el-tab-pane
v-for="tab in tabs"
:key="tab.name"
:label="tab.label"
:name="tab.name"
></el-tab-pane>
</el-tabs>
</template>
<script setup>
import { ref } from 'vue';
const activeTab = ref('first');
const tabs = ref([
{ name: 'first', label: 'Вкладка 1' },
{ name: 'second', label: 'Вкладка 2' },
]);
</script>
tabs.order, justify, align).el-tabs,
el-menu, el-table), позволяют изменять порядок
элементов через массив данных.Этот комплексный подход позволяет строить интерфейсы, где порядок элементов подчинён логике приложения и адаптирован к различным устройствам.