三个组件:
index.vue
register.vue
login.vue
说明一下彼此之间的关系:
index.vue 包含 login.vue
通过 prop 属性和 自定义事件 vue.$emit('xxx') 通信
register.vue 包含 login.vue
彼此通过 prop 属性和 自定义事件 vue.$emit('xxx') 通信
index.vue 通过 <router-view> 到 register.vue
彼此之间没有直接的关系
问题:
index.vue 和 register.vue 都包含一个登录按钮和登录状态:
data() { ifLogin: false; // 未登录 }
当我点击 index.vue 的登录按钮,login.vue 会通过弹窗形式弹出,并且经过表单输入后点击登录,会把登录状态传回给 index.vue,然后 index.vue 的登录状态切换成 ifLogin: true 这一步已经完成没有问题很简单
当我点击 register.vue 的登录按钮,login.vue 也会通过弹窗形式弹出,并且经过表单输入后点击登录,会跳转到 index.vue 这个首页,但问题是 index.vue 中的登录状态没有切换,我需要刷新一遍登录状态才会变成 ifLogin: true 。我希望能不刷新页面 index.vue 的状态就切换。
不明白我问题的话思考一下,其实就是login.vue 分别给 index.vue 和 register.vue 都绑定了通信
如果不用 vuex 我这个问题有没有可以解决的办法。非常感谢
慕桂英4014372