РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuPmDtQS 57 of 84 menu
◀ ▶

Строка запроса в Nuxt

Поиск и фильтры часто передают условие не в пути, а в строке запроса после знака вопроса. Например, /users?q=leanne должен показывать только подходящих пользователей. Значение q лежит в route.query того же функции useRoute, что и параметры пути.

Давайте изучим страницу списка пользователей с фильтром по имени. Прочитаем route.query.q и передадим его в опцию query функции useFetch, чтобы при смене адреса запрос выполнялся заново с новым значением. Тестовый API отдаёт полный список, поэтому на странице оставляем имена, где встречается текст из q, например /users?q=leanne:

<script setup> const route = useRoute(); const { data } = await useFetch( 'https://jsonplaceholder.typicode.com/users', { query: computed(() => ({ q: route.query.q, })), }, ); const visible = computed(() => { const items = data.value ?? []; const needle = String( route.query.q ?? '', ).toLowerCase(); if (!needle) { return items; } return items.filter((user) => user.name .toLowerCase() .includes(needle), ); }); </script> <template> <ul> <li v-for="user in visible" :key="user.id" > {{ user.name }} </li> </ul> </template>

Сделайте страницу /products с параметром q в адресе, который фильтрует список товаров с тестового API по названию.

Проверьте, что смена q в строке браузера меняет состав списка без перезагрузки всего приложения вручную.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить