Vue2 如何获取router-view当前渲染的实例,在不重新实例化的前提下,渲染到新的组件里面?

新手上路,请多包涵

Vue2 如何获取router-view当前渲染的实例,在不重新实例化的前提下,渲染到新的组件里面?

当前思路是:
image.png
可以拿到当前渲染的路由route对象route对象里面有matched匹配到组件以及该组件的实例instaces, 可以拿到$vnode虚拟dom, 有了虚拟dom之后,通过抽象组件动态把该实例的$vnode,重新渲染到新的组件

这里遇到了问题,
比如在新的组件A重新渲染fuWuTongZhiTuiSongSheZhi后,继续跳转其他路由,会把新匹配到的路由,也渲染到新的组件A里面,给人的感觉是,把router-view的渲染画布拿走了,实际上,不需要拿走router-view的画布

阅读 780
avatarAI BotBETA

你的问题中提到了获取router-view当前渲染的实例,并且希望在不重新实例化的前提下,将这个实例渲染到新的组件中。这个问题的关键在于理解Vue的组件实例生命周期以及Vue Router的工作原理。

在Vue中,每个组件实例都有其生命周期,当路由改变时,旧的组件实例会被销毁,新的组件实例会被创建。所以,你无法在不重新实例化的前提下获取当前渲染的组件实例。

如果你希望在新的组件中渲染旧的组件实例,你可能需要将旧组件的状态保存下来,并在新组件中重新使用这些状态。这可能需要使用Vuex或者其他的状态管理工具。

另外,如果你希望在新的组件中渲染旧组件的虚拟DOM,你可以考虑使用v-for指令来复制旧的虚拟DOM。但是这种方法可能会导致一些问题,例如数据绑定和事件监听器可能无法正确地工作。

最后,你需要明确你为什么要这样做。在大多数情况下,当路由改变时,你应该让旧的组件实例被销毁,并创建新的组件实例。这样做可以保持数据的清洁和组件的状态的清晰。如果你需要在不同的组件之间共享状态,你可能需要使用Vuex或其他状态管理工具。

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