Desarrollo de la Funcionalidad de Búsqueda
Teoría
Antes de implementar la funcionalidad de búsqueda, es fundamental comprender estos hooks del cliente.
useSearchParams;- Permite acceder a los parámetros actuales de la URL;
- Ejemplo: Para la URL
/dashboard/invoices?page=1&query=pending, proporciona{page: '1', query: 'pending'}.
usePathname;- Lee el pathname actual de la URL;
- Ejemplo: Para la ruta
domain/dashboard/invoices,usePathnameretorna"/dashboard/invoices".
useRouter.- Facilita la navegación entre rutas dentro de componentes cliente, ofreciendo múltiples métodos.
Resumen de los pasos de implementación:
- Capturar la entrada del usuario;
- Actualizar la URL con los parámetros de búsqueda;
- Mantener la URL sincronizada con el campo de entrada;
- Actualizar la tabla para reflejar la consulta de búsqueda.
Volver al proyecto
1. Captura de la entrada del usuario
- Abrir el componente
Search(app/ui/search.tsx); - Observar el uso de
'use client', lo que indica la disponibilidad de listeners de eventos y hooks; - Utilizar la función
handleSearch, que se activa en cada cambio de entrada.
Después de implementar, abre la Consola de Desarrollador en tu navegador. Deberías ver cualquier texto ingresado en el campo de entrada reflejado en la consola del navegador.
2. Actualizar la URL con parámetros de búsqueda
- Importar el hook
useSearchParamsdesde'next/navigation'y asignarlo a una variable; - Dentro de la función
handleSearch, crear una nueva instancia deURLSearchParamsutilizando la variable previamente definida (searchParams). Esta utilidad proporciona métodos para manipular los parámetros de consulta de la URL; - Establecer la cadena de parámetros según la entrada del usuario. Si la entrada está vacía, eliminarla;
- Utilizar los hooks
useRouteryusePathnamede'next/navigation'y emplear el métodoreplacedeuseRouter()dentro dehandleSearch.${pathname}representa la ruta actual, por ejemplo,"/dashboard/invoices";- A medida que el usuario escribe en la barra de búsqueda,
params.toString()convierte la entrada en un formato compatible con la URL; replace(${pathname}?${params.toString()})actualiza la URL con los datos de búsqueda del usuario (por ejemplo,/dashboard/invoices?query=qwerty).
La URL se actualiza sin recargar la página, gracias a la navegación del lado del cliente de Next.js.
Después de la implementación, cualquier texto ingresado en el campo de entrada se reflejará en la URL.
3. Mantener la URL sincronizada con el campo de entrada
Para asegurar que el campo de entrada coincida con la URL y se complete al compartirla, utilizar defaultValue leyendo desde searchParams.
4. Actualizar la tabla para reflejar la consulta de búsqueda
Finalmente, se actualiza el componente Table para reflejar la consulta de búsqueda. Los componentes de página aceptan una prop llamada searchParams. Pase los parámetros actuales de la URL al componente <Table>.
No olvide descomentar el componente Table.
¡Excelente! Ha añadido correctamente la funcionalidad de búsqueda a su aplicación. Pruébelo, ¿funciona? 😊
En el próximo capítulo, se abordará la paginación, ya que actualmente solo se muestran 6 facturas en la página.
En la práctica
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.08
Desarrollo de la Funcionalidad de Búsqueda
Desliza para mostrar el menú
Teoría
Antes de implementar la funcionalidad de búsqueda, es fundamental comprender estos hooks del cliente.
useSearchParams;- Permite acceder a los parámetros actuales de la URL;
- Ejemplo: Para la URL
/dashboard/invoices?page=1&query=pending, proporciona{page: '1', query: 'pending'}.
usePathname;- Lee el pathname actual de la URL;
- Ejemplo: Para la ruta
domain/dashboard/invoices,usePathnameretorna"/dashboard/invoices".
useRouter.- Facilita la navegación entre rutas dentro de componentes cliente, ofreciendo múltiples métodos.
Resumen de los pasos de implementación:
- Capturar la entrada del usuario;
- Actualizar la URL con los parámetros de búsqueda;
- Mantener la URL sincronizada con el campo de entrada;
- Actualizar la tabla para reflejar la consulta de búsqueda.
Volver al proyecto
1. Captura de la entrada del usuario
- Abrir el componente
Search(app/ui/search.tsx); - Observar el uso de
'use client', lo que indica la disponibilidad de listeners de eventos y hooks; - Utilizar la función
handleSearch, que se activa en cada cambio de entrada.
Después de implementar, abre la Consola de Desarrollador en tu navegador. Deberías ver cualquier texto ingresado en el campo de entrada reflejado en la consola del navegador.
2. Actualizar la URL con parámetros de búsqueda
- Importar el hook
useSearchParamsdesde'next/navigation'y asignarlo a una variable; - Dentro de la función
handleSearch, crear una nueva instancia deURLSearchParamsutilizando la variable previamente definida (searchParams). Esta utilidad proporciona métodos para manipular los parámetros de consulta de la URL; - Establecer la cadena de parámetros según la entrada del usuario. Si la entrada está vacía, eliminarla;
- Utilizar los hooks
useRouteryusePathnamede'next/navigation'y emplear el métodoreplacedeuseRouter()dentro dehandleSearch.${pathname}representa la ruta actual, por ejemplo,"/dashboard/invoices";- A medida que el usuario escribe en la barra de búsqueda,
params.toString()convierte la entrada en un formato compatible con la URL; replace(${pathname}?${params.toString()})actualiza la URL con los datos de búsqueda del usuario (por ejemplo,/dashboard/invoices?query=qwerty).
La URL se actualiza sin recargar la página, gracias a la navegación del lado del cliente de Next.js.
Después de la implementación, cualquier texto ingresado en el campo de entrada se reflejará en la URL.
3. Mantener la URL sincronizada con el campo de entrada
Para asegurar que el campo de entrada coincida con la URL y se complete al compartirla, utilizar defaultValue leyendo desde searchParams.
4. Actualizar la tabla para reflejar la consulta de búsqueda
Finalmente, se actualiza el componente Table para reflejar la consulta de búsqueda. Los componentes de página aceptan una prop llamada searchParams. Pase los parámetros actuales de la URL al componente <Table>.
No olvide descomentar el componente Table.
¡Excelente! Ha añadido correctamente la funcionalidad de búsqueda a su aplicación. Pruébelo, ¿funciona? 😊
En el próximo capítulo, se abordará la paginación, ya que actualmente solo se muestran 6 facturas en la página.
En la práctica
¡Gracias por tus comentarios!