VUE_ 之异步更新机制nextTick

简介: VUE_ 之异步更新机制nextTick
   Vue.nextTick(function () {
      // DOM 更新了
    })
   this.$nextTick(()=>{
        // DOM 更新了
       })


  • ①. 在下一DOM更新循环结束之后执行连续的替代。在修改数据之后立即使用此方法,获取更新后的DOM


  • ②. 模板代码


  // 修改数据
  vm.msg = 'Hello'
  // DOM 还没有更新
  Vue.nextTick(function () {
    // DOM 更新了
  })
  // 作为一个 Promise 使用 (2.1.0 起新增,详见接下来的提示)
  Vue.nextTick()
    .then(function () {
      // DOM 更新了
    })
    //作为一个promise使用
   vue.nextTick().then(()=>{
     alert(document.getElementById("xx").value)
    }).finally(()=>{
     alert("我来了")
    })  


③. 具体使用的场景(1) (掌握)


  (1).点击按钮显示原本以 v-show = false 隐藏起来的输入框,并获取焦点
  showsou(){
  this.showit = true //修改 v-show
   //在第一个 tick 里,获取不到输入框,自然也获取不到焦点
  document.getElementById("keywords").focus() 
}
  (2).修改为:
  showsou(){
    this.showit = true
    this.$nextTick(function () {
      // DOM 更新了
      document.getElementById("keywords").focus()
    })
   }


④. 具体使用的场景 (2) (掌握)


[在以后如果elementUI中需要弹出弹出层,我们都可以使用如下的方式来弹出]


微信图片_20220106131616.png

相关文章
|
1天前
|
JavaScript 前端开发
vue动态添加style样式
vue动态添加style样式
|
2天前
|
JavaScript 前端开发
Vue项目使用px2rem
Vue项目使用px2rem
|
1天前
|
JavaScript
vue中watch的用法
vue中watch的用法
|
6天前
|
JavaScript 前端开发
Vue项目使用px2rem
Vue项目使用px2rem
|
5天前
|
JavaScript
Vue组件传值异步问题--子组件拿到数据较慢
Vue组件传值异步问题--子组件拿到数据较慢
10 0
|
5天前
|
缓存 JavaScript
Vue中的keep-alive是什么意思?以及如何使用
Vue中的keep-alive是什么意思?以及如何使用
|
JavaScript 前端开发 缓存
|
9天前
|
JavaScript
vue学习(3)模板语法
vue学习(3)模板语法
42 11
|
9天前
|
存储 JavaScript 前端开发
vue学习(2)
vue学习(2)
199 65
|
9天前
|
JavaScript 算法 前端开发
vue学习(1)
vue学习(1)
199 62