как @ ramakant-mishra сказал, что вы должны использовать this.$refs
, но вам также необходимо динамически добавлять атрибут ref в ваш элемент input. позвольте мне показать вам:
new Vue({
el: '#app',
data: {
emails:[]
},
methods: {
add: function (e) {
let j = this.emails.push("")
this.$nextTick(() => {
this.$refs[`email${j - 1}`][0].focus()
})
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<div v-for="(email, i) in emails" :key="i">
<input v-model="email" :ref="`email${i}`" />
</div>
<button @click="add">add</button>
</div>
просто не забудьте использовать $ nextTick, потому что новый элемент еще не отображается в шаблоне