Как я могу установить фокус на поле ввода HTML при загрузке страницы при использовании Composition API VueJS 3? У меня есть следующий HTML-код:
<div>
<input type = "text" id = "filter" v-model = "filter">
</div>
И пробовали это в функции setup (), но это не устанавливает фокус:
setup() {
onMounted(() => {
const filter_fld = document.getElementById('filter')
filter_fld.focus()
})
}
Я также пробовал использовать приведенный ниже
HTML:
<div>
<input type = "text" ref = "filter_fld" v-model = "filter">
</div>
И в функции setup ():
setup() {
const filter_fld = ref(null)
onMounted(() => {
filter_fld.value?.focus()
})
}
Но, к сожалению, безуспешно. Какие-либо предложения?





Введите в свой шаблон ref, например:
<input ref = "filter" />
Затем после установки компонента сфокусируйте его по ссылке на следующем тике:
import { ref, onMounted, nextTick } from 'vue';
setup() {
const filter = ref(null);
onMounted(() => {
nextTick(() => {
filter.value.focus();
});
});
return {
filter
};
}
Герой !! Большое спасибо. Не знал функцию nextTick ().