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

Значение по умолчанию в Nuxt

Пока обработчик useAsyncData ещё не вернул ответ, поле data может быть пустым. Если шаблон сразу перебирает массив в v-for, безопаснее задать стартовое значение, совпадающее с типом данных после загрузки.

Давайте изучим опцию default. Её передают функцией, которая возвращает начальный массив. До прихода JSON в data уже лежит пустой список, и цикл не ломается:

<script setup> const { data } = await useAsyncData( 'users', () => $fetch( 'https://jsonplaceholder.typicode.com/users', ), { default: () => [], }, ); </script> <template> <ul> <li v-for="user in data" :key="user.id" > {{ user.name }} </li> </ul> </template>

После завершения запроса default заменяется реальным массивом пользователей. На сервере список обычно уже заполнен в HTML; на клиенте тот же приём защищает разметку в короткий момент до гидратации или при повторном запросе.

Для объекта в default возвращают пустой объект или структуру с нулями. Главное, чтобы поля, к которым обращается шаблон, существовали с первого рендера.

Сделайте страницу /cities со списком городов из ответа API и опцией default, чтобы до загрузки data была пустым массивом.

Добавьте под списком на /cities строку Total: N, где N - длина массива в data; при пустом default на первом рендере должен показываться ноль.

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