位置: 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字体设置渐变色)

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

  • vivox70pro+怎么设置手势导航(vivox70pro怎么设置双击亮屏)

    vivox70pro+怎么设置手势导航(vivox70pro怎么设置双击亮屏)

  • 华为鼠标怎么连接电脑(华为鼠标怎么连蓝牙)

    华为鼠标怎么连接电脑(华为鼠标怎么连蓝牙)

  • 华为mate30如何插卡(华为mate30如何插u盘)

    华为mate30如何插卡(华为mate30如何插u盘)

  • 华为手机怎么微信分身(华为手机怎么微信视频美颜)

    华为手机怎么微信分身(华为手机怎么微信视频美颜)

  • 华为nova7耳机孔在哪(华为nova10怎么没有耳机孔)

    华为nova7耳机孔在哪(华为nova10怎么没有耳机孔)

  • 4g+hd是什么(4ghd是什么意思收费吗)

    4g+hd是什么(4ghd是什么意思收费吗)

  • 苹果11可以用快充会有影响吗?(苹果11可以用快充吗)

    苹果11可以用快充会有影响吗?(苹果11可以用快充吗)

  • 多媒体与传统媒体的区别(多媒体与传统媒体的异同之处)

    多媒体与传统媒体的区别(多媒体与传统媒体的异同之处)

  • 软件开发过程包括哪些阶段(软件开发过程包括哪些阶段?)

    软件开发过程包括哪些阶段(软件开发过程包括哪些阶段?)

  • internet通信协议是什么(internet通信协议统称)

    internet通信协议是什么(internet通信协议统称)

  • 手机外屏坏了什么现象(手机外屏坏了会导致手机什么情况?)

    手机外屏坏了什么现象(手机外屏坏了会导致手机什么情况?)

  • 怎么把airpods从壳里拿出来(怎么把airpods添加到我的icloud)

    怎么把airpods从壳里拿出来(怎么把airpods添加到我的icloud)

  • ipad如何注册微信号(ipad怎么注册微信帐号)

    ipad如何注册微信号(ipad怎么注册微信帐号)

  • word文档恢复历史记录(word文档恢复历史版本)

    word文档恢复历史记录(word文档恢复历史版本)

  • 通常所说的cache是指(通常所说的I/O设备指什么)

    通常所说的cache是指(通常所说的I/O设备指什么)

  • iphone怎么加密照片(如何加密iphone照片)

    iphone怎么加密照片(如何加密iphone照片)

  • vivo手机能不能开空调(vivo手机能不能定位)

    vivo手机能不能开空调(vivo手机能不能定位)

  • p0650故障码如何修理(p0655故障码)

    p0650故障码如何修理(p0655故障码)

  • 怎样关闭远程管理(怎么关闭远程权限)

    怎样关闭远程管理(怎么关闭远程权限)

  • 怎么录火山小视频60秒(火山小视频怎样录一分钟视频)

    怎么录火山小视频60秒(火山小视频怎样录一分钟视频)

  • 喝咖啡的好处和坏处(喝咖啡的好处和坏处 女性)

    喝咖啡的好处和坏处(喝咖啡的好处和坏处 女性)

  • Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组(fastjson 解析)

    Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组(fastjson 解析)

  • anaconda完全卸载方法(anaconda卸载干净)

    anaconda完全卸载方法(anaconda卸载干净)

  • vgremove命令  删除VG卷组设备(删除命令rm rf)

    vgremove命令 删除VG卷组设备(删除命令rm rf)

  • 个税返还手续费增值税申报填在哪里
  • 增值税怎么记
  • 酒店开办费
  • 买金税盘怎么做账
  • 企业残保金申报流程
  • 未开具发票负数的原因
  • 计提和缴纳企业所得税分录
  • 房地产企业开发成本科目明细
  • 印花税算错了可以补交吗
  • 企业销售产品的成本是指已销产品的
  • 买入返售金融资产什么意思
  • 电子钥匙续费能退款吗
  • 记账凭证应交税费应交增值税怎么写
  • 跨年度错账更正方法
  • 普通发票要写增值税吗
  • 企业成本费用包括哪些
  • 客户分批付款怎么说
  • 商贸公司进项税额大
  • win10家庭最新版
  • 公司一般账户不用了会怎么样
  • 接入设备检测
  • 富士通FUJITSU笔记本电脑开机进入BIOS的方法(F2)
  • 蝾螈白话怎么读
  • 公益性捐赠增值税税率
  • 巴黎先贤祠的名言
  • p指针后移的语句
  • 本地运行库是什么
  • 机器设备拆除增值税税率
  • 企业改制土地增值税政策
  • 固定资产清理的累计折旧怎么算
  • 坏账损失的会计分录
  • vue中的use
  • 山东省项目
  • echarts中的legend能被监听吗
  • 没有发票的支出可以扣除企业所得税么
  • 扣发工资是发还是不发
  • 经费支出的定义
  • 扶贫资金入股问题
  • 现代服务增值税纳税义务发生时间
  • 研发费用属于什么会计科目
  • 农产品购进时的会计分录
  • 所得税汇算清缴账务处理
  • 现金流量表财务报表
  • 个税出现负数是什么意思
  • 小规模企业购入原材料会计分录
  • 企业所得税表利润总额是净利润吗
  • 固定资产一次性扣除政策
  • 什么是异地企业
  • 房产税应纳税额计算例题
  • 用留存收益筹资为什么没有占用费
  • 房地产企业的业务范围
  • 日后调整事项的记账凭证怎样装订
  • 固定资产没有发票
  • 公司办理宽带套餐合法吗
  • 企业支付宝收款码是进公账吗
  • 费用化资本化对税收的影响
  • 公司与公司之间的函怎么写
  • 购入自用的机器怎么入账
  • 旅游服务会议费发票
  • 2021会计实操视频
  • mysql字符串类型有哪些
  • 用心一也的一是什么词类活用
  • mac系统命名规律
  • freebsd忘记root密码
  • windows8.1使用教程
  • 电脑硬件用途
  • 双系统电脑怎么装系统
  • windows8使用技巧
  • win10在哪里更改软件大小
  • nodejs常用api
  • node.js动态网页
  • 11月编程语言排行榜出炉
  • unity mobile3d
  • js message事件
  • 如何用jquery
  • 模板创造
  • 深入理解javascript
  • javascript的dom操作
  • 税控盘状态
  • 国家医保平台查不到住院记录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设