【发布时间】:2017-04-15 08:54:12
【问题描述】:
我正在使用带有一系列组件(如选项卡)的 vue-router。每个<router-link> 是一个选项卡,下面的空格是<router-view>。其中两个选项卡是具有不同过滤器的相同组件,假设它们是products,路由器添加了一个过滤参数:/products/new & /products/sale。
products 内部是单独的 product 组件,这些组件会在路由打开时安装。我的问题是,当我在路由之间切换并更改过滤器参数时,product 组件每次都会重新安装。我想缓存它们,这样来回切换更容易。为此,我设置了<keep-alive> 并将:key='$route.fullPath' 添加到我的<router-view>,但它们似乎没有被缓存。当我在products 之间切换时,每个product 仍在触发mounted() 事件。
<keep-alive>
<router-view :key='$route.fullPath'></router-view>
</keep-alive>
我是否应该将每个 products 视图变成一个单独的组件?
【问题讨论】:
-
试试这个答案,虽然这是 vue 2+:keep-alive and router-view
标签: javascript vue-component vue-router vue.js