v-bind — директива, которая позволяет динамически
связывать значения атрибутов HTML с данными приложения. Она обеспечивает
реактивность элементов, то есть любые изменения в данных автоматически
отражаются на связанных атрибутах. В Petite-Vue v-bind
используется так же, как в Vue, но с упрощённой интеграцией, что делает
его идеальным для небольших проектов или постепенного внедрения
реактивности в существующий код.
Базовый синтаксис v-bind:
<div v-bind:атрибут="выражение"></div>
Где:
атрибут — имя HTML-атрибута, который необходимо связать
с данными;выражение — любая реактивная переменная или вычисляемое
значение из объекта состояния Petite-Vue.Сокращённая форма записи:
<div :атрибут="выражение"></div>
Двоеточие : перед атрибутом является сокращением для
v-bind: и часто используется для компактного кода.
<div id="app" v-scope="{ isDisabled: true, url: 'https://example.com' }">
<button :disabled="isDisabled">Нажми меня</button>
<a :href="url">Перейти</a>
</div>
<script type="module" src="https://unpkg.com/petite-vue?module"></script>
<script>
PetiteVue.createApp().mount()
</script>
В этом примере:
disabled кнопки напрямую связан с переменной
isDisabled. Если её значение изменится, кнопка
автоматически станет активной или заблокированной.href ссылки получает значение из переменной
url, что позволяет легко менять адрес без изменения
HTML.v-bind позволяет связывать несколько атрибутов через
объект:
<div v-bind="{ id: elementId, title: elementTitle }"></div>
Здесь атрибут id и title будут
автоматически получать значения из соответствующих реактивных
переменных.
Для атрибутов class и style есть
расширенные возможности.
Динамические классы:
<div :class="{ active: isActive, hidden: isHidden }"></div>
active будет применяться, если
isActive равно true.hidden будет применяться при значении
isHidden = true.Также можно использовать массив для множественных классов:
<div :class="[primaryClass, secondaryClass]"></div>
Динамические стили:
<div :style="{ color: textColor, fontSize: fontSize + 'px' }"></div>
textColor и fontSize.В HTML некоторые атрибуты работают как флаги (например,
checked, disabled, readonly).
Использование v-bind гарантирует корректную
реактивность:
<input type="checkbox" :checked="isChecked">
При изменении isChecked состояние чекбокса
синхронизируется с данными.
v-bind позволяет использовать любое
JavaScript-выражение:
<img :src="user.avatar || 'default.png'" :alt="user.name + ' avatar'">
alt динамически формируется из имени
пользователя.v-bind не поддерживает привязку к нестандартным или
приватным атрибутам напрямую без использования data-*.v-bind должно быть безопасным и не
содержать побочных эффектов, так как оно может пересчитываться при
каждом обновлении реактивного состояния.@click и другие
слушатели вместо прямого связывания через v-bind.v-bind особенно полезен для:
disabled,
readonly, required);href;src;В Petite-Vue v-bind сохраняет лёгкость синтаксиса,
обеспечивая реактивность без необходимости полной инфраструктуры Vue,
что делает его идеальным инструментом для небольших интерактивных
элементов и постепенного расширения функциональности страницы.