一文一什么,什么是文学一文的作者

  一文一什么,什么是文学一文的作者

  本文主要介绍一篇关于学习vue.nextTick()是什么的文章。以下文章重点介绍了课题的相关信息,有一定的参考价值,有需要的朋友可以参考一下。

  

目录

  应该什么时候vue。$nextTick()用于概念原理示例?

  

概念

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

  简单理解:

  为解决数据更新但视图不更新的问题,在数据更新时,DOM渲染后自动执行函数。

  

原理

  Vue异步执行dom更新。一旦观察到数据变化,Vue将打开一个队列,然后将在同一个事件循环中观察到数据变化的观察器推入这个队列。如果该观察器被多次触发,它将只被推入队列一次。这种缓冲行为可以有效去除重复数据带来的不必要的计算和DOm操作。在下一个事件周期,Vue将清空队列并进行必要的DOM更新。

  当设置VM.somedata= newvalue 时,不会立即更新DOM,但会在清除异步队列时执行必要的DOM更新,即在下一个事件周期开始时执行更新。此时,如果你想根据更新后的DOM状态做点什么,就会出现问题。要在数据更改后等待Vue完成更新DOM,可以在数据更改后立即使用Vue.nextTick(callback)。这样,回调函数将在DOM更新完成后被调用。

  

举例

  模板

  差异

  button ref= BTN @ click= handle BTN() { { message } }/button

  /div

  /模板

  脚本

  导出默认值{

  data(){

  返回{

  消息:“这是原始值”

  }

  },

  方法:{

  handleBtn:function(){

  让那个=这个

  That.message=修改值

  console.log(那个。$ refs . BTN . innertext);//这里的输出仍然是原始值

  }

  }

  }

  /脚本

  风格

  /风格

  通过例子可以看出,最终输出值还是原来的值。让我们来看看当这个。使用了$nextTick()。

  模板

  差异

  button ref= BTN @ click= handle BTN() { { message } }/button

  /div

  /模板

  脚本

  导出默认值{

  data(){

  返回{

  消息:“这是原始值”

  }

  },

  方法:{

  handleBtn:function(){

  让那个=这个

  That.message=修改值

  这个。$nextTick(function(){

  console.log(那个。$ refs . BTN . innertext);//这里的输出是修改后的值

  })

  }

  }

  }

  /脚本

  风格

  /风格

  这个的作用。通过这个例子可以清楚地看到$nextTick()。

  注意:

  vue实现的反应并不是DOM在数据改变后立即改变。而是按照一定的策略更新DOM。用了这个之后。$nextTick(),可以在他的回调中获取更新后的DOM。

  

应该什么时候使用vue.$nextTick()呢?

  Vue生命周期的created()钩子函数执行的DOM操作必须放在Vue.nextTick()的回调函数中。原因是在执行created () hook函数时,DOM操作是无效的,所以DOM操作的js代码必须放在Vue.nextTick()的回调函数中。它对应于挂载的钩子函数,因为当钩子函数被执行时,所有的DOM挂载都已经完成。当你想在项目中基于改变DOM元素的数据后的新dom做一些事情,* *需要把对新DOM的一系列js操作放到Vue.nextTick()的回调函数中;* *通俗的理解就是:更改完数据后,想要立即操作新视图,需要使用js模板。

  差异

  {{消息}}

  Button @click=changeText()测试/button

  /div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  消息:“这是原始值”,

  };

  },

  方法:{

  changeText () {

  让那个=这个;

  This.message=这是修改后的值;

  那个。$nextTick(function(){

  let txt=document . getelementbyid( BTN )。内部文本

  console . log(txt);

  Txt===这是原值?Console.log(数据的值改变时DOM的值不立即更新):console.log(数据的值改变时DOM的值立即更新);

  })

  },

  },

  };

  /脚本

  风格

  /风格

  关于学习vue.nextTick()是什么的这篇文章到此为止。关于vue.nextTick()的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!

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

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