核心
通过provide / inject组合方式
操作流程
修改 App.vue
通过声明reload方法,控制router-view的显示或隐藏,从而控制页面的再次加载,这边定义了
isRouterAlive //true or false 来控制
流程
router-view 增加 v-if 判断增加provide增加data增加method reload代码
<template><div id="app"><router-view v-if="isRouterAlive"></router-view></div></template><script>export default {name: 'app',provide() {return {reload: this.reload}},data() {return {isRouterAlive: true}},methods: {reload() {this.isRouterAlive = falsethis.$nextTick(function () {this.isRouterAlive = true})}}}</script>
子页面调用
在需要当前页面刷新的页面中注入App.vue组件提供(provide)的 reload 依赖,然后直接用this.reload来调用就行
<script>export default {inject: ['reload'],methods: {reloadpage(){this.reload();}}}