2022年8月27日

Vue3项目刷新当前页几种方式

作者 admin

在做项目时候会遇到一类需求,比如点击禁用按钮后刷新当前页面,同步视图的效果

经过实验发现

this.$router.push();

this.$router.replace();

用这两个api并不会刷新当前页,于是查了一下资料 ,目前比较简单粗暴的的是这两种

location. reload()
this.$router.go(0)

这两种都可以刷新当前页面的,缺点就是相当于按ctrl+F5 强制刷新那种,整个页面重新加载,会出现一个瞬间的空白页面,体验不好。

于是自己又看了下其它方法:

新建一个空白页面比如叫 allBack.vue,点击确定的时候先跳转到这个空白页,然后再立马跳转回来。

a — > b —>a 这个方式,相比第一种不会出现一瞬间的空白页,只是地址栏有个快速的切换的过程,可采用,但是依旧不够优雅。

在这里我采用了第三种方法

首先是在app.vue里面编辑

然后找到我们业务场景下的代码调用:

通过声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载,这边定义了

isRouterAlive //true or false 来控制

然后在需要当前页面刷新的页面中注入App.vue组件提供(provide)的 reload 依赖,然后直接用this.reload来调用就行

哦对了 我这个是vue3项目,app.vue是vue3语法,业务文件是 vue2语法,算是3与2混写的。哈哈