在vue中在父组件中可以操作子组件里的方法

在子组件上绑定 :ref = " 自定义名 "   子组件绑定点击事件 @click=" doclick "

在meyhods 里定义执行函数 doClick(){

this.自定义名.$refs.方法名

得到的就是子组件的dom,在里面就可以找到子组件里的方法

}

但是点击之后你会发现并不生效,此时就需要用到$nextTick

那么$nextTick 是干什么的?

页面的 DOM 还未渲染,这时候也没办法操作 DOM,如果想要操作 DOM,需要使用 nextTick 来解决这个问题

官方对其的定义

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM

我个人理解就是,Vue 在更新 DOM 时是异步执行的。当数据发生变化,Vue将开启一个异步更新队列,视图需要等队列中所有数据变化完成之后,再统一进行更新

Html结构

<div id="app">{{ message }}</div>

构建一个vue实例

const vm = new Vue({el: '#app',data: {message: '原始值',},
})

修改message

this.message = '修改后的值1'
this.message = '修改后的值2'
this.message = '修改后的值3'

这时候想获取页面最新的DOM节点,却发现获取到的是旧值

console.log(vm.$el.textContent) // 原始值

这是因为message数据在发现变化的时候,vue并不会立刻去更新Dom,而是将修改数据的操作放在了一个异步操作队列中

如果我们一直修改相同数据,异步操作队列还会进行去重

等待同一事件循环中的所有数据变化完成之后,会将队列中的事件拿来进行处理,进行DOM的更新

最新文章

  1. 通过Android重审GET和POST请求
  2. Bzoj 3680 吊打xxx【[模拟退火】
  3. 滚动条颜色样式设置 说明
  4. 项目手札2---关于分页显示时地址栏的风格
  5. 明显调用的表达式前的括号必须具有函数类型_Chisel(二) Scala语法 变量与函数...
  6. PHP面向对象处理请求,PHP面向对象之命令模式
  7. c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode...
  8. C++基础::运算符重载
  9. COM中关于使用DLL的一些知识点
  10. mysql 双1设置_2020-10-15:mysql的双1设置是什么?
  11. 【UNIX网络编程】|【07】SCTP协议探究
  12. 简单版数独计算器-升级版
  13. LaTeX报错解决办法:arithmetic: number too big ! Dimension too large.
  14. 免费且好玩的API接口
  15. 23-高级路由:BGP配置(MPLS-解决路由黑洞)
  16. python程序员买西瓜代码_朴素贝叶斯python代码实现(西瓜书)
  17. python爬虫常见报错_Python爬虫常见异常及解决办法
  18. Linux的起源:从一个故事说起
  19. xsstrike安装(仅供参考)
  20. JVM之JVM面试题整理(长期更新)

热门文章

  1. 一个关于xgen开发导入的问题,但其实我觉得更重要的是过程中发生的事情。
  2. 爬虫的基本原理:网络爬虫、爬虫基本流程、解析方式、保存数据
  3. acm刷题一些总结,至每一个努力拼搏的acmer
  4. 利用range表单元素实现调色板
  5. 界面控件DevExpress发布v18.2.7,新版全新出发|附下载
  6. Linux curses库使用
  7. 《Redis系列第三篇、incr与decr使用|CSDN创作打卡》
  8. Java多态的应用练习题
  9. python前端——HTML超文本标记语言、CSS层叠样式表
  10. 各种图像处理库中imread函数的区别