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

Опрос выбранных пропсов в Inertia

Пусть на экране ленты постов лежит и сам список, и блок с числом непрочитанных уведомлений. Список тяжёлый, а счётчик меняется часто. При каждом опросе тянуть оба пропса снова - лишняя нагрузка, хотя на экране нужно обновить только цифру.

У хелпера usePoll второй аргумент принимает те же опции, что и перечитывание через router. Опция only с массивом имён просит сервер вернуть лишь указанные пропсы, остальное на клиенте остаётся как было.

Давайте отдадим посты и счётчик двумя замыканиями:

<?php use Illuminate\Support\Facades\Route; use Inertia\Inertia; Route::get('/posts', function () { return Inertia::render('Posts/Index', [ 'posts' => fn () => [ ['id' => 1, 'title' => 'Launch'], ['id' => 2, 'title' => 'Update'], ], 'unread' => fn () => random_int(0, 9), ]); }); ?>

Давайте выведем ленту и подключим опрос только для пропса unread:

<script setup> import { usePoll } from '@inertiajs/vue3' defineProps({ posts: Array, unread: Number, }) usePoll(4000, { only: ['unread'], }) </script> <template> <p>Unread: {{ unread }}</p> <ul> <li v-for="post in posts" :key="post.id"> {{ post.title }} </li> </ul> </template>

Сделайте страницу работников Warehouse с пропсами crew и queue_size так, чтобы при опросе каждые шесть секунд менялся только размер очереди, а список crew на экране не пересчитывался заново.

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