位置: IT常识 - 正文

简单易懂 关于nextTick()的理解(关于简单的绘画)

编辑:rootadmin
简单易懂 关于nextTick()的理解 前言

推荐整理分享简单易懂 关于nextTick()的理解(关于简单的绘画),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:关于简单的话,关于简单的故事,关于简单的画画图片,关于简单的故事,关于简单的手抄报图片,关于简单的绘画作品,关于简单的,关于简单的,内容如对您有帮助,希望把文章链接给更多的朋友!

学习Vue的过程中,大家肯定都使用过nextTick(),关于nextTick()的使用时机,大家肯定都知道,那么它的工作原理是怎样的呢,本文就简单说一下它的nextTick()的工作原理。

nextTick的使用时机

首先记住:nextTick所指定的回调会在浏览器更新DOM完毕之后再执行。

举个例子:

在我自己做的一个单页面应用中,我有一个需求,当从后端请求回数据后,马上就对页面进行更新。比如,我要点击操作里的删除操作,前端删除数据后就向后端发请求,后端删除数据后返回数据,如果我们想马上显示到页面上,应该怎么做呢?

可能好多人会像我第一次做那样,比如我这个页面是用 v-for 遍历data这个数据显示出来的,可能好多人就会直接把前端返回的数据直接重新赋值给data。但是这样是绝对不行的!这样只会导致数据其实是变了,但是视图是不会变的,因为vue更新dom是异步的,无法通过同步代码赋值后马上去更新页面。所以即使删除成功了页面也不会显示出来。即使显示删除成功,页面也不会更新。

如何更新

我们的需求是,请求回数据后马上更新页面,首先理解几个点。

1、vue更新Dom是异步更新。简单易懂 关于nextTick()的理解(关于简单的绘画)

如图官网的描述,解释一下这段话,直接看可能有些懵,前两句话,关于同步和异步,以及提到的"事件循环",这就要从JS的运行机制说起,戳我前往。第三句话,“如果同一个 watcher 被多次触发,只会被推入到队列中一次”,这是什么意思呢,也在我的文章中可找到,戳我前往。

2、理解执行时机

读完上面两篇文章,大家应该就知道宏任务和微任务了把,而nextTick内部就是调用宏任务和微任务来完成事件调用的机制,让nextTick里的回调在一个事件循环的最后执行。为什么要在最后呢?在最后即意味着在所有异步任务之后,记得上一点吗,“vue更新Dom是异步更新”,而我们又把nextTick里的回调放在了所有异步任务的最后,这样就解释了最开始那句话,nextTick所指定的回调会在浏览器更新DOM完毕之后再执行。

3、回到例子实现需求

我们想要实现需求,本例我们采用热更新,即只更新局部组件。

我直接把我的子组件全放在router-view里的,通过变化v-if来实现组件更新。

看到这里可能有人会问,这不就是先把v-if设为false,再设置为true来实现吗,要不要nextTick都一样,那么这样想就大错特错了。

还记得刚才说的“如果同一个 watcher 被多次触发,只会被推入到队列中一次”,那篇文章已经解释过了,vue会把所有代码都执行了再去渲染页面,所以我们这两条this.$isRouterAlive = false 和 this.$isRouterAlive = true,相当于只执行了最后一条等于true,false都没执行过,所以相当于还是什么都没做,原始是true,现在还是true。

加了个nextTick就不一样了,这段代码就相当于告诉vue,vue你先帮我执行 this.$isRouterAlive = false,先不要管我nextTick里的东西,你去渲染完了最后再来执行我nextTick里的代码。

这样一说大家是不是就比较明白了,this.$isRouterAlive = true 是在页面渲染过后 再执行的,所以我们肉眼看其实已删除货物,页面马上就更新了,其实其中经过了先把router-view里的子组件取消掉,即v-if = false,然后再让 v-if = true,那么v-if大家都知道就是创建,相当于router-view里的内容被重新创建了,所以此时的数据也是最新的。

本文链接地址:https://www.jiuchutong.com/zhishi/300024.html 转载请保留说明!

上一篇:CSS 实现文字渐变色(css字体设置渐变色)

下一篇:前端面试:浅拷贝和深拷贝的区别?(前端常见面试)

  • 企业推广怎么区分论坛发帖和新闻稿(企业的推广)

    企业推广怎么区分论坛发帖和新闻稿(企业的推广)

  • 菜鸟裹裹能查一年前的快递吗(菜鸟裹裹可以看快递单号吗)

    菜鸟裹裹能查一年前的快递吗(菜鸟裹裹可以看快递单号吗)

  • 淘宝一个差评要多少个好评才能补回(淘宝一个差评要多少个5星好评弥补)

    淘宝一个差评要多少个好评才能补回(淘宝一个差评要多少个5星好评弥补)

  • 抖音怎么直播点赞(抖音怎么直播点歌)

    抖音怎么直播点赞(抖音怎么直播点歌)

  • 苹果x屏幕中间有个黑圈(苹果x中间屏幕失灵怎么维修)

    苹果x屏幕中间有个黑圈(苹果x中间屏幕失灵怎么维修)

  • 淘宝怎么看删除的订单(淘宝怎么看删除的订单记录)

    淘宝怎么看删除的订单(淘宝怎么看删除的订单记录)

  • oppo手机强制关机是按哪几个键(oppo手机强制关机怎么操作)

    oppo手机强制关机是按哪几个键(oppo手机强制关机怎么操作)

  • 华为mate30pro小圆点怎么设置(华为mate30pro小圆圈怎么设置)

    华为mate30pro小圆点怎么设置(华为mate30pro小圆圈怎么设置)

  • miui开发版和稳定版有什么区别(miui开发版和稳定版切换)

    miui开发版和稳定版有什么区别(miui开发版和稳定版切换)

  • 美图手机相机打不开了怎么办(美图手机相机打开闪光灯)

    美图手机相机打不开了怎么办(美图手机相机打开闪光灯)

  • 手机短信验证码怎么在自己的手机上找到(手机短信验证码泄露了会有什么风险)

    手机短信验证码怎么在自己的手机上找到(手机短信验证码泄露了会有什么风险)

  • ipad可以扩大内存吗(ipad内存能扩大吗)

    ipad可以扩大内存吗(ipad内存能扩大吗)

  • 微信语音记录能查出来吗(微信语音记录能保存多久)

    微信语音记录能查出来吗(微信语音记录能保存多久)

  • 群解散和移出群聊区别(群解散和移出群聊区别显示1)

    群解散和移出群聊区别(群解散和移出群聊区别显示1)

  • 小米5支持快充吗(小米支持快充的第三方充电头)

    小米5支持快充吗(小米支持快充的第三方充电头)

  • 抖音live什么意思(抖音livehouse什么意思)

    抖音live什么意思(抖音livehouse什么意思)

  • 快手视频怎么加边框(快手视频怎么加速)

    快手视频怎么加边框(快手视频怎么加速)

  • 手机短信怎么拦截(手机短信怎么拦截106的信息)

    手机短信怎么拦截(手机短信怎么拦截106的信息)

  • 京东好店是什么意思(京东好店是什么意思?)

    京东好店是什么意思(京东好店是什么意思?)

  • 微信小程序实现图片上传(清晰版)(微信小程序实现支付功能)

    微信小程序实现图片上传(清晰版)(微信小程序实现支付功能)

  • 一站式自动化测试工具——AI-TestOps(一站式自动化测试平台如何滑动)

    一站式自动化测试工具——AI-TestOps(一站式自动化测试平台如何滑动)

  • Unity Rain Ai 插件的使用入门(unity loom插件)

    Unity Rain Ai 插件的使用入门(unity loom插件)

  • cdparanoia命令  翻录CD文件(cd oobe是什么命令)

    cdparanoia命令 翻录CD文件(cd oobe是什么命令)

  • js构造函数模式是什么(js构造函数怎么用)

    js构造函数模式是什么(js构造函数怎么用)

  • 土地价值计入房产税文件
  • 消费税的账务处理流程
  • 资产负债表不平衡如何查找
  • 预收款开发票,不确认收入可以吗?
  • 食堂辅助帐怎么记帐
  • 税收国家和地方的比例
  • 库存股增加为什么资产减少
  • 2019一般纳税人新政策
  • 企业所得税申报时间
  • 从国外购进样品要交税吗
  • 企业工资薪酬包括哪些内容
  • 今年补缴去年的税汇算清缴吗
  • 个体户到税务局开专票
  • 公司如何向税务部门举报
  • 材料发票不够怎么办
  • 其他收益是否缴纳个税
  • 预缴税多交了,税务局退吗
  • 申报文化事业建设费
  • 全额抵扣有哪些
  • 腾讯计算机系统扣费15元怎么查
  • 一般纳税人企业所得税计算公式
  • 坏账损失计入什么费用
  • 房地产企业按照功能可分为
  • 体现公司财务状况的报表
  • 下岗职工能享受什么待遇
  • 利润表本月金额怎么算
  • 公司购买模具的会计科目
  • 如何预防计算机病毒的方法
  • 腾讯电脑管家中的软件市场打不开
  • 商誉减值可以避税吗
  • 三大期间费用属于什么类
  • 收到租金税费怎么计算
  • linux测验
  • 已抵扣发票开了红字发票怎么做分录?
  • php模式
  • 计算机网络的基本概念
  • 个体工商户与家庭生活难以划分的费用
  • thinkphp5上传图片
  • 收到外汇货款
  • 公司支付的工伤赔偿金可以税前扣除吗
  • 鬓角头发剃光了多久能长好
  • 应收账款在贷方如何平账
  • 合并抵销
  • 马卡雷纳大教堂
  • php用在哪些方面
  • cssborder虚线边框
  • flexbuffers
  • 企业什么时候才能按工龄退休
  • 银行承兑汇票贴现分录
  • 发票项目要求
  • php网站漏洞
  • python中with语句的用法
  • 销售成本是付现成本吗
  • 资产负债表中所有者权益合计怎么算
  • 四联发票都需要盖章吗
  • 个税汇算清缴时劳务报酬怎么计税
  • 房屋出租收入计入
  • 工程造价不能超出多少预算
  • 股东出资怎么写
  • 企业账务流程
  • 进项税额抵扣时分录
  • 总资产周转率多少算正常
  • 医疗机构药库设置标准
  • 数据库聚簇索引和非聚簇索引
  • mysql5.7免安装版
  • Winxp安装光盘修复
  • xp系统如何设置
  • lua教程书籍
  • window.open打开窗口设置背景色
  • android
  • vue3 todo
  • Android - Designtime Layout Attributes & Tools Attributes
  • python中的is和==的区别
  • 充分发挥党员的先锋模范作用,积极
  • android studio代码写在哪
  • python多线程爬虫代码
  • 探寻Javascript执行效率问题
  • 重庆市委常委是副部级干部吗?
  • 税务评估风险等级是什么
  • 国税新规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设