Изменяя данные компонента захода на посадку, можно обновлять в соответствии с новым значением строки запроса. Вот как это можно сделать.
Вместо того, чтобы пытаться снова вывести sh на ту же страницу с другой строкой запроса. Сама строка запроса pid
может отслеживаться на предмет изменений, и при обновлении могут быть получены новые данные и данные компонента могут быть обновлены. В приложениях Nuxt JS (v. 2.10.2) это может быть достигнуто с помощью watchQuery
. watchQuery
- это свойство Nuxt JS, которое отслеживает изменения в строках запроса. И как только он обнаруживает изменение, вызываются все методы компонента (asyncData, fetch, validate ..). Вы можете прочитать больше https://nuxtjs.org/api/pages-watchquery/
Что касается решения, нажатие на ту же страницу с новой строкой запроса остается прежним.
.then(data => {
if (data) {
this.$router.push({ name: 'post', query: { pid: data.id } });
}
})
Однако на стр. vue, где данные выбираются с сервера. Нам нужно добавить свойство watchQuery
.
watchQuery: ["pid"],
async asyncData(context) {
let response = await context.$axios.$get(
`http://localhost:8080/find/id/${context.route.query.pid}`
);
return { postData: response };
},
data: () => ({
postData: null
})
Теперь, каждый раз, когда будет вызываться строка запроса pid
, будет asyncData
вызываться. И это все. Простое исправление для обновления данных компонента при изменении значения строки запроса.