场景:
采用vue-router中this.router.go(0)刷新时,整个浏览器会重新加载,体验不好
解决方案:
provide / inject 组合
App.vue
<template>
<router-view v-if="isRouterAlive"/>
</template>
<script>
export default {
name: 'App',
provide () {
return {
reload: this.reload
}
},
data () {
return {
isRouterAlive: true
}
},
methods: {
reload() {
this.isRouterAlive = false
this.$nextTick(function(){
this.isRouterAlive = true
})
}
}
}
</script>
index.vue(使用组件)
export default {
inject: ['reload'],
methods: {
refreshTable () {
this.reload()
}
}
}