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

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

  • 华为nova7pro有几个颜色呢(华为Nova7pro有几寸)

    华为nova7pro有几个颜色呢(华为Nova7pro有几寸)

  • 快手打字延迟多少秒(快手打字被限制功能多久能恢复)

    快手打字延迟多少秒(快手打字被限制功能多久能恢复)

  • 怎样恢复微信的聊天记录(怎样恢复微信的语音聊天记录)

    怎样恢复微信的聊天记录(怎样恢复微信的语音聊天记录)

  • 笔记本内存条通用的吗(戴尔笔记本内存条)

    笔记本内存条通用的吗(戴尔笔记本内存条)

  • 接受短信会产生费用么(接受短信会产生流量吗)

    接受短信会产生费用么(接受短信会产生流量吗)

  • qq保存视频失败为什么(qq保存视频失败是怎么回事)

    qq保存视频失败为什么(qq保存视频失败是怎么回事)

  • oppor11splus屏幕多大尺寸(oppor11splus屏幕多少厘米)

    oppor11splus屏幕多大尺寸(oppor11splus屏幕多少厘米)

  • 华为为什么开启了悬浮窗还有没有弹出信息(华为手机设置怎么打不开)

    华为为什么开启了悬浮窗还有没有弹出信息(华为手机设置怎么打不开)

  • 华为mate7可以无线充电吗(华为mate7可以开空调吗)

    华为mate7可以无线充电吗(华为mate7可以开空调吗)

  • 电脑上的ppt打不开怎么回事(电脑上的PPT打不开怎么办)

    电脑上的ppt打不开怎么回事(电脑上的PPT打不开怎么办)

  • qq空间被赞动画怎么关闭(qq空间被赞动画关不掉)

    qq空间被赞动画怎么关闭(qq空间被赞动画关不掉)

  • 国行xs是哪的基带(国行iphonexs是什么基带)

    国行xs是哪的基带(国行iphonexs是什么基带)

  • 华为手表gt2可以接电话吗(华为手表gt2可以下载微信吗)

    华为手表gt2可以接电话吗(华为手表gt2可以下载微信吗)

  • 淘宝消息未读是被屏蔽了吗(淘宝信息未读啥意思)

    淘宝消息未读是被屏蔽了吗(淘宝信息未读啥意思)

  • 华为手环可以连几个手机(华为手环可以连接小米手机吗)

    华为手环可以连几个手机(华为手环可以连接小米手机吗)

  • 家里wifi总提示风险怎么关闭提醒(家里wifi总提示拒绝接入)

    家里wifi总提示风险怎么关闭提醒(家里wifi总提示拒绝接入)

  • 手机怎么禁止进入网站(手机怎么禁止进入某应用)

    手机怎么禁止进入网站(手机怎么禁止进入某应用)

  • word如何添加占位符(word中怎么添加)

    word如何添加占位符(word中怎么添加)

  • 手机怎么拍摄一寸照片(手机怎么拍摄一张好的照片)

    手机怎么拍摄一寸照片(手机怎么拍摄一张好的照片)

  • 小米cc9e如何截屏(小米cc9e如何截长图)

    小米cc9e如何截屏(小米cc9e如何截长图)

  • n4100处理器性能(n4100处理器能玩什么游戏)

    n4100处理器性能(n4100处理器能玩什么游戏)

  • 红米5plus怎样用蓝牙耳机(红米5plusnfc功能在哪里打开)

    红米5plus怎样用蓝牙耳机(红米5plusnfc功能在哪里打开)

  • 为什么wifi有信号却连接不上?(为什么wifi有信号没网络)

    为什么wifi有信号却连接不上?(为什么wifi有信号没网络)

  • 开机要按f1才能进入系统原因(开机要按f1才能启动)

    开机要按f1才能进入系统原因(开机要按f1才能启动)

  • 【vue】vue 在线编辑、实时预览的代码交互组件 vue-code-view(vue+)

    【vue】vue 在线编辑、实时预览的代码交互组件 vue-code-view(vue+)

  • 织梦网站中如何插入百度地图(织梦网站怎么改logo)

    织梦网站中如何插入百度地图(织梦网站怎么改logo)

  • 不能抵扣的增值税进项税额是什么
  • 出口退税账务处理
  • 房屋租赁账务处理程序
  • 其他债权投资是资产还是负债
  • 加油发票样式图
  • 留存收益未分配利润占比
  • 工会经费返还怎么使用
  • 购进财务软件折旧怎么算
  • 外商独资企业在分配利润时是否扣缴个税
  • 代缴税款是什么意思
  • 期间费用如何设置项目核算
  • 贴息是谁支付
  • 营改增是好事还是坏事
  • 房地产开发企业预缴增值税
  • 存货自然灾害损失进项税
  • 固定资产入账价值包括
  • 异地不动产租赁 深圳税务 所得税
  • 如何确定增值税以旧换新方式下销售货物的销售额
  • 向关联企业借款债资比
  • 1697510302
  • linux命令-a
  • linux yum update
  • window10今天更新
  • 怎么关闭windows11自动更新
  • 修改系统散热方案
  • 押金要不回来怎么办
  • php在线阅读器源代码
  • 废品损失是什么类账户
  • php常用设计模式(大总结)
  • 前端gui
  • phpstorm配置php环境 mac os
  • 农产品来料加工设备
  • 公司交纳社会保险多少钱
  • vue获取当前行
  • php类的特性实例是什么
  • 现金日记账的结账方法
  • which 查找文件
  • 哪些税金不需要通过应交税费科目核算
  • 施工营业额是什么意思
  • 织梦如何采集文章
  • 国家税务总局关于营改增后土地增值税
  • 专项应付款如何核算
  • mysql临时表什么时候销毁
  • 技术开发费免税政策
  • 企业购置房产进项税税率
  • 其他债权投资有减值吗
  • 预收账款确认的条件
  • 内部往来借方是债权还是债务
  • 不开票销售收入怎么做账务处理
  • 企业发行债券的优点有哪些
  • 机票会计代理如何做
  • 电商平台怎么结算给商户
  • 销售商品成本核算
  • 公司不开票了也要做账报税吗
  • 应付工资是应付账款吗
  • 往来账怎么记账
  • a公司刚刚执行了一个采购项目
  • 企业可以变更行业吗
  • 工业企业产成品库存同比
  • MySQL中的max()函数使用教程
  • mysql替换命令
  • window系统怎么更新版本
  • freebsd的软件多吗
  • Linux查看文件内容编码
  • win102020h2版本
  • win10系统中断怎么解除
  • win7系统运行红警黑屏有声音
  • js中document.write
  • js 箭头表达式
  • android图形架构
  • Node.js+Express+MySql实现用户登录注册功能
  • nodejss
  • 河南税务机关
  • 自用的房产怎么交房产土地税
  • 三亚 税务
  • 税务局如何查询社保明细
  • 中国地税国税
  • 河北耕地占用税最新规定
  • 该纳税人还未申报,请申报成功后
  • 2020年个税截止时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设