先贴解决方案代码,再分析原因
VUE前端代码
在App.vue页面的routet-view中加入v-if代码
<router-view v-if="isRouterAlive"></router-view>
再在App.vue页面js代码里引入provide方法并在data中声明变量isRouterAlive以及在method中添加reload方法
export default {
name: 'app',
provide() {
return {
reload: this.reload
}
},
data() {
return {
isRouterAlive: true
};
},
methods: {
reload() {
this.isRouterAlive = false;
this.$nextTick(function () {
this.isRouterAlive = true;
});
}
}
再就是到需要动态刷新数据的vue页面中添加代码,我这里叫answerquestion.vue页面
需要刷新的地方是在点击删除按钮成功删除数据后立即刷新table的数据,首先在该页面的js代码里写一个inject来注入App.vue页面的reload方法,然后在删除数据的方法(我这里是handleDelete)里调用inject注入的reload方法即可。需要加带代码的地方我都写了注释方便大家定位。
<script>
import api from '../main'
export default