vue中让input自动聚焦的方法

自定义v-focus指令
使用普通input输入框:

<input v-focus>
directives: { 
  focus: {
    inserted: function (el) {
      el.focus();
    }
  }
}

使用element的el-input:

<el-input v-focus></el-input>
directives: { 
  focus: {
    inserted: function (el) {
       el.querySelector('input').focus();
    }
  }
}

如果el-input是在el-dialog中使用的,只有第一次打开弹窗的时候input才会聚焦,原因是el-dialog的显示隐藏是通过v-show来实现的,而v-focus只有在元素插入时才起作用,所以可以将v-focus配合v-if使用

<el-input v-focus v-if="dialogVisible"></el-input>

你可能感兴趣的:(vue相关)