Vue路由和组件之间传递数据冲突


#1

现在有一个父组件,一个子组件,子组件通过$emit事件通知父组件,父组件监听这个事件,然后改变子组件的值,如显示隐藏子组件。

现在有个问题,在父组件中使用this.$router.push(’/’)发生路由变化,去到其他页面,想关闭子组件,关闭不了


#2

路由的改变影响了父组件或子组件吗?


#3

因为这个子组件是插入到body的,平时关闭子组件的时候是通过$emit告诉父组件关闭的,但是路由发生变化后,父组件已经没了,但是子组件还在,点关闭传不到父亲组件了,所以造成无法关闭


#4

父组件不存在但子组件依然存在?你这是什么架构……


#5

父组件的beforeDestroy事件里面,写上关闭子组件,如果你不想关闭父组件的同时关闭子组件,请用Vuex


#6

我在父组件的beforeDestroy里面写了关闭子组件,但是子组件关闭不了,我在路由改变前关闭,总是第一次能关闭,在操作的时候就关闭不了了


#7

正常情况下,父组件是有的啊,路由变了,去了其他页面,父组件不存在了,但是子组件因为父组件的关闭命令没有在路由变化前及时获取到吧,所以关不掉,相当于弹窗,


#8

只能在子组件里面监听路由,然后自己关闭了


#9

对地,这样也解耦了,一个奇葩的组件


#10

Vuex状态管理可以解决


#11

谢谢大家:grinning::grinning::grinning::grinning:斜体示例


#12

根据指针指向实现vuex双向数据绑定 这个 问题请问有没有人可以解答一下