@lolrofl01

Правильно ли я работаю с компонентами во vue?

Привет!
Нужен совет специалистов, подскажите, пожалуйста, правильно ли я делаю, т.к. только учусь, это мой первый проект на vue (бэкэнд - ларавель). Есть задача: вывести статью и комментарии к ней. Выделил 2 компонента (статья, комментарии). Статью передаю через props.
export default {
        props: [
            'news'
        ]
    }


Комментарии же решил получать через axios. Подскажите, пожалуйста, и здесь - что правильнее: комментарии получать также как и статью на бэке и передовать через props, или же при монтировании отправлять гет запрос и получать комментарии? Я пошел по второму пути, но не уверен, что это верно. Вышло вот так:
export default {
        data : {
            comments : null
        },
        mounted() {
          this.update();
        },
        methods: {
            'update' : function() {
                axios.get('/news/getCommentsList').then( (response => {
                    console.log(response.data);
                    this.comments = response.data;
                }) )
            }
        }
    }


Теперь встал вопрос - мне в этот гет запрос (для получения комментариев) нужно указать news_id, т.е. для какой новости получить комментарии? Но я news передавал через props в другой компонент. Можно оттуда как-то вытащить эту переменную? И в целом верно ли я делаю, или можно все это сделать гораздо легче и логичнее?

Заранее большое спасибо за Ваш вклад!
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
potapchino
@potapchino
ну вы же запрашивали статью? вот id статьи сохраните и юзайте его при запросе комментов.

а вообще по-правильному, id статьи должен в url-строке быть
https://mysite.com/news/:id

и через методы роутера потом тяните этот id
methods: {
  getNewsComments() {
    const newsId = this.$route.params.id
    
    axios.get(`/news/${newsId}/comments`).then(...)
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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