无限查询(Infinite Query Store)
import { createInfiniteQueryStore } from '@iostore/svelte';
export const feed = createInfiniteQueryStore({ key: ['feed'], initialPageParam: 0, queryFn: ({ signal, pageParam }) => fetch(`/api/feed?cursor=${pageParam}`, { signal }).then((r) => r.json()), getNextPageParam: (lastPage) => lastPage.nextCursor ?? null,});<script lang="ts"> import { feed } from './stores';
$: rows = $feed.data?.pages.flatMap((page) => page.items) ?? [];</script>
{#each rows as row} <div>{row.title}</div>{/each}
<button disabled={!$feed.hasNextPage} on:click={() => feed.fetchNextPage()}> Load more</button>createInfiniteQueryStore/toInfiniteQueryStore对应 Infinite Query 场景。- 通过
$feed.data.pages渲染累计结果。 - 建议配合
maxPages控制内存窗口。