• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

ถ้าข้อมูลเปลี่ยนบ่อยใน useAsyncData — ควรจัดการยังไงดี? ⚡

Sascha Онлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,559
Баллы
155


ใน Nuxt 3 เราชอบใช้ useAsyncData() ดึงข้อมูลจาก API เพราะมัน cache ให้เราอัตโนมัติ แต่ถ้าข้อมูลเปลี่ยนบ่อย เช่น รายการออเดอร์ใหม่
ยอดขายที่อัปเดตตลอดเวลา สถานะคำสั่งซื้อที่เปลี่ยนทุกไม่กี่วินาที
ถ้าใช้ useAsyncData() ตรง ๆ มันจะไม่โหลดใหม่ทันทีนะ
เพราะมันจำค่าไว้ใน cache เพื่อให้ SSR เร็วขึ้น

ใช้ refresh() โหลดใหม่เมื่ออยากอัปเดต


<script setup>
const { data, refresh, pending } = await useAsyncData('orders', () =>
$fetch('/api/orders')
);
</script>

<template>
<button @click="refresh()">โหลดข้อมูลล่าสุด</button>
<div v-if="pending">กำลังโหลด...</div>
<pre>{{ data }}</pre>
</template>




ใช้ watch() ดูค่าที่เปลี่ยน แล้ว refresh อัตโนมัติ


const status = ref('pending');
const { data, refresh } = await useAsyncData('orders', () =>
$fetch(`/api/orders?status=${status.value}`)
);

watch(status, () => refresh());





ใช้ { server: false } เพื่อให้ fetch ใหม่ฝั่ง client ทุกครั้ง


await useAsyncData('live', () => $fetch('/api/live'), {
server: false,
});




เขียนโดย: Tanarat Sudjai



Источник:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу