尝试了几种刷新页面的方法,
比如 : 1、浏览器直接刷新(会出现短暂的白页面现象)
2、设置一个空白页面,需要刷新的时候跳转到空页面再从空页面跳回来 (些许麻烦)
3、使用 provide /inject (目前觉得最实用,主讲此方法)
App.vue
r<template> <div id="app"> <router-view v-if="isRouterAlive"></router-view> </div> </template> <script> export default { provide(){ return { reload:this.reload } }, data(){ return { isRouterAlive:true }}, methods:{ reload(){ this.isRouterAlive = false; this.$nextTick(()=> { this.isRouterAlive = true; }) }, } } </script>
通过声明 reload 方法,控制 router-view 的显示或隐藏,从此控制页面的加载
<template> <div> <button @click="clickBtn"></button> </div> </template> <script> export default { inject:['reload'], // 注入依赖 data(){ return {}; }, created() {}, mounted() {}, methods: { clickBtn(){ this.reload() }}, }; </script>