今天在学习vue的自定义指令的时候,看到官网上面的示例(如下),
<script setup>
// 在模板中启用 v-focus
const vFocus = {
mounted: (el) => el.focus()
}
</script>
<template>
<el-input v-focus />
</template>
然后自己去尝试了一下,发现拿不到想要的结果,区别在于我自己的input标签是elementui的el-input标签,但是演示程序是input标签,问题出在哪里了呢。后来用console.log把两个el值打印出来看才看出来问题。
一个是div标签一个是input标签,用focus()获取div标签的焦点当然获取不到了,所以在el-input标签中,要用el.querySelector('input')获取input属性值在获取焦点,搞定。