In diesem Beitrag möchte ich die Geschichte hinter der Entwicklung von Zustand erzählen. Um genau zu sein, ich war nicht der ursprüngliche Autor von Zustand, und als Zustand v0 geboren wurde, entwickelte ich andere globale Staatsbibliotheken, insbesondere React-Tracked. Übrigens betrachte ich mich mittlerweile als (Zweit-)Autor von Zustand.
Ich habe meinen Tweet mit der Erwähnung von „Zustand“ gefunden und ihn mit anderen Bibliotheken, einschließlich meiner, verglichen.
Zu diesem Zeitpunkt war ich davon überzeugt, dass der globale Status über React Context übergeben werden sollte, damit er im React Concurrent Mode funktioniert. Also habe ich eine Vergleichstabelle erstellt, um meine Bibliothek von anderen zu unterscheiden, und „Zustand“ war eine davon. Das war im Jahr 2019.
Im Jahr 2020 bin ich der Poimandres-Gruppe beigetreten und habe die Entwicklung von Zustand übernommen. Mein Interesse bestand damals darin, globale Staatsbibliotheken mit dem React Concurrent Mode zum Laufen zu bringen. Es war nicht möglich, den vollen Nutzen aus dem gleichzeitigen Modus zu ziehen, aber es gab eine experimentelle API namens useMutableSource, um den globalen Status mit dem gleichzeitigen Modus kompatibel zu machen.
Ich habe mit einer auf React Context basierenden Lösung mit React-Tracked mit vielen Dingen experimentiert und mich gefragt, was wir mit dem globalen Status ohne React Context machen könnten. Der Zustand war ein Jahr alt, aber niemand hat ihn gewartet. Also beschloss ich, es zu übernehmen.
Die experimentelle useMutableSource-API war noch nicht fertig, daher bestand die erste Aufgabe darin, verschiedene Dinge zu aktualisieren und einige Fehler zu beheben. Dies war die Geburtsstunde von Zustand v3. Ich hatte gehofft, bald Version 4 mit useMutableSource zu veröffentlichen, aber das ist nicht geschehen. Dahinter steckt noch eine andere Geschichte.
Heutzutage ist es ein bekanntes Muster, den globalen Zustand außerhalb zu haben und optional React Context zu verwenden, um seinen Speicher zu übergeben. Zustand war ein Pionier in diesem Muster. Die Leute waren sehr skeptisch, den globalen Zustand nicht im React Context zu haben, und es fiel uns schwer zu erklären, dass es sich um ein gültiges Muster handelt.
Eines der Dinge, die mir bei Zustand wichtig sind, ist die einfache Implementierung und die geringe Paketgröße. Wenn Sie sich den Quellcode ansehen, werden Sie feststellen, dass es sich dabei lediglich um die Verwendung von React-Hooks mit einer minimalen Store-Implementierung handelt.
Zum Zeitpunkt des Schreibens ist Zustand v4 die neueste Version, die über eine sehr erweiterte TypeScript-Unterstützung verfügt, und der Code wurde gegenüber v3 fast vollständig neu geschrieben. Wir haben Zustand v5 fast bereit für die nächste Veröffentlichung.
Zu guter Letzt gibt es mehrere Mitwirkende, die dieses Projekt pflegen. Als ich das Projekt übernahm, hatte ich nicht damit gerechnet, dass das passieren würde. Ich bin sehr dankbar dafür. Vielen Dank an alle. <script> // Detect dark theme var iframe = document.getElementById('tweet-1141004414129324032-562'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1141004414129324032&theme=dark" } </script>
Das obige ist der detaillierte Inhalt vonWie der Zustand geboren wurde. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!