Директива v-bind используется для динамического
связывания атрибутов HTML с данными компонента. Она позволяет
обновлять значения атрибутов автоматически при изменении состояния
приложения, что делает интерфейс реактивным.
v-bindСинтаксис директивы:
<img v-bind:src="imageUrl" alt="Описание изображения">
Здесь атрибут src получает значение из свойства
imageUrl компонента. Любое изменение imageUrl
автоматически обновляет изображение на странице.
v-bind может связывать любые атрибуты,
включая class, id, href,
title, disabled и т.д.<a v-bind:href="'https://example.com/' + userId">Ссылка на профиль</a>
Для упрощения записи Vue.js поддерживает сокращённый синтаксис с двоеточием:
<img :src="imageUrl" alt="Описание изображения">
Этот вариант полностью эквивалентен v-bind:src, но более
компактный и удобный для длинных компонентов с множеством атрибутов.
Классы можно задавать объектом или массивом:
<div :class="{ active: isActive, disabled: isDisabled }"></div>
<div :class="[classA, classB]"></div>
Стили также поддерживают объектный синтаксис:
<div :style="{ color: textColor, fontSize: fontSize + 'px' }"></div>
<div :style="[styleObject, additionalStyles]"></div>
v-bind активно используется для передачи
пропсов в дочерние компоненты:
<child-component :title="parentTitle" :count="counter"></child-component>
Также возможно массовое связывание всех свойств объекта:
<child-component v-bind="propsObject"></child-component>
Это удобно, когда требуется передать множество пропсов без явного перечисления каждого.
<button :disabled="isDisabled">Нажми меня</button>
<img :alt="'Фото профиля ' + userName">
v-bind, отражаются на DOM без необходимости дополнительного
кода для обновления.<a :href="`/users/${user.id}/profile`" :class="{ active: currentUserId === user.id }">
Профиль
</a>
<div :style="{ backgroundColor: isHighlighted ? 'yellow' : 'white', padding: paddingValue + 'px' }">
Контент
</div>
Такие конструкции позволяют создавать интерфейсы с минимальным количеством шаблонного кода и обеспечивают высокую читаемость и поддержку реактивности.
:.v-bind с объектом.Такое применение v-bind обеспечивает гибкость и
масштабируемость компонентов Vue.js, позволяя создавать динамичные и
поддерживаемые интерфейсы без лишнего дублирования кода.