用v-if 就可以来完成页面局部刷新
vue中局部组件刷新,可以使用 provide / inject方法,在App.vue中添加刷新方法,路由初始状态是显示的
//App.vue
<template>
<div>
<router-view v-if="isRouterAlive"></router-view>
</div>
</template>
<script>
export default {
name: 'App',
data () {
return {
isRouterAlive: true
}
},
provide(){ //提供
return {
reload: this.reload
}
},
methods: {
reload(){
this.isRouterAlive = false
this.$nextTick( function () {
this.isRouterAlive = true
})
}
}
}
</script>
在使用局部刷新的组件中使用inject
<script>
export default {
name: 'Component',
data () {
return {}
},
inject: ['reload'], //注入
methods: {
// 比如某一个方法需要调用刷新
myCallBack(){
//............
this.reload() //局部刷新
}
}
}
</script>