如图所示,网页结构就是一个头部,一个路由组件,一个底部。
当我在组件1点击方法,跳转到组件2,同时提交 $emit() 事件,分别在头部和组件2进行 $on 监听事件,头部组件成功拿到值,并赋值到页面成功,但是组件2能够log出值,却赋值不了。大概是因为头部组件已经事先注册过了,所以传值成功,我把组件2也拿到 render 里面先注册,测试是传值成功。
那么,我想经过路由到另外一个组件(平级),如何进行传递数据呢??初学,请大佬帮忙解惑。
请问router-view的两个组件之间如何通信呢
如图所示,网页结构就是一个头部,一个路由组件,一个底部。
当我在组件1点击方法,跳转到组件2,同时提交 $emit() 事件,分别在头部和组件2进行 $on 监听事件,头部组件成功拿到值,并赋值到页面成功,但是组件2能够log出值,却赋值不了。大概是因为头部组件已经事先注册过了,所以传值成功,我把组件2也拿到 render 里面先注册,测试是传值成功。
那么,我想经过路由到另外一个组件(平级),如何进行传递数据呢??初学,请大佬帮忙解惑。
请问router-view的两个组件之间如何通信呢
https://segmentfault.com/a/11...
路由传值
this.$router.push({path:'路径',query:{所传参数}}); 键值的形式所传参数
组件传值主要分为子传父通过emit触发事件,父传子是props和平级传值,vuex在组件三种情况都可以传值,还有cookie,localstorage和sessionstorage也可以传值,但在vue中不建议使用,详细介绍可以看哈https://cn.vuejs.org/v2/guide...
6 回答2.9k 阅读✓ 已解决
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
大哥.
$emit
和$on
是父子级传递数据的。你需要平级的传递 完全可以使用
vue-route
的路由参数传递,如下:a路由转跳到b理由,直接传参过去
然后,在B页面通过
watch
属性去监听$route
,xxxx
是你定义的回调函数通过
this.$route
去获取传过来的参数第二个就是通过
状态管理
去处理,如果你不想使用vuex
那么就通过this.$root.$data
去获取如果使用
vuex
就更加简单了,直接看这里教程