nextTick的使用

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

  1. <div id="app">
  2. <h3>{{msg}}</h3>
  3. </div>
  4.  
  5. <script>
  6. let app = new Vue({
  7. el:'#app',
  8. data:{
  9. msg:'晓强'
  10. },
  11. })
  12. app.msg = '新的数据-晓强'
  13. // console.log(app.$el.textContent)
  14. // 为了数据变化之后等待vue完成更新DOM,可以在数据变化之后立即使用Vue.nextTick()
  15. // 在当前的回调函数中能获取最新的DOM
  16. Vue.nextTick(()=>{
  17. console.log(app.$el.textContent)
  18. })
  19. </script>

nextTick的应用

看下面的代码

  1. <div id="app">
  2. <App></App>
  3. </div>
  4. <script>
  5. /*
  6. * 需求:
  7. * 在页面拉取一个接口,这个接口返回一些数据,这些数据是这个页面的一个浮层组件要依赖的,
  8. * 然后我在接口,一返回数据就展示了这个浮层组件,
  9. * 展示的同时上报一些数据给后台(这些数据是父组件从接口拿的)
  10. * 这个时候,神奇的事件发生了,虽然我拿到了数据了,但是浮层展现的时候,
  11. * 这些数据还未更新到组件上去,上报失败
  12. * */
  13. const Pop = {
  14. data() {
  15. return {
  16. isShow: false
  17. }
  18. },
  19. props:{
  20. name:{
  21. type: String,
  22. default:''
  23. }
  24. },
  25. template: `
  26. <div v-if="isShow">
  27. {{name}}
  28. </div>
  29. `,
  30. methods: {
  31. show() {
  32. this.isShow=true;
  33. console.log(this.name)
  34. }
  35. },
  36.  
  37. };
  38. const App = {
  39. data() {
  40. return {
  41. name: ''
  42. }
  43. },
  44. created() {
  45. // 模拟异步请求
  46. setTimeout(()=>{
  47. this.name='晓强';
  48. this.$refs.pop.show();
  49.  
  50. },1000)
  51. },
  52. components: {
  53. Pop
  54. },
  55. template: `<pop ref='pop' :name="name"></pop>`
  56.  
  57. };
  58.  
  59. let app = new Vue({
  60. el: '#app',
  61. components: {
  62. App
  63. },
  64.  
  65. })
  66. </script>
  67.  
  68. 看下图一秒钟之后 页面显示 但是console.log没有内容

修改如下:

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

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. kibana 删除document或者type

    // 删除某个document DELETE /索引名称/type名称/document编号(id) // 删除整个type PUT 索引名称/type名称/_delete_by_query?conf ...

  2. myBatis 操作 mysql时,使用 like 关键进行模糊查询的方法

    参考:https://blog.csdn.net/rainbow702/article/details/50519424 like CONCAT('%', #{mkName}, '%')

  3. Hadoop操作经验

    系统日志文件写入到MySQL中,NoSQL中一般存储独立的关联性不大的非业务数据. 单个NameNode也可以恢复,从SecondaryNameNode恢复:两个NameNode是可以做负载均衡:更高 ...

  4. Python 2 与 3 共存了 11 年,新年就要和它道别

    在 Python 3.9 都已经进入 dev 版本的 2020 年,Python 2 终于要和我们告别了. 2 and 3 Python 2 第一个版本发布于 2000 年 10 月 16 日,到今年 ...

  5. Python基础_ONLINE习题集_03 数据类型

    3.1 将元组(1,2,3) 和集合{"four",5,6}合成一个列表 tuple,set,list = (1,2,3),{"four",5,6},[] fo ...

  6. 使用Hibernate+MySql+native SQL的BUG,以及解决办法

      本来是mssql+hibernate+native SQL 应用的很和谐 但是到了把mssql换成mysql,就出了错(同样的数据结构和数据). 查询方法是: String sql = " ...

  7. centos 虚拟机安装调试

    service network restart reboot yum update -y cd /etccd sysconfigcd network-scripts[root@u0mo5 networ ...

  8. JAVA实现单例模式的四种方法和一些特点

    JAVA实现单例模式的四种方法和一些特点,需要的朋友可以参考一下     一.饿汉式单例类 复制代码 代码如下: public class Singleton  {      private Sing ...

  9. 算法:辗转相除法求最大公约数(C语言实现)

    辗转相除法,一种求最大公约数的算法 已知:A / B = C ······ R  (A.B.C.R皆是整数) 假设:D是A的余数,D也是B的余数,那么D就是A和B的公约数 D是A和B的约数,则A和B是 ...

  10. KAZE特征和各向异性扩散滤波

    kaze feature: http://www.doc88.com/p-6911376909693.html 各向异性扩散滤波  Scale-space and edge detection usi ...