$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; // 又触发一次视图更新
})