热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Vue组件间通信:不依赖Vuex的解决方案与最佳实践

三个组件:index.vueregister.vuelogin.vue说明一下彼此之间的关系:index.vue 包含 login.vue通过 prop 属性和 自定义事件 vue.$emit('xx

三个组件:




  1. index.vue


  2. register.vue


  3. login.vue


说明一下彼此之间的关系:

  • index.vue 包含 login.vue
    通过 prop 属性和 自定义事件 vue.$emit('xxx') 通信



  • register.vue 包含 login.vue
    彼此通过 prop 属性和 自定义事件 vue.$emit('xxx') 通信



  • index.vue 通过 到 register.vue
    彼此之间没有直接的关系


问题:
index.vue 和 register.vue 都包含一个登录按钮和登录状态:



1
2
3
    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 我这个问题有没有可以解决的办法。非常感谢


   



推荐阅读
author-avatar
情都欧阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有