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

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