DataResource
interfaz Desde 1.1.0
Datos reactivos que devuelven useApi y useRpcQuery. Sin await, data vale null hasta la
primera carga, que empieza en el navegador al montar el componente. Con await en el nivel
superior del script se obtiene un LoadedResource.
import type { DataResource } from "@meekojs/meeko/framework";Código fuente src/app/composables/resources/engine.ts:39
Declaración #
interface DataResource<T> extends PromiseLike<LoadedResource<T>> {
readonly data: ReadonlySignal<T | null>
readonly error: ReadonlySignal<Error | null>
readonly pending: ReadonlySignal<boolean>
readonly refreshing: ReadonlySignal<boolean>
refresh(): Promise<void>
}Parámetros de tipo #
-
T Salida del endpoint o del procedimiento.
Ejemplo #
<script lang="ts">
const users = useApi("/api/users");
</script>
<template>
<p if:when="users.pending.value">Cargando…</p>
<p if:when="users.error.value">No se pudieron cargar los usuarios.</p>
<ul><li each:of="users.data.value ?? []" each:as="user" each:key="user.id">{user.name}</li></ul>
</template>Miembros #
data
#
readonly data: ReadonlySignal<T | null>Datos de la última carga correcta, o null antes de la primera. Una recarga (refresh() o un
cambio de la entrada) los conserva hasta que llegan los nuevos; desde 1.5, con
keepPrevious: false, un cambio de la entrada los vacía.
refreshing
#
readonly refreshing: ReadonlySignal<boolean>true mientras hay una recarga en curso y data conserva los datos de una carga anterior: la
primera carga es pending sin refreshing. Sirve para un indicador discreto que no oculta los
datos (desde 1.5).
refresh
#
refresh(): Promise<void>Vuelve a pedir los datos con la entrada actual; un fallo sólo actualiza error.
Véase también #
- Datos en componentes: useApi, useRpcQuery y useRpcMutation Framework full-stack