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ámetro | Tipo | Requerido | Default | Descripcion |
---|---|---|---|---|
ignoreQuerys | [id: keyof T] | no | Lista de claves de los parámetros de consulta que deben ser ignorados. | |
parseQuery | (data: ParsedUrlQuery) => T | no | Función para transformar los parámetros de consulta en el formato esperado. |
QueryDataDefault
Interfaz de los parámetros de consulta predeterminados.
Nombre | Descripcion | Default |
---|---|---|
id | ID único. | undefined |
search | Término de búsqueda. | '' |
searchAddress | Dirección de búsqueda. | '' |
tab | Nombre de la pestaña activa. | 'all' |
page | Página actual. | 0 |
npage | Número de elementos por página. | 10 |
totalpage | Total de páginas. | 100 |
allitems | Total de elementos. | 1000 |
start | Inicio del rango. | undefined |
end | Fin del rango. | undefined |
order | Orden de los elementos. | undefined |
orderBy | Campo por el cual ordenar. | undefined |
exportBy | Exportaciones adicionales. | [] |
Returns
Parametro | Tipo | Descripcion |
---|---|---|
load | boolean | Indica si el router está listo. |
query | T | Los parámetros de consulta actuales en formato T . |
setQuery | (query: T) => boolean | Función para sobrescribir los parámetros de consulta. |
onConcatQuery | (newQuery: T) => boolean | Función para agregar nuevos parámetros de consulta sin sobrescribir los existentes. |
onChangeQuery | (id: keyof T) => (value: T[keyof T]) => boolean | Devuelve una función que modifica un parámetro específico. |
onDeleteQuery | (id: keyof T) => boolean | Función para eliminar un parámetro de consulta específico. |
isChange | boolean | Indica 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 ?? "",
}),
});