我在学习官方文档的ref(访问跟实例)时,v访问子组件实例的input不能聚焦,我一开始是这么写的:
<body> <div id="app"> <my-compon ref="usernameInput"></my-compon> </div> <script> Vue.component('myCompon',{ template:`<input ref='input' type='text'></input>`, methods: { focus(){ this.$refs.input.focus() } }, }) new Vue({ el:'#app', created() { this.$refs.usernameInput.focus() }, }) </script> </body>可是我的input却一直不能聚焦,后来发现这里只需要改一处代码就能成功运行,初学者可以思考一下。
后来发现这里是生命周期的问题,因为在created的时候vue的template还未挂载在$el中,所以这时候并不能访问到上诉代码中ref的usernameInput,所以只需将vue实例中的created()(创建实例后)改成mounted()(挂载后)即可成功聚焦!!!
new Vue({ el:'#app', mounted() { this.$refs.usernameInput.focus() }, })我也是刚学习vue,懂的大佬们别喷我(T.T)…