原因:autofocus是vue中input的原生属性,element也支持这个方法,但是el-input组件在vue中element外面还有其他组件导致autofocus失败,只能手动调用focus方法聚集。解决方法:通过动态绑定ref属性调用this.$nextTick上的focus()方法。{{item.id}}.{{item.text}}//js部分varMain={data(){return{data:[{id:1,edit:false,text:"22"},{id:2,edit:false,text:"33"}]}},方法:{edit(item){this.data.map((item1)=>{if(item1.id==item.id){item1.edit=!item1.edit;this.$nextTick(()=>{//主要代码letid='input'+item.id;this.$refs[id][0].focus();})}})}}}varCtor=Vue.extend(Main)//如果你是vue-cli,就不用写newCtor().$mount('#app')//如果你在vue-cli中,不需要写补充问题:1.关于打印this.$refs,有时候组件实例是数组。这是vue的一个特性,它会自动将v-for中的ref展开成一个数组。假设你的ref不是dynamic的,而是static的,ref="a",那么不管循环执行多少次,最后ref都只有一个值,所以为了处理这种情况,vue会将v-for中的ref变成数组形式,以便捕获所有ref值。Vue本身提供了一个自定义指令的方法//注册一个全局的自定义指令v-focusVue.directive('focus',function(el){el.focus()})这样我们就可以在组件中调用自己使用的v-focus方法,绑定它定义一个布尔变量来控制元素是否获得焦点,但是这里需要注意的是组件本身在页面上是作为div元素渲染的,所以我们需要在自定义指令中获取组件,同时绑定为v-focus的querySelector()方法获取输入元素Vue.directive('focus',function(el){el.querySelector('input').focus()})Vue本身提供了自定义指令的方法2使用Vue提供的自定义指令解决问题。还有一点需要注意的是,el-input是在页面上渲染的,最后外层是一个div,需要把input拿到里面才有效果directives:{//注册一个本地自定义指令v-focusfocus:{//指令定义插入:function(el){//焦点元素el.querySelector('input').focus()}}},