位置: IT常识 - 正文

vue组件强制刷新的方案(vue3刷新组件)

编辑:rootadmin
vue组件强制刷新的方案

推荐整理分享vue组件强制刷新的方案(vue3刷新组件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 强制刷新dom,vue如何强制刷新某个组件,vue 强制刷新dom,vue 强制刷新dom,vue强制刷新数组,vue强制刷新数组,vue强制刷新当前组件,vue强制刷新页面,内容如对您有帮助,希望把文章链接给更多的朋友!

前言: Vue的双向绑定属于自动档;在特定的情况下,需要手动触发“刷新”操作,目前有四种方案可以选择:

刷新整个页面(最low的,可以借助route机制)使用v-if标记(比较low的)使用内置的forceUpdate方法(较好的)使用key-changing优化组件(最好的)刷新整个页面this.$router.go(0);window.location.reload();使用v-if标记

如果是刷新某个子组件,则可以通过v-if指令实现。我们知道,当v-if的值发生变化时,组件都会被重新渲染一遍。因此,利用v-if指令的特性,可以达到强制刷新组件的目的。

<template> <comp v-if="refresh"></comp> <button @click="refreshComp()">刷新comp组件</button></template><script>import comp from '@/views/comp.vue'export default { name: 'parentComp', data() { return { refresh: true } }, methods: { refreshComp() { // 移除组件 this.refresh = false // 在组件移除后,重新渲染组件 // this.$nextTick可实现在DOM 状态更新后,执行传入的方法。 this.$nextTick(() => { this.refresh = true }) } }}</script>vue组件强制刷新的方案(vue3刷新组件)

流程分析: 1、初始化的时候refresh值为 true,组件渲染; 2、当我们调用refreshComp时,refreshComp会立刻变为false; 3、这个时候因为值为false组件就会停止渲染; 4、然后在nextTick中将refresh的值重新设置回去,组件重新渲染。

上面的流程主要有两个重要的点需要理解: 1、必须要在nextTick以后才能更改,否则会看不到效果 在Vue中,DOM的更新周期即为一个tick,在同一个tick内Vue会搜集变化,然后在tick的最后会根据变化的值去更新节点,如果我们不等到next tick,直接更新变量的值,不会触发节点的更新。 2、当我们重新渲染的时候,Vue将会创建一个新的组件。Vue销毁之前的重新创建新的意味着新的组件会重新走一遍生命周期。

forceUpdate

组件内置$forceUpdate方法,使用前需要在配置中启用。

import Vue from 'vue'Vue.forceUpdate()<template> <div> <button @click="handleUpdateClick()">Refresh当前组件</button> </div></template>export default { methods: { handleUpdateClick() { // built-in this.$forceUpdate() } }}

forceUpdate只会强制更新页面,不会更新现有的计算属性。

key-changing

原理很简单,vue使用key标记组件身份,当key改变时就是释放原始组件,重新加载新的组件。

<template> <div> <span :key="componentKey"></span> </div></template><script> export default { data() { return { componentKey: 0 } }, methods: { forceRerender() { this.componentKey += 1 // 或者 this.componentKey = new Date(); } } }</script>

进入页面输入框自动聚焦 一般情况下,加上以下代码就可以聚焦

<template> <div> <inputplaceholder="大家都在搜" type="text" maxlength="500" v-model="inputInfo.msg" @blur="resizeView" v-focus > </div></template><script> export default { data() { return { inputInfo: { // 输入框对象 num: 0, // 字数 msg: '' // 内容 }, } }, watch: { [`options.msg`] () { let length = utils.fancyCount2(this.inputInfo.msg); this.$set(this.inputInfo, 'num', length); } }, directives: { focus: { // 指令的定义 inserted: function(el) { el.focus(); } } }, methods: { /** * input元素失去焦点时触发 */ resizeView () { document.body.scrollIntoView(true); }, } }</script>

但是在有缓存的页面,一般就只有第一次会聚焦,后面进入都不会聚焦,办法就是用第四种强制刷新输入框来聚焦

<template> <div> <inputplaceholder="大家都在搜" type="text" maxlength="500" v-model="inputInfo.msg" @blur="resizeView" v-focus :key="inputInfo.focus" > <button @click="handleUpdateClick()">Refresh当前组件</button> </div></template><script> export default { data() { return { inputInfo: { // 输入框对象 num: 0, // 字数 msg: '', // 内容 focus: '', }, } }, activated () { this.inputInfo.focus = new Date().getTime(); }, methods: { handleUpdateClick() { // built-in this.inputInfo.focus = new Date().getTime(); } }</script>
本文链接地址:https://www.jiuchutong.com/zhishi/292986.html 转载请保留说明!

上一篇:【深度学习】目标检测的性能评价指标,mAP_0.5,mAP_0.5,0.95,0.05

下一篇:要点初见:Stable Diffusion NovelAI模型优质文字Tag汇总与实践【魔咒汇总】

  • 未来广告营销的三大关键(未来广告的发展方向)

    未来广告营销的三大关键(未来广告的发展方向)

  • 电脑黑屏怎么回事(电脑黑屏开不了机怎么办)

    电脑黑屏怎么回事(电脑黑屏开不了机怎么办)

  • 描述文件空白无法安装软件(有描述文件选项却空白)

    描述文件空白无法安装软件(有描述文件选项却空白)

  • 投屏搜不到电视设备(投屏搜不到电视机怎么办)

    投屏搜不到电视设备(投屏搜不到电视机怎么办)

  • 为什么苹果手机屏幕上突然出现了一个圆点(为什么苹果手机的手电筒打不开了)

    为什么苹果手机屏幕上突然出现了一个圆点(为什么苹果手机的手电筒打不开了)

  • 微信用户名与姓名不匹配怎么办(微信用户名与姓名不匹配)

    微信用户名与姓名不匹配怎么办(微信用户名与姓名不匹配)

  • iphonexsmax支持防水吗(iphonexsmax有防抖功能吗)

    iphonexsmax支持防水吗(iphonexsmax有防抖功能吗)

  • 小米9和小米8指纹版区别(小米8 小米9)

    小米9和小米8指纹版区别(小米8 小米9)

  • 路由器最多连接几个设备(路由器最多连接多少个无线设备)

    路由器最多连接几个设备(路由器最多连接多少个无线设备)

  • 苹果手机频繁断无信号(苹果手机频繁断流)

    苹果手机频繁断无信号(苹果手机频繁断流)

  • 照片怎么合成一张(照片怎么合成一张发微信)

    照片怎么合成一张(照片怎么合成一张发微信)

  • 苹果11怎么添加手写键盘(苹果11怎么添加门禁卡)

    苹果11怎么添加手写键盘(苹果11怎么添加门禁卡)

  • 小米智能卡干什么的(小米智能卡干嘛的)

    小米智能卡干什么的(小米智能卡干嘛的)

  • 固态硬盘带缓存和不带有什么区别(笔记本固态硬盘带缓存)

    固态硬盘带缓存和不带有什么区别(笔记本固态硬盘带缓存)

  • 华为荣耀4手环充电时间(华为荣耀4手环怎么更换表盘)

    华为荣耀4手环充电时间(华为荣耀4手环怎么更换表盘)

  • 手机怎么连接车上蓝牙(手机怎么连接车载蓝牙放音乐)

    手机怎么连接车上蓝牙(手机怎么连接车载蓝牙放音乐)

  • 云店商城是什么(云店商城是干嘛的)

    云店商城是什么(云店商城是干嘛的)

  • vivo手机支持nfc功能吗(vivo手机支持nfc功能的有哪几款)

    vivo手机支持nfc功能吗(vivo手机支持nfc功能的有哪几款)

  • 手机相册在电脑上是哪个文件夹(手机相册在电脑里英文是)

    手机相册在电脑上是哪个文件夹(手机相册在电脑里英文是)

  • 苹果x能升级12.1.2吗(苹果X能升级到16.5吗)

    苹果x能升级12.1.2吗(苹果X能升级到16.5吗)

  • sata线怎么接主板(sata接线怎么用)

    sata线怎么接主板(sata接线怎么用)

  • 2.4g和5g的wifi速度区别(2.4g和5g的wifi速度测试)

    2.4g和5g的wifi速度区别(2.4g和5g的wifi速度测试)

  • swstrtr.exe - swstrtr是什么进程

    swstrtr.exe - swstrtr是什么进程

  • React修改Antd组件样式的方法(react组件如何设置dom)

    React修改Antd组件样式的方法(react组件如何设置dom)

  • 狂神说mysql笔记(狂神说css笔记)

    狂神说mysql笔记(狂神说css笔记)

  • 宝塔常见进程守护方法,再也不用担心软件停止了(宝塔运行go)

    宝塔常见进程守护方法,再也不用担心软件停止了(宝塔运行go)

  • 结转所得税的会计分录是什么
  • 诚信纳税的含义是什么
  • 什么是资本利得?
  • 确认固定资产减值损失
  • 注销公司详细步骤
  • 投资控股型公司什么意思
  • 生产工人工资和福利费是产品成本项目对吗
  • 减免税控盘增值税纳税申报
  • 纳税筹划成本支出怎么算
  • 支票的填写前应检查有哪些内容
  • 商业企业的商品销售额、职工人数是( )
  • 资金型股东溢价进入
  • 付款单中未全付款怎么办
  • 金税三期的变化
  • 企业所得税预缴纳税申报表
  • 土地增值税按什么面积征收
  • 统一社会信用代码查询和税号一致吗
  • 农民专业合作经济组织可以贷款吗
  • 快递公司怎么纳入社保
  • 房地产广告公司月费一般多少
  • 基金赎回手续费怎么计算
  • 发票拍照打印出来能用吗
  • 企业销售收入含不含税
  • 光纤熔接发票属什么类别
  • 业务招待费不超过销售收入的5‰
  • 当月凭证做完怎么结转?
  • 应付账款是贵公司欠还是欠贵公司
  • 企业所得税按月或者按季预缴
  • 软件和硬件的成本按销售占比做分摊怎么算
  • windows闹钟
  • 阿贡火山经常性爆发的原因
  • php中使用什么关键字定义常量
  • 工业企业采购部门职责
  • 二手设备账务处理
  • 水培吊兰的养殖周期
  • php实现观察者模式
  • 应收账款确认无法收回
  • 蓝色龙舌兰花语
  • vue-bus
  • 以前年度损益调整借贷方向
  • 捐赠利得的会计科目
  • 企税申报表怎么填
  • 印花税需要扣除负数发票吗
  • mysql一次io
  • 实收资本认缴怎么做账,要做账吗
  • 上期金额是本年累计金额吗
  • SQL Server 2012 开窗函数
  • 产品的运输费用分录
  • 报销为什么不能打给投保人
  • 固定资产公司
  • 子公司计提的盈余公积合并抵消
  • 健身器材折旧年限及计提办法
  • 小规模免税如何开票
  • 存货报废计入
  • 未支付房租怎么做账
  • 进项税额大于销项税月末结转
  • 环境保护税法自什么时候起施行
  • 火车票的进项税率是多少
  • sql查询字段被包含的内容
  • mssql server 2012(SQL2012)各版本功能对比
  • windowsxp的开始菜单
  • xp系统无法打开网页怎么解决
  • git checkout撤销
  • 官方发布预防新冠戴口罩指引
  • 在linux操作系统中
  • bios setup在哪里
  • ubuntu12.04 amd64系统中lamp环境搭建方法
  • linux文件复制到windows
  • win7更改磁盘分区
  • unix网络命令
  • Extjs中DisplayField的日期或者数字格式化扩展
  • 经纬科技it6000
  • 非递归与递归
  • jquery图片自动滚动
  • java教程csdn
  • android studio的app
  • 小规模纳税人可以用专票抵扣税吗
  • 中国税收居民申报
  • 债的抵偿顺序
  • 税务 稽查局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设