Entwicklung der Suchfunktionalität
Theorie
Vor der Implementierung der Suchfunktion ist es wichtig, diese Client-Hooks zu verstehen.
useSearchParams;- Ermöglicht den Zugriff auf die aktuellen URL-Parameter;
- Beispiel: Für die URL
/dashboard/invoices?page=1&query=pendingliefert es{page: '1', query: 'pending'}.
usePathname;- Liest den aktuellen Pfadnamen der URL aus;
- Beispiel: Für die Route
domain/dashboard/invoicesgibtusePathname"/dashboard/invoices"zurück.
useRouter.- Erleichtert die Navigation zwischen Routen innerhalb von Client-Komponenten und bietet verschiedene Methoden.
Übersicht der Implementierungsschritte:
- Erfassen der Benutzereingabe;
- Aktualisieren der URL mit Suchparametern;
- Synchronisieren der URL mit dem Eingabefeld;
- Aktualisieren der Tabelle entsprechend der Suchanfrage.
Zurück zum Projekt
1. Erfassen der Benutzereingabe
- Öffnen der
Search-Komponente (app/ui/search.tsx); - Beachten der Verwendung von
'use client', was auf die Verfügbarkeit von Event-Listenern und Hooks hinweist; - Verwendung der Funktion
handleSearch, die bei jeder Änderung der Eingabe ausgelöst wird.
Nach der Implementierung die Entwicklerkonsole im Browser öffnen. Jeder eingegebene Text im Eingabefeld sollte in der Browser-Konsole angezeigt werden.
2. Aktualisieren der URL mit Suchparametern
- Importieren des
useSearchParams-Hooks aus'next/navigation'und Zuweisung zu einer Variablen; - Innerhalb der Funktion
handleSearchErstellen einer neuen Instanz vonURLSearchParamsunter Verwendung der zuvor definierten Variablen (searchParams). Dieses Hilfswerkzeug bietet Methoden zur Manipulation von URL-Query-Parametern; - Festlegen des Parameter-Strings basierend auf der Benutzereingabe. Bei leerer Eingabe wird der Parameter gelöscht;
- Verwendung der Hooks
useRouterundusePathnameaus'next/navigation'und Einsatz derreplace-Methode vonuseRouter()innerhalb vonhandleSearch.${pathname}steht für den aktuellen Pfad, z. B."/dashboard/invoices";- Während der Benutzer in die Suchleiste tippt, wandelt
params.toString()die Eingabe in ein URL-kompatibles Format um; replace(${pathname}?${params.toString()})aktualisiert die URL mit den Suchdaten des Benutzers (z. B./dashboard/invoices?query=qwerty).
Die URL wird ohne Seitenneuladen aktualisiert, dank der clientseitigen Navigation von Next.js.
Nach der Implementierung wird jeder in das Eingabefeld eingegebene Text in der URL widergespiegelt.
3. Synchronisierung der URL mit dem Eingabefeld
Um sicherzustellen, dass das Eingabefeld mit der URL übereinstimmt und beim Teilen ausgefüllt wird, sollte defaultValue durch Auslesen von searchParams verwendet werden.
4. Aktualisierung der Tabelle entsprechend der Suchanfrage
Abschließend wird die Table-Komponente aktualisiert, um die Suchanfrage widerzuspiegeln. Seitenkomponenten akzeptieren eine Prop namens searchParams. Übergeben Sie die aktuellen URL-Parameter an die <Table>-Komponente.
Vergessen Sie nicht, die Table-Komponente zu entkommentieren.
Großartig! Die Suchfunktion wurde erfolgreich zu Ihrer Anwendung hinzugefügt. Probieren Sie es aus – funktioniert alles? 😊
Im nächsten Kapitel beschäftigen wir uns mit der Paginierung, da aktuell nur 6 Rechnungen auf der Seite sichtbar sind.
In der Praxis
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain how the useSearchParams hook works in more detail?
How does the Table component use the query and currentPage props to filter data?
What should I do if the search input and URL are not staying in sync?
Awesome!
Completion rate improved to 2.08
Entwicklung der Suchfunktionalität
Swipe um das Menü anzuzeigen
Theorie
Vor der Implementierung der Suchfunktion ist es wichtig, diese Client-Hooks zu verstehen.
useSearchParams;- Ermöglicht den Zugriff auf die aktuellen URL-Parameter;
- Beispiel: Für die URL
/dashboard/invoices?page=1&query=pendingliefert es{page: '1', query: 'pending'}.
usePathname;- Liest den aktuellen Pfadnamen der URL aus;
- Beispiel: Für die Route
domain/dashboard/invoicesgibtusePathname"/dashboard/invoices"zurück.
useRouter.- Erleichtert die Navigation zwischen Routen innerhalb von Client-Komponenten und bietet verschiedene Methoden.
Übersicht der Implementierungsschritte:
- Erfassen der Benutzereingabe;
- Aktualisieren der URL mit Suchparametern;
- Synchronisieren der URL mit dem Eingabefeld;
- Aktualisieren der Tabelle entsprechend der Suchanfrage.
Zurück zum Projekt
1. Erfassen der Benutzereingabe
- Öffnen der
Search-Komponente (app/ui/search.tsx); - Beachten der Verwendung von
'use client', was auf die Verfügbarkeit von Event-Listenern und Hooks hinweist; - Verwendung der Funktion
handleSearch, die bei jeder Änderung der Eingabe ausgelöst wird.
Nach der Implementierung die Entwicklerkonsole im Browser öffnen. Jeder eingegebene Text im Eingabefeld sollte in der Browser-Konsole angezeigt werden.
2. Aktualisieren der URL mit Suchparametern
- Importieren des
useSearchParams-Hooks aus'next/navigation'und Zuweisung zu einer Variablen; - Innerhalb der Funktion
handleSearchErstellen einer neuen Instanz vonURLSearchParamsunter Verwendung der zuvor definierten Variablen (searchParams). Dieses Hilfswerkzeug bietet Methoden zur Manipulation von URL-Query-Parametern; - Festlegen des Parameter-Strings basierend auf der Benutzereingabe. Bei leerer Eingabe wird der Parameter gelöscht;
- Verwendung der Hooks
useRouterundusePathnameaus'next/navigation'und Einsatz derreplace-Methode vonuseRouter()innerhalb vonhandleSearch.${pathname}steht für den aktuellen Pfad, z. B."/dashboard/invoices";- Während der Benutzer in die Suchleiste tippt, wandelt
params.toString()die Eingabe in ein URL-kompatibles Format um; replace(${pathname}?${params.toString()})aktualisiert die URL mit den Suchdaten des Benutzers (z. B./dashboard/invoices?query=qwerty).
Die URL wird ohne Seitenneuladen aktualisiert, dank der clientseitigen Navigation von Next.js.
Nach der Implementierung wird jeder in das Eingabefeld eingegebene Text in der URL widergespiegelt.
3. Synchronisierung der URL mit dem Eingabefeld
Um sicherzustellen, dass das Eingabefeld mit der URL übereinstimmt und beim Teilen ausgefüllt wird, sollte defaultValue durch Auslesen von searchParams verwendet werden.
4. Aktualisierung der Tabelle entsprechend der Suchanfrage
Abschließend wird die Table-Komponente aktualisiert, um die Suchanfrage widerzuspiegeln. Seitenkomponenten akzeptieren eine Prop namens searchParams. Übergeben Sie die aktuellen URL-Parameter an die <Table>-Komponente.
Vergessen Sie nicht, die Table-Komponente zu entkommentieren.
Großartig! Die Suchfunktion wurde erfolgreich zu Ihrer Anwendung hinzugefügt. Probieren Sie es aus – funktioniert alles? 😊
Im nächsten Kapitel beschäftigen wir uns mit der Paginierung, da aktuell nur 6 Rechnungen auf der Seite sichtbar sind.
In der Praxis
Danke für Ihr Feedback!