В библиотеке Element Plus каждый компонент имеет набор props — свойств, которые позволяют детально настраивать поведение и внешний вид компонентов. Props задаются при использовании компонента и могут принимать различные типы значений: строки, числа, логические значения, массивы или объекты. Понимание структуры props является ключом к эффективной работе с библиотекой.
Дефолтные значения Большинство props имеют
заранее определённые значения по умолчанию. Если проп не указан,
компонент использует дефолтное значение. Например, для компонента
<el-button> проп type по умолчанию равен
'default'.
Типизация props Для корректной работы компонента важно указывать props соответствующего типа. Element Plus поддерживает следующие типы:
StringNumberBooleanArrayObjectFunctionНеверный тип может привести к некорректному отображению компонента или ошибкам при взаимодействии.
Валидация и ограничения Некоторые props имеют
ограниченный набор допустимых значений. Например, для
el-button проп size может принимать
'large', 'medium' или 'small'.
Использование других значений игнорируется компонентом.
<el-button><el-button
type="primary"
size="large"
:loading="isLoading"
:disabled="isDisabled">
Отправить
</el-button>
primary, success, warning,
danger, info, text)large,
medium, small)<el-dialog><el-dialog
:visible.sync="dialogVisible"
title="Подтверждение"
width="50%"
:before-close="handleClose"
>
<span>Вы уверены, что хотите продолжить?</span>
</el-dialog>
<el-table>Props для таблицы позволяют гибко настраивать отображение данных:
<el-table :data="tableData" stripe border :default-sort="{ prop: 'date', order: 'descending' }">
<el-table-column prop="name" label="Имя" width="180"></el-table-column>
<el-table-column prop="date" label="Дата"></el-table-column>
</el-table>
Props можно задавать не только статически, но и динамически через привязку к переменным Vue:
<el-input
v-model="inputValue"
:placeholder="placeholderText"
:maxlength="maxLength"
:show-word-limit="true">
</el-input>
Некоторые компоненты, такие как селекты
<el-select> или таблицы
<el-table>, принимают массивы объектов:
<el-select v-model="selectedValue" placeholder="Выберите элемент">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
label и valueНекоторые props позволяют передавать callback-функции, которые вызываются при определённых событиях:
<el-upload
:action="uploadUrl"
:on-success="handleUploadSuccess"
:before-upload="beforeUploadCheck">
</el-upload>
String,
Number, BooleanArray,
ObjectПонимание и грамотное использование props является фундаментом для построения сложных интерфейсов в Element Plus, обеспечивая гибкость и расширяемость приложений на Vue 3.