方法一 利用provide和inject
利用v-show实现app组件的显示与隐藏达到刷新目的
优点:不会存在类似使用this.$router.go(0)和location.reload()页面出现白屏类似的情况
缺点:js全部重新加载运行,数据 ,分页条件,查询条件等会到初始值用户体检不好
代码实现:
app.vue中
<template>
<div id="app">
<router-view v-if='isShow'></router-view>
</div>
</template>
<script>
export default {
name: 'App',
provide(){
return{
reload:this.reload
}
},
data() {
return {
isShow:true
}
},
methods:{
reload(){
this.isShow=false
this.$nextTick(()=>{
this.isShow=true
})
}
}
}
</script>
<style>
#app {
width: 100%;
height: 100%;
}
</style>
组件中使用
export default {
inject: ['reload'],//引入刷新页面的依赖
methods: {
submitOperate(){
this.reload()
}
},
};
方法二
修改添加等操作在弹框,弹窗子组件进行时,利用子组件触发父组件的函数获取最新数据
父组件引入子组件
父组件获取数据的方法
子组件触发父组件获取数据的方法