(1)reload
location.reload();
reload() 方法类似于你浏览器上的刷新页面按钮。
(2)replace
window.location.replace("")
replace()方法用一个新的地址替换当前地址。
(3)provid 和 inject
<template>
<div id="app">
<router-view v-if="isRouterAlive"/>
</div>
</template>
在路由身上用v-if的特性来摧毁路由来达到刷新页面的效果。
provide(){
return {
reload : this.reload
}
}
采用provide、inject 注参的形式来控制是否刷新。
methods:{
reload(){
this.isRouterAlive = false
this.$nextTick(function(){
this.isRouterAlive = true
})
}
}
在methods中相对应的改变值的方法,Vue中的nextTick涉及到Vue中DOM的异步更新,有兴趣可以了解了一下。
inject:['reload'],
然后在需要刷新的子组件引入 inject:[‘reload’],把父组件定义的方式接收过来,需要刷新的时候this.reload调用执行即可。