Задать вопрос
@betterthanyouthink
Начинающий программист :)

Как правильно получить и отобразить данные с сервера во vue/vuex?

У меня есть user в стейте, который по умолчанию null:

state: {
 user: null
}

Информация о пользователе будет содержаться во многих местах сайта, поэтому запрос необходимо сделать как можно раньше. Где лучше всего его сделать? Я делаю вот так в App.vue:

created() {
        this.$store.dispatch('loadUser')
    },

Когда пытаюсь получить имя пользователя в компоненте топ меню, то оно undefined (как понял, потому что мы еще не успели получить данные с сервера), а если сделаю проверку v-if, то ничего не отобразится.

computed: {
        username() {
            return this.$store.getters.username
        }
    }

Как это правильно реализовать?
  • Вопрос задан
  • 222 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
delphinpro
@delphinpro
frontend developer
а если сделаю проверку v-if, то ничего не отобразится.

с какого перепуга? Как только данные придут, так сразу и отобразятся. If — хороший вариант.
Можно еще глобальный лоадер (в смысле анимацию, спиннер поверх страницы) приделать, и крутить егео пока не загружены первичные данные.
Или скелетоны развесить (это такая серая мерцающая плашка, имитирующая контент) в нужных местах. Тоже на if-else.
Ответ написан
Fragster
@Fragster
помогло? отметь решением!
Можно вызывать action стора в точке входа и монтировать App.vue после загрузки. Можно вместо основного компонента показывать заставку, пока данные не будут загружены.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы