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
console.log('reload')
})
}
}
}
</script>
2.直接刷新和每日定时刷新
<template>
<div>
<div>{{myDate}}</div>
<div class="myRefresh">
<el-button type="text" @click="btnaction">刷新</el-button>
</div>
</div>
</template>
<script>
import moment from 'moment';
export default {
inject: ['reload'],
data() {
return {
myDate:''
}
},
mounted(){
let _this = this;
this.timer = setInterval(function() {
_this.getTime();
}, 60000);
},
methods:{
getTime(){
let date = new Date()
this.myDate = moment(date).format("YYYY/MM/DD HH:mm");
// 每天7点,13点定时刷新
if(date.getHours() == 7&&date.getMinutes() == 0||date.getHours() == 13&&date.getMinutes() == 0){
this.btnaction()
}
},
// 全局刷新
btnaction() {
this.reload() // 调用方法
}
},
destroyed(){
if(this.timer) {
clearInterval(this.timer);
}
}
}
</script>