При инициализации проекта идет запрос информации об авторизованном пользователе.
В этом время в компонте нужно загрузить новости для пользователя, но для этого нужно сначала получить его id.
Теоритически, запрос информации о пользователе может подвиснуть и на момент загрузки компонента, информация id пользователя может еще отсутствовать.
То есть такой подход не сработает:
//component
...
created() {
this.$axios.post('/news', {user_id: this.$store.state.user.id})
}
Тогда можно запустить этот метод в watch:
//component
...
watch: {
'$store.state.user': function() {
this.$axios.post('/news', {user_id: this.$store.state.user.id})
}
}
Но этот метод не сработает, если на момент загрузки компонента информация уже загрузилась.
Тогда третий вариант:
//component
...
watch: {
'$store.state.user': function() {
this.loadNews();
}
},
created() {
this.loadNews();
},
methods: {
loadNews() {
this.$axios.post('/news', {user_id: this.$store.state.user.id});
}
}
Но такой код выглядит избыточным.
Как правильно делать?