vue的nextTick这个方法有什么用,vue nexttick的作用

  vue的nextTick这个方法有什么用,vue nexttick的作用

  本文主要介绍了nextTick在vue中的作用以及几个简单的使用场景,帮助大家更好的理解和使用Vue框架。感兴趣的朋友可以了解一下。

  

目的

  了解nextTick的功能和几个简单的使用场景。

  

正文

  

起什么作用?

  在下一个DOM更新周期结束后执行延迟回调。使用此方法可以在修改数据后立即获取更新的DOM。

  我想你们都知道或者了解Vue的渲染过程。Vue会在监测到数据变化后重新渲染,配合VDOM更新真实的DOM。nextTick的触发时间是在调用方法后第一次重新呈现之后。

  

如何使用?

  使用方法有两种,一种是呼入回拨,一种是承诺。官方用法示例如下:

  //修改数据

  vm.msg=Hello

  //DOM还没有更新

  Vue.nextTick(function () {

  //DOM已更新

  })

  //作为承诺(2.1.0起新增,详见下期提示)

  Vue.nextTick()。then(function () {

  //DOM已更新

  })

  如果您在SPA(单个文件组件)中,它可能看起来像这样。

  模板

  div id= test“{ msg } }/div

  /模板

  脚本

  导出默认值{

  名称:“应用程序”,

  data() {

  返回{

  “你好,世界!”

  }

  },

  方法(){

  this.msg=嗨,世界!;

  这个。$nextTick(()={

  console.log(DOM updated:,document.getElementById(test )。innerHTML)

  });

  }

  }

  /脚本

  

有什么使用场景?

  渲染完成后需要执行的一些方法。

  

初始化绑定或操作 DOM

  比如在创建和挂载的回调中,如果需要操作渲染的DOM,就需要执行nextTick中的相关逻辑,这在你不得不使用一些需要绑定DOM的老库的时候很有用。

  例如,当您加载UEditor时,您可能会这样播放。

  模板

  script id= container name= content type= text/plain 在此处编写您的初始化内容/脚本。

  /模板

  脚本

  导出默认值{

  已安装(){

  this.nextTick(()={

  var UE=UE . get editor( container );

  });

  }

  }

  

获取元素宽度

  有两种方法可以得到Vue中的元素宽度。第一个是通过$refs[ref name ].style.width,第二个可以通过传统的DOM操作获得。然而,要获得准确的元素宽度,这两个方法需要在DOM呈现之后执行。

  模板

  p= my width v-if= showme { { message } }/p button @ click= getmy width 获取p元素/按钮的宽度

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  信息:“你好,世界!”,

  showMe:假的,

  },

  方法:{

  getMyWidth() {

  this.showMe=true

  //this . message=this . refs . my width . offsetwidth;//错误类型错误:this.refs.mywidth未定义

  this.nextTick(()={

  //更新并执行//dom元素。此时可以得到P元素的属性this . message=this . refs . my width . offsetwidth;})

  }

  }

  }

  }

  /脚本

  

总结

  虽然Vue的设计理念并不建议我们直接操作DOM,但是在某些场景下还是存在一些令人困惑的问题。理解了Vue的渲染逻辑之后,我们就可以用nextTick()来解决了。

  以上就是如何在vue中使用nextTick的细节。更多关于在Vue中使用nextTick的信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: