Прогресс защиты асинхронного маршрута Vue router

Я выполняю асинхронную работу в навигационной защите моего маршрутизатора:

router.beforeEach((to, from, next) => {
  somethingAsync().done(next)
})

Маршрутизатор показывает что-нибудь, что говорит мне, что он в настоящее время "загружается"? Или мне нужно самому следить за этим? Прямо сейчас контент появится в<router-view></router-view> после завершения асинхронной работы. Мое текущее решение - отслеживать активную работу в моем магазине Vuex и показывать элемент загрузки рядом с представлением маршрутизатора.


person Johan    schedule 01.08.2017    source источник


Ответы (1)


Что я делаю для достижения того, что, как мне кажется, вы пытаетесь сделать, так это:

  • Используйте Axios или что-то еще, у которого есть перехватчики https://github.com/mzabriskie/axios
  • Имейте компонент, у которого есть счетчик ожидающих запросов. Когда этот счетчик больше 0, покажите элемент загрузки.
  • После этого все, что вам нужно сделать, это настроить перехватчики так, чтобы при отправке запроса счетчик увеличивался, а при получении ответа счетчик снижался.

Если нужно, я могу показать вам код.

person Potray    schedule 01.08.2017
comment
Да, это то, что я делаю сегодня в своем магазине Vuex :) Мне было любопытно, было ли что-то встроено, поэтому я не изобретаю колесо - person Johan; 01.08.2017