vue没有关系的两个组件怎么传值

<div class="wrapper">

<v-head></v-head>
<v-sidebar></v-sidebar>
<div class="content-box" :class="{'content-collapse':collapse}">
    <v-tags></v-tags>
    <div class="content">
        <transition name="move" mode="out-in">
            <keep-alive :include="tagsList">
                <router-view></router-view>
            </keep-alive>
        </transition>
    </div>
</div>

</div>

我通过路由跳转的组件想使用<v-tags></v-tags>组件的方法该怎么办,它们不是父子,也不是兄弟。

阅读 4.9k
2 个回答

第一种 可以使用轻量的 vue bus 总线
第二种 可以使用vuex

分析你的问题,推测你是要根据路由跳转的组件去修改v-tags的状态? 类似面包屑提示当前页面的位置那种?
如果是这种情况,那么考虑使用路由的meta字段来处理. v-tags组件内监听一下当前路由 获取meta去改变对应的内容
1 楼上说的vue bus 你百度搜索下一大把,目前版本的vue官网似乎已经移除这个用法说明, 关键点就在于利用一个空的新vue实例来传递事件.用bus有个坑在于你必须确保bus.$emit事件触发的时候,接收事件的组件已经往bus上添加了bus.$on事件监听.
2 vuex就不多说了,有关联数据的2个组件对应同一个vuex 的state状态就好

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