vue.js - Keep-alive 在单个路由上而不是路由器 View 中的所有路由

标签 vue.js vuejs2 vue-component vue-router

如果 keep-alive 指定给 router-view 如下所示

<keep-alive>
    <router-view></router-view>
</keep-alive>

然后所有路由都被有效缓存并在重新访问该路由时重新加载。

我希望能够在各个路由上指定保持事件状态的选项。

有很多路由,只有 1 或 2 个需要保持事件状态而无需重新渲染缓存所有路由是无用的

是否有任何方法或任何可用的解决方法

最佳答案

https://jsfiddle.net/Linusborg/L613xva0/4/

Vue 版本 2.1.0 中的新功能,用于有条件地缓存组件的 includeexclude Prop 。请注意 name 选项的使用。

const Foo = {
    name: 'foo',
  template: '<div><p v-for="n in numbers">{{ n }}</p></div>',
  data: function() {
    return {
        numbers: [Math.round(Math.random() * 10), Math.round(Math.random() * 10)]
    }
  }
}

const Bar = {
    name: 'bar',
    template: '<div><p v-for="n in numbers"><strong>{{ n }}</strong></p></div>',
  data: function() {
    return {
        numbers: [Math.round(Math.random() * 10), Math.round(Math.random() * 10)]
    }
  }
}

关于vue.js - Keep-alive 在单个路由上而不是路由器 View 中的所有路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43116616/

相关文章:

javascript - Vue.js/Vuetify - 根据另一个选择过滤选择数据

html - Vue 2 原始 HTML 绑定(bind)到文本区域

javascript - 如果元素单击 vue 组件,我如何添加类事件?

vuejs2 - 是否可以同步在同一页面上多次显示的Vuejs组件?

javascript - 如何仅向 vuejs 中的单击按钮添加加载?

javascript - 为什么我的 Vue 方法没有引用正确的上下文(数据)?

typescript - 基于 vuejs v3.0 中的类组件的 vuejs 项目会发生什么?

javascript - Vue中如何修改 `App`组件的数据?

vue.js - 为vuejs创建消息通知时如何避免代码重复

vue.js - Vue js 组件中的 jQuery Accordion