nextTick的使用

为了数据变化之后等待vue完成更新DOM,可以在数据变化之后立即使用Vue.nextTick()在当前的回调函数中能获取最新的DOM

<div id="app">
<h3>{{msg}}</h3>
</div> <script>
let app = new Vue({
el:'#app',
data:{
msg:'晓强'
},
})
app.msg = '新的数据-晓强'
// console.log(app.$el.textContent)
// 为了数据变化之后等待vue完成更新DOM,可以在数据变化之后立即使用Vue.nextTick()
// 在当前的回调函数中能获取最新的DOM
Vue.nextTick(()=>{
console.log(app.$el.textContent)
})
</script>

nextTick的应用

看下面的代码

<div id="app">
<App></App>
</div>
<script>
/*
* 需求:
* 在页面拉取一个接口,这个接口返回一些数据,这些数据是这个页面的一个浮层组件要依赖的,
* 然后我在接口,一返回数据就展示了这个浮层组件,
* 展示的同时上报一些数据给后台(这些数据是父组件从接口拿的)
* 这个时候,神奇的事件发生了,虽然我拿到了数据了,但是浮层展现的时候,
* 这些数据还未更新到组件上去,上报失败
* */
const Pop = {
data() {
return {
isShow: false
}
},
props:{
name:{
type: String,
default:''
}
},
template: `
<div v-if="isShow">
{{name}}
</div>
`,
methods: {
show() {
this.isShow=true;
console.log(this.name)
}
}, };
const App = {
data() {
return {
name: ''
}
},
created() {
// 模拟异步请求
setTimeout(()=>{
this.name='晓强';
this.$refs.pop.show(); },1000)
},
components: {
Pop
},
template: `<pop ref='pop' :name="name"></pop>` }; let app = new Vue({
el: '#app',
components: {
App
}, })
</script> 看下图一秒钟之后 页面显示 但是console.log没有内容

修改如下:

this.$nextTick(()=>{
this.$refs.pop.show();
})

vue学习(八)nextTick[异步更新队列]的使用和应用的更多相关文章

  1. vue 学习八 自定义指令

    vue指令注册有两种方式 1 全局注册 在main.js中 使用vue.directive Vue.directive('alert_w', { inserted(el,bin,vn) { conso ...

  2. vue学习(八) vue中样式 class 定义引用

    //style<style> .red{ color:red; } .thin{//字体粗细 font-weight:200 } .italic{//字体倾斜 font-style:ita ...

  3. Vue 父组件ajax异步更新数据,子组件props获取不到

    转载 https://blog.csdn.net/d295968572/article/details/80810349 当父组件 axjos 获取数据,子组件使用 props 接收数据时,执行 mo ...

  4. Vue你不得不知道的异步更新机制和nextTick原理

    前言 异步更新是 Vue 核心实现之一,在整体流程中充当着 watcher 更新的调度者这一角色.大部分 watcher 更新都会经过它的处理,在适当时机让更新有序的执行.而 nextTick 作为异 ...

  5. Vue异步更新机制以及$nextTick原理

    相信很多人会好奇Vue内部的更新机制,或者平时工作中遇到的一些奇怪的问题需要使用$nextTick来解决,今天我们就来聊一聊Vue中的异步更新机制以及$nextTick原理 Vue的异步更新 可能你还 ...

  6. Vue 源码解读(4)—— 异步更新

    前言 上一篇的 Vue 源码解读(3)-- 响应式原理 说到通过 Object.defineProperty 为对象的每个 key 设置 getter.setter,从而拦截对数据的访问和设置. 当对 ...

  7. VUE温习:nextTick、$refs、嵌套路由、keep-alive缓存、is特性、路由属性用法、路由钩子函数

    一.$nextTick 1.vue的dom执行异步更新,只要观察到数据变化,vue将开启一个队列,并缓冲在同一事件循环中发生的所有数据改变. 2.vue.$nextTick(cb),数据发生变化,更新 ...

  8. 【转】简单理解Vue中的nextTick

    前言: Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下.其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick ...

  9. 简单理解Vue中的nextTick

    Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下.其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick. 一. ...

随机推荐

  1. Mybatis框架模糊查询

    一.ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> get ...

  2. C++ 定位错误行

    ] = {}; SYSTEMTIME st; GetLocalTime(&st); sprintf_s(buf, , "%02d-%02d-%02d %02d:%02d:%02d | ...

  3. 微信二次分享的JSSDK的调用

    网页端微信的二次分享如果不调用分享的SDK,分享之后就不会带有标题.描述 .缩略图 微信分享SDK调用 引入 <script src="//res.wx.qq.com/open/js/ ...

  4. redis有序集合-zset

    概念:它是在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动按新的值调整顺序.可以理解为有两列的mysql表,一列存储value,一列存储顺序,操作中 ...

  5. JavaScript之bind方法实现代码分析

    我们来分析一下bind方法的实现代码,下图的bind方法的实现为MDN(开发者社区)中的代码. 由上图可得:bind方法实现了两个功能:绑定this和科里化.

  6. 使用Spring Cloud Gateway保护反应式微服务(二)

    抽丝剥茧,细说架构那些事——[优锐课] 接着上篇文章:使用Spring Cloud Gateway保护反应式微服务(一) 我们继续~ 将Spring Cloud Gateway与反应式微服务一起使用 ...

  7. 091、Java中String类之使用“==”比较

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  8. freemarker技术入门例子(结合struts2)

    由于最近项目里面要求要使用freemarker技术来做展现层,所以在网上搜索了好多资料,基础知识是看了李刚原来写的那本<struts2权威指南>.一直想在网上找一个很基础的例子来入门,但是 ...

  9. Day3:关于地形生成

    ---恢复内容开始--- 今天桃子好像还是没什么动静,不过媳妇倒是有一点见红~ 希望这是马上要出来的前兆了~ 桃子都已经晃点我俩好多回了~ 已经都快习惯来她这个狼来了的征兆了~ ----------- ...

  10. python内置函数三

    ord()  函数 和 chr()  相反   chr() 是将数字转换成assci码     ord() 是将字符串转换成assci码 显示 pow() 函数  pow(x,y,z)  表示x**y ...