我正在使用vue-router 3.0开发Vue 2.5 SPA。
某些视图包含呈现iframe的子组件。
当我切换到另一条路线并返回到呈现iframe的路线时,相应的iframe 会重新加载,即使之前曾访问过。这种行为是不需要的,因为在这种情况下会导致用户体验不良。当用户返回视图时,iframe状态应保持与之前相同。
我猜重装是由于dom在离开路线时被摧毁造成的。即使是以下结构也不能阻止它:
<keep-alive>
<router-view></router-view>
</keep-alive>
<keep-alive>
似乎保持Vue组件本身,但不是dom表示。
切换路线时保留dom是否有任何方法(或解决方法)?路由器模式允许隐藏而不是交换组件将是完美的。
答案 0 :(得分:1)
您将需要在iframe上使用v-show。 在途中,您将不指定组件
<template>
<iframe v-show="$route.path == '/foo'">
</template>
<script>
routes: [
{ path: '/foo'},
{ path: '/bar' }
]
</script>
p.s ...我正在寻找一种更优雅的方式...应该是路由器的属性,告诉我们我们要隐藏,而不是破坏/重建