Vue 提供了一個非常方便的指令 v-focus,可以幫助我們在頁面加載后自動聚焦到某個 input 框或 textarea 中。但有時候,我們需要在 div 這樣的元素上使用聚焦,這時候就需要使用 ref 和 $refs 來實現。下面是一個簡單的例子。
<template>
<div ref="myDiv">點擊這個 div,讓它獲得焦點</div>
</template>
<script>
export default {
mounted() {
this.$refs.myDiv.focus()
}
}
</script>
上面這個例子就是讓一個 div 獲得焦點。可以看到,我們在 div 上設置了一個 ref 屬性,然后在 mounted 鉤子函數中使用 this.$refs.myDiv.focus() 來使其獲得焦點。
不過需要注意的是,并不是所有的元素都支持 focus 方法,比如 img、video 這些元素就不行。另外,如果你在開發組件時需要使用 div 進行編輯或輸入,建議還是使用 textarea 等具有輸入功能的元素來代替,這樣不僅方便用戶的輸入,也符合對標簽語義的考慮。
下一篇vue單點登錄流程