Введение
Помимо встроенных директив (таких как v-model
и v-show
), Vue позволяет использовать ваши собственные. При этом важно понимать, что основным механизмом создания повторно используемого кода во Vue 2.0 всё-таки являются компоненты. Тем не менее, для выполнения низкоуровневых операций с DOM пользовательские директивы могут очень пригодиться. В качестве примера реализуем фокус на элементе input:

После загрузки страницы этот элемент получает фокус ввода (примечание: autofocus
не работает на мобильном Safari). Рассмотрим директиву подробнее:
// Регистрируем глобальную пользовательскую директиву `v-focus`
Vue.directive('focus', {
// Когда привязанный элемент вставлен в DOM...
inserted: function (el) {
// Переключаем фокус на элемент
el.focus()
}
})
Чтобы зарегистрировать директиву локально, можно передать опцию directives
при определении компонента:
directives: {
focus: {
// определение директивы
inserted: function (el) {
el.focus()
}
}
}
Теперь в шаблонах можно использовать новый атрибут v-focus
:
<input v-focus>
Last updated
Was this helpful?