Vuejs 如何传递computed的字段到平级组件?

如题:

    <parent>
        <a></a>
        
        <b></b>
    </parent>

a组件里面有一个computed的属性:val,如何将val传递给组件b?

已经尝试事件传递,貌似不行

a组件内部:

    computed:{
        val(){
            //计算得到newVal值
            this.$dispatch('val',newVal);
        }
    }
阅读 3.1k
2 个回答

首先可以把computed拿到父里面 通过prop传到A 这样去操作父 进而驱动属性的变化

还有一个笨法 通过vm.$parent.$refs找到B

最优雅的使用vuex 思路都是差不多通过全局去控制

事件的话不建议使用

事件的话只能把父组件当一个中介来代理事件,子往上传父再往下传,但这样做着做着就乱了,这也是vuex出现的原因。

如果逻辑不复杂,可以来回穿或者父直接用refs来取值,如果逻辑复杂,就要用vuex了。

vuex就是出现一个独立的store的概念,只通过action模块可以更改store里的数据。store本身存放着各个模块共享的数据,各个模块再通过action来执行相应的操作,这可以去看一下。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题