一个页面两个功能 共用一个组件,但是希望组件有各自的实例。如何做到呢?

clipboard.png

如图,我希望两个“课中检测”共用一个 .vue组件。但是希望进入它们的页面后的行为互不影响,现在是,进入一个操作了,切换到另一个,发觉还是前面的操作结果。

怎么解决呢?

阅读 11.6k
4 个回答

定义不同的name ,<router-view :key="$route.name"></router-view>

你可能是不同的路由对应了同一个组件的问题吧
这个没什么办法 要么用watch监听路由 同一个组件切换的话重置一下状态
要么就用导航守卫,跳转的时候重置一下状态
据我所知不同路由导航到同一个组件 data层的东西是不会变化的

组件封装一下再调用

1,关于互不影响的问题: 只要vue组件的data声明为返回一个初始数据对象的函数,而不要定义为一个对象,组件就不会有影响
2, 关于通用化组件的问题:a,组件通过props来传递数据 b,通过插槽slot

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