Vue
$nextTick
知识点 :Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是按一定的策略进行 DOM 的更新
$nextTick 就是在异步更新 后执行的 方法,形如:
this.$nextTick(()=>{
// 执行的内容
});
使用场景:
在 created 和 mounted 阶段,操作视图
mounted: function () {
this.$nextTick(()=>{
// Code that will run only after the
// entire view has been rendered
})
}
需要用到dom元素的信息或者 调用dom元素的方法
showsou(){
this.showit = true; // 让keywords元素显示
this.$nextTick(() => {
// DOM 更新了
document.getElementById("keywords").focus();//需要 放在里面,否则元素还未显示 出来,操作会 失败
})
}
希望 可以通过切换属性来达到更新视图的目的
// element 更新 总计行的例子
// this.showSummary = false ;
// 错误示例
this.showSummary = false;
this.showSummary = true;
// 因为直接变了两次,让vue认为没有变动
// 正确示例
this.showSummary = false;// vue发现参数变了,进行视图更新,将合计行隐藏,接着调用$nextTick方法
this.$nextTick(() => {
// DOM 更新了
this.showSummary = true; // 又触发一次视图更新
})