Jedes etablierte Projekt sollte eine Philosophie haben, die seine Entwicklung leitet. Ohne eine Kernphilosophie kann die Entwicklung in endlosen Entscheidungsfindungen verkümmern und als Ergebnis schwächere APIs haben.
Dieses Dokument beschreibt die Kernprinzipien, die die Entwicklung und den Funktionsumfang von TanStack Form antreiben.
APIs sind mit Kompromissen verbunden. Daher kann es verlockend sein, jeden Kompromiss durch verschiedene APIs für den Benutzer verfügbar zu machen. Dies kann jedoch zu einer fragmentierten API führen, die schwieriger zu lernen und zu verwenden ist.
Auch wenn dies eine höhere Lernkurve bedeuten mag, bedeutet es, dass Sie sich nicht fragen müssen, welche API intern verwendet werden soll, oder einen höheren kognitiven Aufwand beim Wechsel zwischen APIs haben.
TanStack Form ist flexibel und anpassbar konzipiert. Während viele Formulare ähnlichen Mustern folgen können, gibt es immer Ausnahmen; insbesondere wenn Formulare eine Kernkomponente Ihrer Anwendung sind.
Daher unterstützt TanStack Form mehrere Methoden zur Validierung
In einer Welt, in der kontrollierte vs. unkontrollierte Eingaben ein heißes Thema sind, ist TanStack Form fest im kontrollierten Lager angesiedelt.
Dies hat eine Reihe von Vorteilen
Sie sollten niemals ein Generic übergeben oder einen internen Typ verwenden müssen, wenn Sie TanStack Form nutzen. Dies liegt daran, dass wir die Bibliothek so konzipiert haben, dass alles aus Laufzeitstandards abgeleitet wird.
Wenn Sie ausreichend korrekten TanStack Form-Code schreiben, sollten Sie keinen Unterschied zwischen JavaScript- und TypeScript-Nutzung feststellen können, mit Ausnahme von Typumwandlungen, die Sie möglicherweise von Laufzeitwerten durchführen.
Anstatt
useForm<MyForm>()
useForm<MyForm>()
Sie sollten tun
interface Person {
name: string
age: number
}
const defaultPerson: Person = { name: 'Bill Luo', age: 24 }
useForm({
defaultValues: defaultPerson,
})
interface Person {
name: string
age: number
}
const defaultPerson: Person = { name: 'Bill Luo', age: 24 }
useForm({
defaultValues: defaultPerson,
})
Eines der Hauptziele von TanStack Form ist, dass Sie es in Ihr eigenes Komponentensystem oder Designsystem integrieren sollten.
Um dies zu unterstützen, haben wir eine Reihe von Dienstprogrammen, die den Aufbau eigener Komponenten und angepasster Hooks erleichtern
// Exported from your own library with pre-bound components for your forms.
export const { useAppForm, withForm } = createFormHook(/* options */)
// Exported from your own library with pre-bound components for your forms.
export const { useAppForm, withForm } = createFormHook(/* options */)
Wenn Sie dies nicht tun, fügen Sie Ihren Apps erheblich mehr Boilerplate hinzu und machen Ihre Formulare inkonsistenter und weniger benutzerfreundlich.
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.