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

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

  • iwatch密码忘了怎么办(iwatch密码忘了怎么办怎么解锁)

    iwatch密码忘了怎么办(iwatch密码忘了怎么办怎么解锁)

  • 苹果13主副卡怎么设置(苹果13主副卡怎么切换打电话)

    苹果13主副卡怎么设置(苹果13主副卡怎么切换打电话)

  • 手机日历不显示节假日怎么办(手机日历不显示了怎么恢复)

    手机日历不显示节假日怎么办(手机日历不显示了怎么恢复)

  • 埋堆堆会员怎么取消自动续费(埋堆堆会员怎么共享)

    埋堆堆会员怎么取消自动续费(埋堆堆会员怎么共享)

  • iphone共享相册占内存吗(iphone共享相册占空间吗)

    iphone共享相册占内存吗(iphone共享相册占空间吗)

  • 小米10有呼吸灯吗(小米10呼吸灯怎么设置)

    小米10有呼吸灯吗(小米10呼吸灯怎么设置)

  • tl-wdr7300是百兆还是千兆

    tl-wdr7300是百兆还是千兆

  • 用户最大并发数已满(用户最大并发数和带宽有关吗)

    用户最大并发数已满(用户最大并发数和带宽有关吗)

  • 5g技术的特点是什么(5g技术是什么)

    5g技术的特点是什么(5g技术是什么)

  • 华为相册拼图在哪(华为相册拼图怎么拼图)

    华为相册拼图在哪(华为相册拼图怎么拼图)

  • 来自朋友验证是通过什么加的(来自朋友验证消息是啥意思)

    来自朋友验证是通过什么加的(来自朋友验证消息是啥意思)

  • 为什么有的qq没有匹配聊天(为什么有的QQ没有随心贴)

    为什么有的qq没有匹配聊天(为什么有的QQ没有随心贴)

  • 美团众包注册不符合规定什么意思(美团众包注册不了怎么回事身份不合要求)

    美团众包注册不符合规定什么意思(美团众包注册不了怎么回事身份不合要求)

  • 电脑高清线连接显示器不显示(电脑高清线连接电视没声音)

    电脑高清线连接显示器不显示(电脑高清线连接电视没声音)

  • 极速验号对买家安全吗(极速验号是什么)

    极速验号对买家安全吗(极速验号是什么)

  • ipad开机充不进去电(ipad开机充不进电)

    ipad开机充不进去电(ipad开机充不进电)

  • 小米无线鼠标怎么换电池(小米无线鼠标怎么充电)

    小米无线鼠标怎么换电池(小米无线鼠标怎么充电)

  • oppor7007是什么型号(oppor7007是什么版本)

    oppor7007是什么型号(oppor7007是什么版本)

  • 如何固定单元格不动(下拉时如何固定单元格)

    如何固定单元格不动(下拉时如何固定单元格)

  • 原装数据线突然不支持(原装数据线突然不支持此配件)

    原装数据线突然不支持(原装数据线突然不支持此配件)

  • mate20pro有耳机孔吗(mate20pro自带耳机)

    mate20pro有耳机孔吗(mate20pro自带耳机)

  • 大陆国行什么意思(大陆国行和国行有什么区别)

    大陆国行什么意思(大陆国行和国行有什么区别)

  • 安了宽带就有wifi吗(是不是装了宽带就会有无限)

    安了宽带就有wifi吗(是不是装了宽带就会有无限)

  • 微信怎么设置密码锁屏(微信怎么设置密码锁不让别人打开)

    微信怎么设置密码锁屏(微信怎么设置密码锁不让别人打开)

  • ipad发票丢了能保修吗(ipad发票丢失)

    ipad发票丢了能保修吗(ipad发票丢失)

  • wps格式怎么调整(wps格式怎么调整宽一点)

    wps格式怎么调整(wps格式怎么调整宽一点)

  • 京东会员怎么注册(京东会员怎么注销)

    京东会员怎么注册(京东会员怎么注销)

  • tauri+vite+vue3开发环境下创建、启动运行和打包发布(taro-ui-vue3)

    tauri+vite+vue3开发环境下创建、启动运行和打包发布(taro-ui-vue3)

  • Echarts直角坐标系x轴y轴属性设置大全(echart横坐标)

    Echarts直角坐标系x轴y轴属性设置大全(echart横坐标)

  • 增值税普通发票怎么开
  • 城市基础设施配套费减免
  • 预算收入包括增值税吗
  • 社保公积金计提是本月计提下月
  • 销售20万需要多少进项
  • 车船税是费用吗
  • 工程造价咨询服务流程
  • 跨年度的银行未入账如何处理
  • 固定资产清理不能有余额
  • 别人给的发票一直不开
  • 增值税发票清单怎么导出
  • 交股权印花税需要什么材料
  • 房地产企业转让股权缴纳土地增值税
  • 企业所得税补充申报怎么报
  • 补助及救济费用
  • 总资产周转率ttm
  • 固定资产2020
  • 企业的其他业务收入有
  • 母公司资产转移到子公司
  • 调减管理费用如何调整本年利润
  • 企业营业利润为负的原因有哪些
  • 研发支出的二级科目是什么
  • 资源税改革最新政策
  • 公司税务风险怎么解决
  • 微软系统管理员账号
  • 如何冲回以前年度账户
  • 商场外面的广告牌叫什么
  • 工会会员会费缴费证明怎么开
  • 酒店需要的原材料和包装费有哪些
  • 税收包含哪些税种
  • adguard安全
  • ospf区域间路由和区域内路由
  • kkfileview启动组件失败
  • 微信小程序四人游戏
  • 出口退税是怎么个流程
  • 拱门国家公园景点
  • uniapp传值
  • 安博塞利国家公园简介
  • 结转损益类收入科目的余额会计分录
  • 其他收益属于利润表吗
  • php自动提交表单
  • web主要的请求方式有几种
  • php环境怎么搭
  • website
  • 金融机构贷款准备金
  • 织梦怎么导入数据库
  • 长期股权投资印花税计入什么科目
  • 零售企业商品盘点发生溢余后,在查明原因前,应按
  • 小规模纳税人季度不超30万怎么做账
  • 所得税预缴申报表
  • 认缴制注册资金不交可以吗
  • 建安类企业包括哪些公司
  • 个体工商户未年报 经营异常罚款
  • 公司裁员怎么补偿
  • mysql如何分类
  • 管理费用包含研发费用需要减吗?
  • 收回应收账款赊账怎么算
  • 销售货物时发票多开了金额如何处理?
  • 增值税进项税额属于什么科目
  • 企业购买银行理财产品的会计处理
  • 制造费用是借还是贷
  • 小规模现金流量表年报不填可以吗
  • 免抵退税中免抵税额怎么算
  • 应付账款怎么记账
  • linux file-nr
  • win8 开始
  • xp系统如何找到bitlocker
  • msworks.exe - msworks是什么进程 有什么用
  • 强缓存标志
  • win8.1卸载软件在哪里
  • win10mobile更新出错
  • html+css代码
  • python怎么写爬虫
  • python生成docx
  • javascript tr
  • javascript获取浏览器代理设置
  • 领导班子和领导干部的区别
  • 上海个人所得税税率表2023
  • 国家税务总局南京市秦淮区税务局纳税服务中心
  • 财务公司怎么做
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设