下面介绍三种刷新页面方法
第一种
类似于你浏览器上的刷新页面按钮
有人说闪白,但是我这个没出现闪白,咱也不知道为啥。。。。
location.reload()
第二种
通过Vue自带的路由进行跳转, 闪白
this.$router.go(0)
第三种
通过在父页面的<router-view></router-view>
上添加v-if的控制来销毁和重新创建页面的方式刷新页面,并且用到provide
和inject
实现多层级组件通信方式,父页面通过provide
提供reload
方法,子页面通过inject
获取reload
方法,调用方法做刷新。
不闪白,地址栏会不会出现快速切换的过程,用户体验好
在app.vue中
<template>
<div id="app">
<router-view v-if="isShow"/>
</div>
</template>
<script>
export default {
name: 'App',
provide(){
return{
reload:this.reload
}
},
data(){
return{
isShow:true
}
},
methods:{
reload(){
this.isShow=false;
this.$nextTick(()=>{
this.isShow=true
})
}
}
}
</script>
在需要刷新的页面里调用就可以了
inject: ['reload']
methods: {
onClick(){
this.reload()
}
},