用provide / inject 组合
原理:允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效
在App.vue,声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载
<div id="app">
<router-view v-if="isRouterAlive"/>
export default {
name:'App',
provide() {
return {
reload:this.reload
}
},
data:function() {
return {
isRouterAlive:true
}
},
methods: {
reload() {
this.isRouterAlive =false
this.$nextTick(function() {
this.isRouterAlive =true
})
}
}
}
</script>
在需要用到刷新的页面。在页面注入App.vue组件提供(provide)的 reload 依赖,在逻辑完成之后(删除或添加…),直接this.reload()调用,即可刷新当前页面。
1.inject:[‘reload’]引入依赖
2.this.reload() 使用,即可刷新页面
![9255603-ec873cf35b9593e9.png](https://i-blog.csdnimg.cn/blog_migrate/b44fbd4195159cd6bd464f8773259990.webp?x-image-process=image/format,png)