Директива v-bind указывает к какому атрибуту мы привязываем (to bind) данные. Например, в данных указан источник изображения:
var app = new Vue({
el: '#app',
data: {
product: 'Socks',
image: 'vmSocks-green-onWhite.jpg'
}
})
Чтобы привязать этот источник изображения к src в html коде, необходимо написать следующее:
<img v-bind:src="image" >
Условия
Условия, чтобы управлять элементами, задаются директивами:
- v-if
- v-else-if
- v-if
- v-show
Если значения атрибутов, подающихся директиве true, то с элементом будут производится какие-то действия. Например:
<span v-if="onSale">On sale!</span>
<span> элемент будет отображаться только если его значение равно true.
var app = new Vue({
el: '#app',
data: {
product: 'Socks',
image: 'vmSocks-green-onWhite.jpg',
inStock: true,
inventory: 100,
onSale: true
}
})
Используя директиву v-show, элемент не удаляется из DOM, а меняется лишь его свойство видимости.
<span style="display: none;">On sale!</span>
Отображение массивов в виде списков
Имея массив данных:
sizes: ["UK 7", "UK 8", "UK 9"]
Можно вывести его в виде списка с помощью директивы v-for, которая переберёт (to loop over) каждый элемент списка и выведет его отдельным пунктом.
<ul>
<li v-for="size in sizes">{{ size }}</li>
</ul>
Если же имеется массив объектов:
variants: [
{
variantId: 2234,
variantColor: "green"
},
{
variantId: 2235,
variantColor: "blue"
}
]
То для их корректного отображения в виде списка, необходимо указать так же ключ (variantId):
Так же, элементы массива можно проиндексировать и подавать непосредственно индекс:
Обработка событий
Для того, чтобы обрабатывать события, необходимо использовать директиву v-on.
Например, для того, чтобы вызвать метод после нажатия на кнопку, необходимо указать директиву и событие\действие:
v-on:click="addToCart">Add to Cart
Директиву v-on можно заменить на @.
Add to Cart
Помимо данных, в экземпляре Vue можно указывать методы.
methods: {
addToCart(){
this.cart += 1
},
updateProduct(variantImage){
this.image = variantImage
},
removeFromCart(){
this.cart -= 1
}
}
Ключевое слово this указывает на то, что мы изменяем значение переменной экземпляра Vue, с которым мы сейчас работаем.
Также директива v-on может обрабатывать событие, когда пользователь наводит курсор – @mouseover.
iv v-for=”variant in variants” :key=”variant.variantId”>
@mouseover=“updateProduct(variant.variantImage)”> {{variant.variantColor}}