zack
zack
计划重构该库,过于依赖vue-router库,导致很多情况下不得不这么做
是指有多个`vue-router`嵌套时,子`vue-router`的路由变化时会导致父`vue-router`组件的重新加载?
我觉得可能是这样的:A->B,然后你使用的是router.push,所以不会返回到原来的A页面,而是打开新的A页面,然后又到了B,同理打开的是新的B页面,所以就会有多次的watch触发情况,B在内存中,并没有被销毁。 如果希望B返回A,不应该使用push
这种情况使用原生的api就可以解决了,一次返回多层历史记录,`history.go(-2)`,[文档地址](https://developer.mozilla.org/zh-CN/docs/Web/API/History_API)
这种情况可能是不该使用watch的,watch加了一个监听,但是跳转页面后并没有释放掉,所以每次创建新页面,就会多一个watch了;类似addEventLinstener,需要在生命周期钩子里来把监听释放掉,或者把监听中心化,不放在页面里,放在类似vuex之类的地方去管理 我们可以再讨论一下有没有更好的解决方案;组件需要缓存,但是watch监听不要触发,这个其实是矛盾的
有的,官方的方法 [文档地址](https://cn.vuejs.org/v2/api/#vm-watch)
我目前是把tab的切换状态放到组件状态中去管理,不把它作为不同的路由来对待
没明白你想表达的是什么,库有bug还是希望添加一个新特性?
就是指后退回A页面的时候,希望改变A页面的地址是吧 如果希望完成B页面和A页面通讯,推荐使用Vue的事件或者`vuex`库