Обновлять Vuex, только если данные новые (отличаются от существующих) - PullRequest
0 голосов
/ 24 мая 2019

Я использую vuex store в своем приложении для хранения новостей из ленты новостей.Идея состоит в том, что если пользователь перейдет на другую страницу и вернется на страницу канала, сообщения из хранилища должны быть видны, а загрузка новых данных должна происходить в фоновом режиме.

Это работает нормально, но проблема возникает при загрузке данных в фоновом режиме.Когда это происходит, каждый отдельный почтовый компонент перезагружается и монтируется снова, что создает очень плохой пользовательский интерфейс (поскольку новостной компонент тяжелый и сложный).

Чего я хочу добиться, так это перерисовать компонент, только если данные новые или другие.Теперь каждый компонент новостей каждый раз перерисовывается, независимо от того, являются ли данные новыми или одинаковыми.

Я сохраняю данные в Vuex следующим образом:

this.insertOrUpdate({data})

И в компоненте получаю их в computed:

    news () {
      return News.query().all()
    }

и использую их вкомпонент:

  <my-news v-for="item in news"
            :key="item.id"
            :news="item" />

Понятия не имею, как предотвратить повторный рендеринг этих компонентов, когда данные не меняются.Это вообще возможно?

...