【发布时间】:2021-05-16 18:44:45
【问题描述】:
我的 Vue 应用程序包含两个主要的路由器视图:一个在模态框内,允许在所述模态框内加载内容,另一个在主页面内。我使用name 属性来区分它们。例如,routes.js 文件中的一段代码会将内容加载到模式中。
export default ({
mode: 'history',
routes: [
{
path: '/classComp/create',
components: {
modalView: createClass
}
}
]
})
基本上,我的问题是,当我将内容加载到路由器时,主页的路由器视图中的内容消失了。我知道大多数人使用 children 属性来解决这个问题,但在这种情况下这是不可行的。例如,用户可以按下侧边栏中的路由器链接按钮来加载表单以在模态中创建类。因此,按下此按钮的能力与加载或未加载到主页中的内容无关,因此创建children 属性是不可行的。
简而言之,如何让 vue-router 将内容加载到 modal 的 router-view 而不擦除主机箱的 router-view 的内容?
**编辑:**有人建议为此使用keep-alive,但我无法让它工作。这是一个可行的建议吗?如果是,我会怎么做?
【问题讨论】:
-
我相信这只有在您的模态路由器视图是主视图的子视图时才有效。你应该看看Nested Routes
-
如果我想将内容加载到模式中而内容不在主要模式中怎么办?
标签: vue.js vue-router