Hooks
useQuery

useQuery

El hook useQuery proporciona acceso y control sobre los parámetros de consulta en la URL, permitiendo manipularlos y reaccionar a sus cambios.

Importación

Para importar el componente useQuery, se puede hacer desde fenextjs

import { useQuery } from "fenextjs";

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
ignoreQuerys[id: keyof T]noLista de claves de los parámetros de consulta que deben ser ignorados.
parseQuery(data: ParsedUrlQuery) => TnoFunción para transformar los parámetros de consulta en el formato esperado.

QueryDataDefault

Interfaz de los parámetros de consulta predeterminados.

NombreDescripcionDefault
idID único.undefined
searchTérmino de búsqueda.''
searchAddressDirección de búsqueda.''
tabNombre de la pestaña activa.'all'
pagePágina actual.0
npageNúmero de elementos por página.10
totalpageTotal de páginas.100
allitemsTotal de elementos.1000
startInicio del rango.undefined
endFin del rango.undefined
orderOrden de los elementos.undefined
orderByCampo por el cual ordenar.undefined
exportByExportaciones adicionales.[]

Returns

ParametroTipoDescripcion
loadbooleanIndica si el router está listo.
queryTLos parámetros de consulta actuales en formato T.
setQuery(query: T) => booleanFunción para sobrescribir los parámetros de consulta.
onConcatQuery(newQuery: T) => booleanFunción para agregar nuevos parámetros de consulta sin sobrescribir los existentes.
onChangeQuery(id: keyof T) => (value: T[keyof T]) => booleanDevuelve una función que modifica un parámetro específico.
onDeleteQuery(id: keyof T) => booleanFunción para eliminar un parámetro de consulta específico.
isChangebooleanIndica si los parámetros de consulta han cambiado.

Usos

  • Uso básico
const { query, setQuery } = useQuery();
setQuery({ search: "example" });
  • Agregar nuevos parámetros
const { onConcatQuery } = useQuery();
onConcatQuery({ page: 2 });
  • Eliminar un parámetro
const { onDeleteQuery } = useQuery();
onDeleteQuery("search");
  • Definir un formato personalizado
const { query } = useQuery<{ customParam: string }>({
  parseQuery: (data) => ({
    customParam: data?.customParam ?? "",
  }),
});