vue刷新当前页面时,会出现空白,感觉很不好。解决的方式是用provide / inject
组合的方法
此方法使用的是v-if
来控制router-view
的显示或隐藏,v-if从false变为true时
,vue会重新渲染router-view
区域,所以当参数变化时,只需让v-if
从true => false => false
,就能实现页面刷新;
第一步,修改app.vue文件,如下面的方式
<template><div id="app"><router-view v-if="isAlive"></router-view></div>
</template><script>export default {name: 'app',provide() {return {reload: this.reload}},data() {return {isAlive: true}},methods: {reload() {this.isAlive = false;this.$nextTick(function () {this.isAlive = true})}}}
</script>
第二步,在想要刷新的vue页面引入inject,刷新的时候调用reload方法
export default {inject: ['reload'],methods: {// 刷新onRefresh () {setTimeout(() => {this.reload(); // 在想要刷新页面的时候调用reload方法this.$toast('刷新成功')this.isLoading = false}, 500)},}
}
更多推荐
空白,页面,vue
发布评论