vue组件强制刷新的5种方案

简介: vue组件强制刷新的5种方案

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

· 刷新整个页面(最low的,可以借助vue router机制)

· 使用v-if标记(比较low的)

· 使用内置的this.$forceUpdate方法(较好的)

· 使用key-changing优化组件(最好的)

· 使用provide/inject实现强制刷新(子组件根据父组件值进行强制刷新,也是使用了v-if原理)

1.刷新整个页面

image.png

2.使用v-if标记

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

image.png

流程分析:

1、初始化的时候refresh值为 true,组件渲染;

2、当我们调用refreshComp时,refreshComp会立刻变为false;

3、这个时候因为值为false组件就会停止渲染;

4、然后在nextTick中将refresh的值重新设置回去,组件重新渲染。

image.png

3.使用内置的this.$forceUpdate方法

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

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

image.png image.png

4.使用key-changing优化组件

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

image.png

5.应用实例——进入页面输入框自动聚焦(页面有缓存时,只有第一次进入页面生效)

一般情况下,使用指令

image.png image.png

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

也是使用v-if原理,只是子组件中根据父组件中的值进行强制刷新

 

目录
相关文章
|
1天前
|
监控 JavaScript
Vue中的数据变化监控与响应——深入理解Watchers
Vue中的数据变化监控与响应——深入理解Watchers
|
1天前
|
JavaScript 安全 前端开发
Vue 项目中的权限管理:让页面也学会说“你无权访问!
Vue 项目中的权限管理:让页面也学会说“你无权访问!
10 3
|
1天前
|
JavaScript 前端开发 开发者
Vue的神奇解锁:冒险的开始
Vue的神奇解锁:冒险的开始
5 1
|
2天前
|
JavaScript 前端开发
【vue】iview如何把input输入框和点击输入框之后的边框去掉
【vue】iview如何把input输入框和点击输入框之后的边框去掉
7 0
|
3天前
|
资源调度 JavaScript 前端开发
Vue的路由管理:VueRouter的配置和使用
【4月更文挑战第24天】VueRouter是Vue.js的官方路由管理器,用于在单页面应用中管理URL路径与组件的映射。通过安装并引入VueRouter,设置路由规则和创建router实例,可以实现不同路径下显示不同组件。主要组件包括:`<router-link>`用于创建导航链接,`<router-view>`负责渲染当前路由对应的组件。此外,VueRouter还支持编程式导航和各种高级特性,如嵌套路由、路由参数和守卫,以应对复杂路由场景。
|
2天前
|
JavaScript
【vue实战】父子组件互相传值
【vue实战】父子组件互相传值
8 1
|
2天前
|
JavaScript
vue2_引入Ant design vue
vue2_引入Ant design vue
7 0
|
2天前
|
JavaScript
vue知识点
vue知识点
10 4
|
2天前
|
存储 JavaScript 前端开发
【Vue】绝了!这生命周期流程真...
【Vue】绝了!这生命周期流程真...
|
3天前
|
JavaScript 索引
【vue】框架搭建
【vue】框架搭建
7 1