Маршрутизации вю - не допустить повторного рендеринга страницы?

Маршрутизации вю - не допустить повторного рендеринга страницы?

07.01.2020 11:45:28 Просмотров 42 Источник

У меня есть News.vueи News-View.vue. Когда я направляюсь к news/1, он открывает окно News-View.vue страницы. Проблема в том, что у меня есть много фильтров поиска (категория, дата и т. д.) и бесконечный свиток в News.vue. Это означает, что когда пользователь возвращается из News-View.vue, все повторно визуализируется и обновляется, а настройки пользователя очищаются. Есть ли способ не перерисовывать News.vue страницу?

Новости.Вю:

beforeMount: async function () {
  this.$axios.post('http://localhost/?action=news', this.filters).then((response) => {
    this.results = this.results.concat(response)
  })
}

P.S. В настоящее время я использую State Managementдля сохранения загруженных результатов и сохраненной позиции прокрутки, и это работает, но опять же, мне было интересно, есть ли способ просто не перерисовывать страницу, а сохранить текущее состояние или что-то еще...

У вопроса есть решение - Посмотреть?

Ответы - Маршрутизации вю - не допустить повторного рендеринга страницы? / Vue Routing - prevent re-rendering the page?

Является ответом!
Hammerbot

07.01.2020 12:29:59

Вы можете попробовать использовать keep-alive:

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

https://vuejs.org/v2/guide/components-dynamic-async.html

https://router.vuejs.org/api/

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

https://stackoverflow.com/questions/59624894/vue-routing-prevent-re-rendering-the-page/59625546#comment105413653_59625546
Я определенно мог бы использовать его на всем моем приложении. На самом деле это мобильное приложение, поэтому я думаю, что было бы лучше, если бы это было именно так. Но влияет ли это на производительность?
https://stackoverflow.com/questions/59624894/vue-routing-prevent-re-rendering-the-page/59625546#comment105413774_59625546
Ну, я думаю, что да, это положительно влияет на производительность,но вам нужно быть осторожным в компонентах, где вы должны были бы иметь в созданном крюке функцию, которая извлекает ресурс из параметров маршрута. Эта функция не будет работать снова из-за keep alive, даже если вы измените маршрут. Так что вам нужно будет добавить наблюдателя или что-то вроде этого.
https://stackoverflow.com/questions/59624894/vue-routing-prevent-re-rendering-the-page/59625546#comment105413910_59625546
На самом деле я беспокоился, что это может негативно повлиять на него (использование памяти и т. д.). Спасибо Вам большое, я сделаю это сейчас! :-)
https://stackoverflow.com/questions/59624894/vue-routing-prevent-re-rendering-the-page/59625546#comment105414088_59625546
Хо ну, на самом деле вы можете быть правы в отношении эффекта использования памяти. Это будет зависеть от размера данных, которые вы храните в своих компонентах, или от количества компонентов, имеющихся в вашем приложении. Все это действительно специфично для вашего приложения
https://stackoverflow.com/questions/59624894/vue-routing-prevent-re-rendering-the-page/59625546#comment105414580_59625546
Я не думаю, что это будет проблемой, это очень простое и легкое приложение. Спасибо за вашу помощь! Я не могу дождаться, чтобы начать его :-))
Закрыть X