性能: 在文本框展现进去的那一刻,让它主动获取焦点
1.在input的框里写入 ref="iptRef"(起名用Ref为后缀,识别是援用) 先拿到DOM元素
2.在 methods 里调用 focus()办法, 如下图所示:
3.此时会发现报错,这是为什么呢?Cannot read property 'focus' of undefined
意思是:无奈读取“focus”办法后面未定义的内容 (教训论证:正确理解)
报错起因:
起因就出在"this.inputVisible = true",此时数据尽管变动了,然而文本框还没有渲染展现到页面上,所以就拿不到它的援用ref,去调用focus()办法就会报错为 undefined;
解决问题:
Vue提供了一个办法 this.$nextTick(回调函数)组件的$nextTick(cd)办法,会把cd回调推延到下一个DOM更新周期之后执行.艰深的了解是:等组件的DOM 更新实现之后,在执行cd回调函数.从而保障cd回调函数能够操作到最新的 DOM 元素.
留神: 如果在生命周期函数里的 Updated()中用,会报错,因为Updated函数当数据发生变化的时候就会从新渲染组件DOM构造 (生命周期函数和methods是并列关系)