#vue.js #nuxt.js #router
#vue.js #nuxt.js #маршрутизатор
Вопрос:
Маршрут в конфигурации Nuxt :
{ name: 'search', path: '/search/:id', component: resolve(__dirname, 'pages/search/_id.vue') },
Пример URL-адреса : localhost:8080/search/cars
Пример URL-адреса с параметрами запроса: localhost:8080/search/cars?co=us,ge
У меня есть список стран, которые можно проверять и не проверять. Для каждого клика я должен перезагружать данные внутри страницы, не обновляя всю страницу.
import { ref, defineComponent, useRoute, useRouter } from '@nuxtjs/composition-api' export default defineComponent({ setup(_, ctx) { function addQueryParam(type, value) { if (type == 'co') { if (route.value.query.hasOwnProperty('co')) { route.value.query.co = route.value.query.co ',' value } else { route.value.query.co = value } } let newValue = route.value.query.co console.log('New Q param gt;gt;gt;gt;gt;', newValue) router.push({ name: 'search', params: { id: 'cars' }, query: { co: newValue } }) } function removeQueryParam(type, value) { if (type == 'co') { if (route.value.query.hasOwnProperty('co')) { if (route.value.query.co.endsWith(value)) { if (route.value.query.co.includes(',')) { route.value.query.co = route.value.query.co.replace(',' value, '') } else { route.value.query.co = null } } else { route.value.query.co = route.value.query.co.replace(value ',', '') } } } let newValue = route.value.query.co router.push({ name: 'search', params: { id: 'cars' }, query: { co: newValue } }) console.log('New Q param gt;gt;gt;gt;gt;', newValue) } }, })
Консоль регистрирует правильное значение параметра запроса, но оно работает только с первым щелчком мыши.
Экс: localhost:8080/cars?co=us
2-й раз и далее я вижу, что параметр запроса обновляется в журналах ( newValue
), но не в URL-адресе браузера.
Что я здесь упускаю?