浏览器开启多个页面,如何保持显示账户统一
最近做后台管理系统,需要开启新页面,账号切换后,其他页面账号没有同步显示,记录一下我自己的方法。
v-if,和v-show的区别,if是将不展示的DOM元素直接被移除,而show是将没有展示的DOM元素没有被移除,仅仅是使用样式隐藏掉。我的方法就是用if切换到方法达到刷新的效果,上代码
在app.vue中添加
// An highlighted block
<template>
<div id="app">
<router-view v-if="isReload"/> //通过isReload切换刷新页面
</div>
</template>
<script>
export default {
name: 'app',
provide () {
// provide和inject是成对出现的,
// provide在父组件中返回要传给下级的数据,
// inject在需要使用这个数据的子辈组件或者孙辈等下级组件中注入数据
return {
reload: this.reload
}
},
data () {
return {
isReload: true
}
},
methods: {
reload () {
this.isReload = false
this.$nextTick(() => {
this.isReload = true
})
}
}
在需要触发刷新的界面
export default {
inject: ['reload'],
data () {
return {
},
watch: {
// 解决多页面账号统一问题
token (val, old) { //监测到token的变化,刷新页面
if (val != '' && val != null) {
if (old != '') {
this.reload()
}
}
}
},