简单说一下vue,关于vue
Vue.nextTick是某视频剪辑软件官方给我们提供的一个API(方法),作用是在下次数字正射影像图更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的数字正射影像图
当数据发生变化之后,DOM视图并不会立即更新,如果我们在发生变化之后立马去获取某个节点或者某个节点的值,很有可能结果就是未定义;因为某视频剪辑软件实现响应式并不是数据发生变化之后数字正射影像图立即变化,而是按一定的策略进行数字正射影像图的更新;
来看一个小演示:
App.vue
模板
div id=应用程序
div ref= message"{ msg } }/div
div v-if=msg1{{msg1}}/div
button @click=changeMsg 更改消息/按钮
/div
/模板
脚本
导出默认值{
名称:"应用程序",
data(){
返回{
消息:"你好,Vue”,
msg1: ,
}
},
方法:{
changeMsg(){
this.msg= hello world
this.msg1=this .$参考文献。消息。innerhtml
console.log(更新数字正射影像图之前: this.msg1)
}
}
}
/脚本
风格
#app {
字体系列:《Avenir》,Helvetica,Arial,无衬线;
-WebKit-字体-平滑:抗锯齿;
-moz-osx-font-smoothing:灰度;
文本对齐:居中;
颜色:# 2c3e50
边距-顶部:60px
}
/风格
我们通过运行代码能够看到当我们不在这个$nextTick方法里面进行数字正射影像图操作的时候,这个. refs.message.innerHTML的值存储的还是之前的初始值;
修改代码:
App.vue
模板
div id=应用程序
div ref= message"{ msg } }/div
div v-if=msg1{{msg1}}/div
button @click=changeMsg 更改消息/按钮
/div
/模板
脚本
导出默认值{
名称:"应用程序",
data(){
返回{
消息:"你好,Vue”,
msg1: ,
}
},
方法:{
changeMsg(){
this.msg= hello world
//this.msg1=this .$参考文献。消息。innerhtml
//console.log(更新数字正射影像图之前: this.msg1)
这个. nextTick(()={
this.msg1=this .$参考文献。消息。innerhtml
console.log(更新数字正射影像图之后: this.msg1)
})
}
}
}
/脚本
风格
#app {
字体系列:《Avenir》,Helvetica,Arial,无衬线;
-WebKit-字体-平滑:抗锯齿;
-moz-osx-font-smoothing:灰度;
文本对齐:居中;
颜色:# 2c3e50
边距-顶部:60px
}
/风格
修改代码之后我们可以发现,使用这个$nextTick很容易的就接收到了更新后的值,正如官网解释:在下次数字正射影像图更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的数字正射影像图
再来修改代码对比一下:
App.vue
模板
div id=应用程序
div ref= message"{ msg } }/div
div v-if=msg1{{msg1}}/div
button @click=changeMsg 更改消息/按钮
/div
/模板
脚本
导出默认值{
名称:"应用程序",
data(){
返回{
消息:"你好Vue”,
msg1: ,
}
},
方法:{
changeMsg(){
this.msg= hello world
this.msg1=this .$参考文献。消息。innerhtml
console.log(更新数字正射影像图之前: this.msg1)
这个. nextTick(()={
this.msg1=this .$参考文献。消息。innerhtml
console.log(更新数字正射影像图之后: this.msg1)
})
}
}
}
/脚本
风格
#app {
字体系列:《Avenir》,Helvetica,Arial,无衬线;
-WebKit-字体-平滑:抗锯齿;
-moz-osx-font-smoothing:灰度;
文本对齐:居中;
颜色:# 2c3e50
边距-顶部:60px
}
/风格
经过修改代码,我们现在可以很容易看出来这个$nextTick(回调)的作用,回拨是回调函数也就是我们要进行操作数字正射影像图的事情;
应用场景:
在某视频剪辑软件的生命周期钩子函数已创建()中进行数字正射影像图操作的时候一定要把数字正射影像图操作放入到这个. nextTick()中;
因为在创造钩子函数触发的时候,DOM是没有进行渲染的;数字正射影像图没有进行渲染,然后进行数字正射影像图操作无疑是徒劳的;
所以当我们在created里面做DOM操作的时候,我们必须把DOM操作放到这个里面。$ next tick();
相反mounted,因为mounted被触发时,DOM的挂载和渲染已经完成,所以mounted中DOM操作不会有问题;
因为DOM更新是异步的,就像v-if指令判断添加或者删除DOM元素一样,当我们在方法中给变量赋值的时候,如果不使用这个。$nextTick(),我们大概会得到初始值。如果我们想得到更新的值,我们需要使用这个。$nextTick()方法。
以上是Vue中nextTick的详细内容。更多关于Vue的信息,请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。