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

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

  • 三星watch4国行价格(三星watch4定价)

    三星watch4国行价格(三星watch4定价)

  • 小米10支持用人脸解锁吗(小米10支持人脸识别吗)

    小米10支持用人脸解锁吗(小米10支持人脸识别吗)

  • 华为手机关闭屏保图片自动下载怎么办(华为手机关闭屏幕显示时间怎么设置)

    华为手机关闭屏保图片自动下载怎么办(华为手机关闭屏幕显示时间怎么设置)

  • 为什么qq不能上传照片到精选照片(为什么qq不能上高速)

    为什么qq不能上传照片到精选照片(为什么qq不能上高速)

  • 小米手机找不到相册图标(小米手机找不到应用商店)

    小米手机找不到相册图标(小米手机找不到应用商店)

  • 为什么筛选显示不出来(为什么筛选显示空白)

    为什么筛选显示不出来(为什么筛选显示空白)

  • i7和i9处理器的区别有多大(i7和i9处理器的价格区别有多大)

    i7和i9处理器的区别有多大(i7和i9处理器的价格区别有多大)

  • xr卡屏死机怎么回事(xr卡死了咋办)

    xr卡屏死机怎么回事(xr卡死了咋办)

  • 无线显示已停用什么意思(无线显示已停用,但其他设备能用)

    无线显示已停用什么意思(无线显示已停用,但其他设备能用)

  • matebook14什么时候上市

    matebook14什么时候上市

  • 实名认证的手机卡不注销会怎样(实名认证的手机卡丢了有风险吗)

    实名认证的手机卡不注销会怎样(实名认证的手机卡丢了有风险吗)

  • 手机涂鸦功能在哪里(手机涂鸦是什么意思)

    手机涂鸦功能在哪里(手机涂鸦是什么意思)

  • 手机屏黑屏怎么回事(手机屏黑屏怎么连接电脑)

    手机屏黑屏怎么回事(手机屏黑屏怎么连接电脑)

  • ios13.1自动调节亮度(ios13.6.1自动调节亮度)

    ios13.1自动调节亮度(ios13.6.1自动调节亮度)

  • 手机版wide怎么去水印(怎么使用手机wrod)

    手机版wide怎么去水印(怎么使用手机wrod)

  • win10添加美式键盘(win10添加美式键盘到中文输入法)

    win10添加美式键盘(win10添加美式键盘到中文输入法)

  • x5.tbs.orp是什么

    x5.tbs.orp是什么

  • 12123支付平台响应为空(12123支付平台响应异常)

    12123支付平台响应为空(12123支付平台响应异常)

  • 苹果手机自动续费的要在哪里关闭(苹果手机自动续费怎么申请退款)

    苹果手机自动续费的要在哪里关闭(苹果手机自动续费怎么申请退款)

  • oppo手机分辨率在哪里设置方法(oppo手机分辨率最好的是哪一款)

    oppo手机分辨率在哪里设置方法(oppo手机分辨率最好的是哪一款)

  • 红米note7pro防水如何(redmi红米note7pro防水等级)

    红米note7pro防水如何(redmi红米note7pro防水等级)

  • word字体居中怎么设置(word字体居中怎么调整)

    word字体居中怎么设置(word字体居中怎么调整)

  • 苹果x后摄像头有个小孔(苹果x后摄像头怎么拆)

    苹果x后摄像头有个小孔(苹果x后摄像头怎么拆)

  • 微信零钱密码怎么找回(微信零钱密码怎么换)

    微信零钱密码怎么找回(微信零钱密码怎么换)

  • 在WIN7中,为什么

    在WIN7中,为什么"网络连接"图标消失?(win7为什么还有人用)

  • 纳税等级怎么从M变成B需要什么条件
  • 房地产业预售房的预收款退回的涉税处理?
  • 农产品进项税额转出怎么算
  • 新公司如何申报城市建设税
  • 工会建账选择哪个科目好
  • 咨询费计入什么明细科目
  • 小规模公司缴税以后公转私
  • 工会签约有什么好处
  • 退休工资怎样扣社保
  • 油费补贴是否计入个税
  • 免税货物开成含税率的怎么报税?
  • 不收汇样品的会计分录
  • 企业亏损情况下股东借款怎么办
  • 为什么有些单位一直在招聘
  • 外籍个税起征点
  • 开票多一分钱怎么办
  • 土地租赁期间政府征收
  • 金税三期啥意思
  • 财务中暂估入账会计分录
  • 在Win10系统中卸载最近更新的补丁并重启电脑
  • 应收账款余额包括预收账款
  • 什么是租赁公司的主营业务
  • 企业合并的增值税处理
  • 长期待摊费用摊销会计分录
  • 做汽车配件销售怎么找客户
  • typecho插件开发教程
  • 栀子花的养殖方法和注意事项茉莉花
  • 公司已开票给客户,但客户未打款怎么办?
  • 交所得税的会计科目
  • php strrchr
  • 企业股权投资收益缴纳什么税
  • 净资产现金回收率说明什么
  • php socket 非阻塞
  • Yii2 队列 shmilyzxt/yii2-queue 简单概述
  • 物业公司管理制度及工作要求
  • 库存现金盘亏处理流程
  • 同城票据清算和清算资金往来的区别
  • python怎么安装lxml库
  • 比肩美国
  • rc远程桌面
  • 用简易计税办法开发票
  • 财务人员工资构成
  • php 上传
  • 金融债券利息收入免企业所得税吗
  • 小规模纳税人减按1%政策
  • 土地使用权被政府收回没有注销怎么样缴土地使用税
  • 当月开的票必须开发票吗
  • 小企业会计准则调整以前年度费用分录
  • 公司向法人借款协议
  • 预收款开发票,不确认收入可以吗?
  • 有限责任公司减资的条件
  • 用银行承兑汇票购买原材料会计分录
  • 销售货物并提供安装服务是混合销售吗
  • 车船税没有发票可以入账吗
  • 银行存款支付比例规定
  • 保险费的增值税属于什么税
  • 个人购买股权和公司购买股权比较
  • 固定资产处置如何申报企业所得税
  • 其他非流动资产是金融资产吗
  • 社保可以不计提账务处理
  • 12月费用1月报销的账务处理
  • 财务会计与管理会计的区别与联系?谁更棒?
  • 企业所有者权益是指什么
  • sqlsever修改数据
  • XP系统安装不了QQ
  • ksysslim.exe
  • javaw.exe是什么进程
  • mac局域网控制windows
  • win7免费win10
  • win8怎么查看ip地址
  • win10周年版
  • cocos creator js ts
  • linux c程序开发
  • percona mongodb
  • linux的gunzip命令
  • shell脚本sudo免输密码
  • javascript构成
  • 别人给公司开的普票,怎么查询
  • 公益性公墓免交税吗
  • 用实际行动践行中国税务精神
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设