Verwenden von Formik, um Formulare in React zu verarbeiten
Apr 07, 2025 am 10:00 AMWebformulare sind für Websites und Anwendungen unerl?sslich. W?hrend native HTML -Formulare grundlegende Funktionen bieten, kann es komplex werden, ihren Zustand, ihre Validierung und die Einreichung zu verwalten. React mit seinem komponentengetriebenen Ansatz vereinfacht die Form des Formulars, kann jedoch zu einem ausführlichen Code führen. Formik, eine leichte Bibliothek, befasst sich elegant mit diesen Herausforderungen und vereinfacht das Staatsmanagement, die Validierung und die Einreichung.
Dieser Artikel zeigt, dass ein React -Formular mit Formik erstellt wird und seine F?higkeiten für den Umgang mit Zustand, Validierung und Einreichung zeigt. Wir beginnen mit einer grundlegenden React -Komponente und integrieren dann Formik.
Aufbau eines kontrollierten React -Formulars
React -Komponenten verlassen sich auf Zustand und Requisiten. HTML -Formelemente behalten den internen Zustand durch ihr value
bei. Dies macht sie unkontrollierte Komponenten - das DOM verwaltet den Staat. Controllierte Komponenten, in denen React den Zustand verwaltet, bieten jedoch eine bessere Kontrolle und eine einzige Quelle der Wahrheit.
Eine einfache unkontrollierte HTML -Form k?nnte so aussehen:
<div class="formRow"> <label for="email">E-Mail-Adresse</label> <input type="email" id="email"> </div> <div class="formRow"> <label for="password">Passwort</label> <input type="password" id="password"> </div> <button type="submit">Einreichen</button>
Umwandlung in einer kontrollierten React -Komponente:
Funktion htmlform () { const [E -Mail, setemail] = react.ussestate (""); const [password, setPassword] = react.usestate (""); zurückkehren (); }
Dieser Ansatz bietet eine einzige Quelle der Wahrheit für Formwerte und erm?glicht eine einfachere Validierung und Leistungsoptimierung.
Warum Formik w?hlen?
Für React (z. B. React Hook Form, Redux Form) existieren zahlreiche Formmanagementbibliotheken. Formik unterscheidet sich durch:
- Deklarativer Ansatz: Abstraktion vereinfacht den Zustand, die Validierung und die Einreichung.
- Escape Hatch: Bietet bei Bedarf trotz seiner Abstraktion.
- Co-Located-Status: H?lt die formbezogene Logik innerhalb der Komponente.
- Anpassungsf?higkeit: Erm?glicht die Verwendung von so viel oder so wenig Formik wie erforderlich.
- Benutzerfreundlichkeit: Einfach und effektiv.
Lassen Sie uns Formik in unsere Formkomponente integrieren.
Implementierung von Formik
Wir erstellen ein grundlegendes Anmeldeformular und untersuchen drei Methoden der Nutzung von Formik:
-
useFormik
-Haken - Formik mit React -Kontext (
<formik></formik>
) -
withFormik
-Komponente h?herer Ordnung
Eine Demo erfordert Formik- und Yup -Pakete.
Methode 1: useFormik
-Haken
Unsere aktuelle Form ist nicht funktionsf?hig. Der useFormik
-Hook bietet Formik -Funktionen und Variablen. Das Protokollieren des zurückgegebenen Werts zeigt seinen Inhalt.
Wir werden useFormik
mit initialValues
??und einem onSubmit
-Handler verwenden:
// Komponente reagieren Funktion baseformik () { const formik = useFormik ({{ InitialValues: {E -Mail: "", Passwort: ""}, OnSubmit (Werte) { // Einreichungslogik Formulierung } }); zurückkehren (); }
Bindungsformik zur Bildung von Elementen:
// Komponente reagieren Funktion baseformik () { const formik = useFormik ({{ InitialValues: {E -Mail: "", Passwort: ""}, OnSubmit (Werte) { // Einreichungslogik Formulierung } }); zurückkehren (); }
Diese übermittlung ( onSubmit={formik.handleSubmit}
) und Eingabestatus ( value
, onChange
über formik.getFieldProps
). Wir vermeiden das manuelle Staatsmanagement und die Event -Handhabung. Destructuring getFieldProps
und handleSubmit
verbessert die Code -Klarheit weiter.
Der<formik></formik>
Die Komponente bietet eine weitere Abstraktion mit integrierten Komponenten wie<field></field>
Anwesend<form></form>
, Und<errormessage></errormessage>
. Diese Komponenten verwenden das Muster der Render -Requisiten.
Import {Formik, Feld, Form} aus 'Formik'; Funktion formikrenderProps () { const initialValues ??= {E -Mail: "", Passwort: ""}; const onSubmit = (values) => { Alert (json.Stringify (Werte, Null, 2)); }; zurückkehren ( <formik initialvalues="{initialValues}" onsubmit="{onSubmit}"> {() => ( <form> <field classname="email formField" name="email" type="email"></field> {/ * ... andere Formelemente */} </form> )} </formik> ); }
Formik behandelt den Zustand und die Unterwerfung; Wir konzentrieren uns auf die Formstruktur.
Formularvalidierung mit Formik
Formik bietet eine Validierung auf Formularebene (unter Verwendung von validate
oder validationSchema
), Feldebene oder mit manuellen Ausl?sern. Die Validierung auf Formularebene validiert das gesamte Formular gleichzeitig. validate
dient zur benutzerdefinierten Validierung, w?hrend validationSchema
eine Bibliothek wie Yup verwendet.
Beispiel mit validieren: validate
:
const formik = useFormik ({{ // ... validieren: () => { const errors = {}; if (! Formik. } // ... andere Validierungen Rückgabefehler; }, // ... });
Beispiel unter Verwendung von validationSchema
mit YUP:
const formik = useFormik ({{ // ... ValidationSchema: yup.object (). Form ({{{{{ E -Mail: yup.string (). E -Mail ("Ungültige E -Mail"). Erforderlich ("erforderlich"), // ... andere Validierungen }), // ... });
Feldebene und manuelle Validierung sind ebenfalls m?glich.
Methode 3: Komponente withFormik
h?herer Ordnung
withFormik
ist eine Komponente h?herer Ordnung, die Ihre Form-Komponente umhüllt.
Praktische Beispiele
Veranschaulichen Sie das Anzeigen von Fehlermeldungen und das Generieren eines Benutzernamens.
Fehlermeldungen anzeigen
Formik vereinfacht die Fehleranzeige. überprüfen Sie das errors
und zeigen Sie Nachrichten an:
<label htmlfor="email"> E-Mail-Adresse {Formik.touched.email && Formik.Erors.email} </label>
Oder verwenden<errormessage></errormessage>
:
<errormessage name="email"></errormessage>
Einen Benutzernamen generieren
setValues
??von Formik k?nnen verwendet werden, um einen Benutzernamen aus der E -Mail zu generieren:
OnSubmit (Werte) { Formik.SetValues ??({... Werte, Benutzername: `$ $ {values.email.split ("@") [0]}`}); }
Abschluss
Formik vereinfacht die React Form -Handhabung erheblich. Dieser Artikel behandelt die Grundlagen; Entdecken Sie die Dokumentation von Formik für fortschrittliche Funktionen und Anwendungsf?lle.
Das obige ist der detaillierte Inhalt vonVerwenden von Formik, um Formulare in React zu verarbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

CSS -Bl?cke Seitenrenderung, da Browser inline und externe CSS standardm??ig als wichtige Ressourcen anzeigen, insbesondere mit importierten Stylesheets, Header gro?er Mengen an Inline -CSS und nicht optimierten Medienfragestilen. 1. extrahieren kritische CSS und einbetten Sie es in HTML ein; 2. Verz?gerung des Ladens nichtkritischer CSS durch JavaScript; 3.. Verwenden Sie Medienattribute, um das Laden wie Druckstile zu optimieren. 4. Komprimieren und verschmelzen CSS, um Anfragen zu reduzieren. Es wird empfohlen, Tools zum Extrahieren von Schlüssel -CSS zu verwenden, REL = "Vorspannung" zu kombinieren, und verwenden Sie die asynchrone Belastung und verwenden Sie die Medienverz?gerungsladeverletzung, um eine überm??ige Aufteilung und eine komplexe Skriptsteuerung zu vermeiden.

ThebestApproachforcssDependsonTheProject'Sspecificneeds.forlargerProjects, externalcssisbetterDuetomaintainability;

Csssmostlycase-unempfindlich, buturlsandfontfamilynamesarecase-sensitiv.1) Eigenschaften und ValueslikeColor: rot; sensitiv.2) URLSMUTMATTHESERVER'SCASE, z.

AutoPrefixer ist ein Tool, das die Pr?fixe von Anbietern automatisch zu CSS -Attributen basierend auf dem Zielbrowserbereich hinzufügt. 1. Es l?st das Problem, die Pr?fixe mit Fehlern manuell aufrechtzuerhalten. 2. Arbeiten Sie das POSTCSS-Plug-in-Formular durch, analysieren Sie CSS, analysieren Sie Attribute, die vorangestellt werden müssen, und generieren Sie den Code gem?? Konfiguration. 3.. 4. Notizen enthalten nicht manuelles Hinzufügen von Pr?fixen, Konfigurationsaktualisierungen, Pr?fixe nicht alle Attribute, und es wird empfohlen, sie mit dem Pr?prozessor zu verwenden.

CSSCOUNTERSCANATOMATIONSNUMBERSEctions und.1) usecounter-resettoinitialize, counter-IncrementtoIncrease, und Counter () orcounters () todisplayValues.2) kombinierte withjavascriptfordynamiccontentToEsSureAccurateupdates.

In CSS sind Selektor- und Attributnamen fallempfindlich, w?hrend Werte, Namen, URLs und benutzerdefinierte Attribute fallempfindlich sind. 1. Die Auswahl- und Attributnamen sind unempfindlich, z. B. Hintergrundfarbe und Hintergrundfarbe sind gleich. 2. Die hexadezimale Farbe im Wert ist fallempfindlich, aber die benannte Farbe ist fallempfindlich, wie rot und rot ist ungültig. 3. Die URLs sind fallsempfindlich und k?nnen zu Ladeproblemen von Dateien führen. 4. Benutzerdefinierte Eigenschaften (Variablen) sind fallempfindlich und Sie müssen auf die Konsistenz des Falles bei der Verwendung achten.

Theconic-Gradient () FunctionincsScreateScircular GradecentStroTRotateColorStopsaroundAcentralPoint.1.ISISIDEALFORPieCharts, Fortschrittsindikatoren, Farbw?sche und DecorativeBackgrounds.2
