- 錯誤寫法
<template>
<div>
<button @click="onClick">edit</button>
<input v-show="isEdit" type="text" ref="txt"/>
<div>
<template>
<script>
export default {
data() {
return {
isEdit: false
}
},
methods: {
onClick() {
this.isEdit = true
// 輸入框需要在生命周期update階段才會顯示出來,此時尚未顯示,調用focus無效
this.$refs.txt.focus()
}
},
}
</script>
複制
- 正确寫法
onClick() {
this.isEdit = true
// 使用此函數将在下一次DOM更新結束後調用回調函數
this.$nextTick(function() {
this.$refs.txt.focus()
});
}
複制