Keep-alive на одном маршруте instaead всех маршрутов в router-view

если keep-alive указан в router-view, как показано ниже

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

затем все маршруты эффективно кэшируются и перезагружаются, когда этот маршрут пересматривается.

Я хотел бы иметь возможность указать опцию keep-alive на отдельных маршрутах.

со многими маршрутами и только 1 или 2, которые должны быть сохранены в живых без кэширования повторного рендеринга все маршруты бесполезны

есть ли какой-либо способ сделать это или любой обходной путь

1 ответов


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

новое в версии 2.1.0 Vue,include и exclude реквизит для условно кэширующих компонентов. Обратите внимание на использование .

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)]
    }
  }
}