@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
        }
    }

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

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

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

Войти через центр авторизации
Похожие вопросы