美文网首页
关于vue框架中的nextTick

关于vue框架中的nextTick

作者: 白玩VAC | 来源:发表于2019-08-05 19:23 被阅读0次

vue对数据的监听是同步的还是异步的?是如何对数据进行监听的?

什么是nextTick()

nextTick是将回调函数延迟到下次DOM树更新时触发.所以第一个问题的答案是:1.异步的 2.nextTick()

什么时候使用nextTick()

场景1.created()中

在created钩子函数中对dom进行操作时.
因为created时dom树还没有被渲染,所以对dom树的操作都是徒劳的,如果想在此时对dom树进行操作,只能将操作内容放在nextTick中,即,当dom树发生更新时执行.

created(){
  let that = this //让方法的this指向实例
  that.$nextTick(function(){
      //dom操作
  })
}

场景2.更新数据后立即用js操作识图

//以修改某dom的文本为例
data:{testMsg:"原始值"},
methods:{
changeTxt(){
      let that=this;
      that.testMsg="修改后的文本值";  //修改dom结构
       
      that.$nextTick(function(){  //使用vue.$nextTick()方法可以dom数据更新后延迟执行
        let domTxt=document.getElementById('h').innerText; 
        console.log(domTxt);  //输出可以看到vue数据修改后并没有DOM没有立即更新,
        if(domTxt==="原始值"){
          console.log("文本data被修改后dom内容没立即更新");
        }else {
          console.log("文本data被修改后dom内容被马上更新了");
        }
      });
    }}

场景3.在使用某些第三方插件时

某些第三方插件可能会希望在dom树刷新后应用.

相关文章

网友评论

      本文标题:关于vue框架中的nextTick

      本文链接:https://www.haomeiwen.com/subject/uervdctx.html