Динамические аргументы директивы
Аргументы директивы могут быть динамическими. Например, для v-mydirective:[argument]="value", argument может обновляться в зависимости от свойства данных экземпляра компонента! Это позволит сделать пользовательские директивы более гибкими при использовании в приложении.
Допустим, необходимо создать собственную директиву, которая позволит установить элементы на странице с помощью фиксированного позиционирования. Можно создать пользовательскую директиву, где значение определяет вертикальное положение в пикселях, например так:
<div id="baseexample">
<p>Прокрутите страницу вниз</p>
<p v-pin="200">Элемент зафиксирован в 200px от начала страницы</p>
</div>Vue.directive('pin', {
bind: function (el, binding, vnode) {
el.style.position = 'fixed'
el.style.top = binding.value + 'px'
}
})
new Vue({
el: '#baseexample'
})Это закрепит элемент в 200px от начала страницы. Но что если возникнет случай, когда необходимо закрепить элемент слева, а не сверху? Для этого пригодится динамический аргумент директивы, который можно определить для каждого экземпляра компонента:
<div id="dynamicexample">
<h3>Прокрутите страницу вниз</h3>
<p v-pin:[direction]="200">Элемент зафиксирован в 200px слева страницы.</p>
</div>Результат:

Last updated
Was this helpful?