当我们在做项目时,我们需要做当前页面的刷新来达到数据更新的目的,在此大概总结了几种常用的页面刷新的方法。
1.window.location.reload(),是原生JS提供的方法,
this.$router.go(0):是vue路由里面的一种方法,
这两种方法都可以达到页面刷新的目的,简单粗暴,但是用户体验不好,相当于按F5刷新页面,会有短暂的白屏,相当于页面的重新载入。
2.通过路由跳转的方法刷新,具体思路是点击按钮跳转一个空白页,然后再马上跳回来(个人感觉比较麻烦,不实用)
3.控制的显示与否,在全局组件注册一个方法,该方法控制router-view的显示与否,在子组件调用即可:
provide / inject 组合 方式感觉比较好用,相对的比前面几种方法好用
(1)先修改App.vue
<template>
<div id="app">
<router-view v-if="isRouterAlive"></router-view>
</div>
</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>
(2) 当前需要刷新的页面
<template>
<div>
</div>
</template>
<script>
export default{
inject: ['reload'], // 引入方法
data(){
return{
}
},
mounted(){
this.reload() // 哪里需要在哪里调用
},
methods:{}
}
</script>
版权声明:本文为Sweetfuir原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。