Heim Web-Frontend js-Tutorial Erfinden Sie das Rad nicht neu! Oder Hilfsbibliotheken für Vue- und React-Anwendungen

Erfinden Sie das Rad nicht neu! Oder Hilfsbibliotheken für Vue- und React-Anwendungen

Jul 17, 2024 pm 05:28 PM

Don’t reinvent the wheel! Or utility libraries for Vue and React applications

Einführung

Viele Entwickler versuchen oft herauszufinden, wie sie diese oder jene Funktion ausführen können, wenn es um Standardfunktionen von Webanwendungen geht, zum Beispiel: Speichern und Verwalten von booleschen Werten, Behandeln gedrückter Tasten oder Erstellen von Steppern, und noch häufiger finden sie einen Weg, dies zu tun Implementieren Sie die Funktionalität von Grund auf.

Es besteht keine Notwendigkeit, das Rad neu zu erfinden!

Ersteller und Benutzer von Bibliotheken mit wiederverwendbaren Funktionen für verschiedene Frameworks (React, Vue usw.) betrachten diesen Ansatz mit einer solchen Reaktion.

Für Vue ist es zum Beispiel vueuse. (Vue-Dienstprogrammfunktionen)

Für React ist das Beste heute das brandneue und aktiv unterstützte Reactuse (für React Hooks)

Welches Problem lösen diese Bibliotheken?

Sie werden benötigt, um das Leben für Entwickler weniger herausfordernd zu machen. Bereiten Sie im Voraus alle möglichen Funktionen vor, die der Entwickler für seine Arbeit benötigen könnte. Wenn er ein vorgefertigtes Paket verwendet, spart er zumindest Zeit und minimiert höchstens die Wahrscheinlichkeit, dass sein Fehler oder Bug im Code gefunden wird, da jede Funktion separat getestet wird. Der Anwendungsfall ist tatsächlich riesig. Mit Hilfe solcher Bibliotheken können Sie zum Beispiel:

  1. Web-Sockets verwenden
  2. Anfragen stellen
  3. Geolokalisierung des Benutzers ermitteln
  4. localStorage verwenden
  5. einfach modale Fenster erstellen

Und das ist nur ein kleiner Teil aller möglichen Fälle.

Warum ist VueUse cool?

VueUse ist eine der beliebtesten Bibliotheken dieser Art für Vue. Schließlich bietet es die grundlegendste wiederverwendbare Funktionalität. Manche Leute glauben, dass es sich bei der Erstellung von Vue-Anwendungen um einen Standard handelt und dass es ohne ihn unmöglich ist, ihn zu erstellen. Da kann man kaum widersprechen, die Bibliothek besteht aus mehr als zweihundert Funktionen und folgt der oben beschriebenen Ideologie.

Beste Alternative für React

Während wir Vueuse als den besten Weg zur perfekten Umsetzung einer großartigen Idee loben, sollten wir die Top 1 der js-Bibliotheken/Frameworks nicht vergessen – React. Und hier war die Situation noch unangenehmer. Schließlich gibt es keine etablierte, zuverlässige, umfangreiche und einzige Bibliothek für React. Es gab einige Versuche von verschiedenen Entwicklern, aber in einem davon gibt es zu wenige Hooks (in React sind es Hooks, ja), irgendwo gibt es Hooks, die mit einer unverarbeiteten API erstellt wurden.

Um die Situation zu verbessern und als Alternative zu Vueuse, aber in React, kam Reactuse.

Nehmen wir zum Beispiel den Versuch, eine Listenverwaltung mit Hilfe einer Bibliothek zu erstellen und nur Vanilla React zu verwenden.

import { useList } from "@siberiacancode/reactuse";

function App() {
  const { value, set, push, removeAt, insertAt, updateAt, clear, reset } =
    useList(["Pink Floyd", "Led Zeppelin"]);
}
export default App;

Wir erhalten Wert (Array-Wert), Set (Funktion zum Zuweisen eines anderen Array-Werts), Push (Funktion zum Hinzufügen von Werten zum Array), RemoveAt (Löschen nach Index), UpdateAt (Wert nach Index ändern), Clear (Löschen). das Array), zurücksetzen (auf Standardwert zurücksetzen)
Jetzt reagiert der Code, um alle diese Zustände und Funktionen auf Vanilla zu erhalten:

const [value, setValue] = useState<string[]>(["Pink Floyd", "Led Zeppelin"]);
  const [initialValue] = useState<string[]>(["Pink Floyd", "Led Zeppelin"]);
  const set = (newValue: string[]) => {
    setValue(newValue);
  };
  const push = (valueToPush: string) => {
    setValue((prevArray) => [...prevArray, valueToPush]);
  };
  const removeAt = (index: number) => {
    setValue((prevArray) => [
      ...prevArray.slice(0, index),
      ...prevArray.slice(index + 1),
    ]);
  };
  const insertAt = (index: number, item: "string") =>
    setValue((l) => [...l.slice(0, index), item, ...l.slice(index)]);

  const updateAt = (index: number, newValue: string) => {
    setValue((prevList) =>
      prevList.map((element, index) => (index === index ? newValue : element))
    );
  };

  const clear = () => setValue([]);
  const reset = () => setValue(initialValue);

Und wir erhalten genau die gleichen Methoden und den gleichen Zustand. Und der Code ist viel kleiner und einfacher

Die Bibliothek wird aktiv gepflegt, neue Hooks werden hinzugefügt, es gibt eine praktische Website mit Dokumentation, die Hooks verwenden einfache Quellen und verfügen über eine ausgefeiltere API. Mittlerweile sind mehr als 80 Hooks implementiert. Ich möchte auch darauf hinweisen, dass es absolut neue Implementierungen gibt, die ich sonst nirgendwo gesehen habe:

  • usePaint – zum Erstellen einer Leinwand zum Zeichnen darauf. Sie legen die Leinwand fest und mit dem Haken können Sie darauf zeichnen, die Größe des Pinsels, die Farbe, die Deckkraft und den Status „Zeichnen“ oder „Jetzt zeichnen“ anpassen
  • useStopwatch – zum Erstellen von Stoppuhren
  • verwenden Sie EyeDropper – um die Pipette zur Farbauswahl zu verwenden
  • Riesige Anzahl von Hooks für die Arbeit mit Benutzergerät oder Browser-API (useMemory, useOperatingSystem, useClipboard, useBrowserLanguage, useHash usw.)

Abschluss

Solche Bibliotheken sollten zu einem Entwicklungsstandard werden, nur weil sie es Ihnen ermöglichen, sich nicht auf die kleinen Details zu konzentrieren, die bereits vor langer Zeit erfunden wurden, sondern sie einfach zu importieren und zu verwenden.

Reactuse-Links

npm – github

Das obige ist der detaillierte Inhalt vonErfinden Sie das Rad nicht neu! Oder Hilfsbibliotheken für Vue- und React-Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1535
276
Erweiterte JavaScript -Bereiche und Kontexte Erweiterte JavaScript -Bereiche und Kontexte Jul 24, 2025 am 12:42 AM

Der Umfang von JavaScript bestimmt den Zugangsumfang von Variablen, die in globale, Funktions- und Blockebene unterteilt sind. Der Kontext bestimmt die Richtung davon und hängt von der Funktionsaufrufmethode ab. 1. Scopes umfassen globaler Umfang (überall zugänglich), Funktionsumfang (nur innerhalb der Funktion gültig) und Blockebene (LET und const sind innerhalb von {} gültig). 2. Der Ausführungskontext enthält das variable Objekt, die Bereichskette und die Werte davon. Dies weist auf globale oder undefinierte in der normalen Funktion hin, die Methode richtet sich auf das Anrufobjekt, der Konstruktor auf das neue Objekt und kann auch explizit durch Anruf/Anwendung/Bindung angegeben werden. 3.. Verschluss bezieht sich auf Funktionen, die auf externe Bereiche zugreifen und sich erinnern. Sie werden häufig zur Kapselung und zum Cache verwendet, können aber verursachen

Erforschen der Typ -Zwangsregeln in JavaScript Erforschen der Typ -Zwangsregeln in JavaScript Jul 21, 2025 am 02:31 AM

Das Typ -Casting ist das Verhalten der automatischen Konvertierung eines Werttyps in einen anderen Typ in JavaScript. Zu den allgemeinen Szenarien gehören: 1. Bei Verwendung von Operatoren, wenn eine Seite eine String ist, wird die andere Seite ebenfalls in eine Zeichenfolge konvertiert, wie z. B. '5' 5. Das Ergebnis ist "55"; 2. Im booleschen Kontext werden nicht-Boolenische Werte implizit in boolesche Typen wie leere Zeichenfolgen, 0, Null, undefined usw. konvertiert, die als falsch angesehen werden; 3.. Null nimmt an numerischen Operationen teil und wird in 0 umgewandelt, und undefined wird in NAN umgewandelt. 4. Die durch implizite Umwandlung verursachten Probleme können durch explizite Konvertierungsfunktionen wie Nummer (), String () und Boolean () vermieden werden. Das Beherrschen dieser Regeln hilft

Vue 3 -Kompositions -API gegen Optionen API: Ein detaillierter Vergleich Vue 3 -Kompositions -API gegen Optionen API: Ein detaillierter Vergleich Jul 25, 2025 am 03:46 AM

Die Kompositionapi in VUE3 eignet sich besser für komplexe Logik- und Typableitung, und Optionsapi eignet sich für einfache Szenarien und Anfänger. 1. Optionsapi organisiert Code nach Optionen wie Daten und Methoden und hat eine klare Struktur, aber komplexe Komponenten werden fragmentiert. 2. Die Zusammensetzung verwendet ein Setup, um die verwandte Logik zu konzentrieren, die der Wartung und Wiederverwendung förderlich ist. 3. Compositionapi realisiert konfliktfreie und parameterizierbare logische Wiederverwendung durch komponierbare Funktionen, was besser ist als Mixin; 4. COMPOSECTI hat eine bessere Unterstützung für Typscript und eine genauere Typableitung; 5. Es gibt keinen signifikanten Unterschied in der Leistung und des Verpackungsvolumens der beiden; 6.

Mastering JavaScript -Parallelitätsmuster: Webarbeiter vs. Java -Threads Mastering JavaScript -Parallelitätsmuster: Webarbeiter vs. Java -Threads Jul 25, 2025 am 04:31 AM

Es gibt einen wesentlichen Unterschied zwischen den Webworkers und Javatheads von JavaScript in der gleichzeitigen Verarbeitung. 1. JavaScript nimmt ein Single-Thread-Modell an. Webworker ist ein unabhängiger Thread, der vom Browser bereitgestellt wird. Es ist geeignet, zeitaufwändige Aufgaben auszuführen, die die Benutzeroberfläche nicht blockieren, aber das DOM nicht bedienen können. 2. Java unterstützt echtes Multithreading von der Sprachebene, die über die Thread-Klasse erstellt wurde und für eine komplexe gleichzeitige Logik und die serverseitige Verarbeitung geeignet ist. 3.. Webworker verwenden Postmessage (), um mit dem Hauptfaden zu kommunizieren, der sehr sicher und isoliert ist. Java -Threads können Speicher teilen, sodass Synchronisierungsprobleme aufmerksam werden müssen. V.

Erstellen eines CLI -Tools mit Node.js Erstellen eines CLI -Tools mit Node.js Jul 24, 2025 am 03:39 AM

Initialisieren Sie das Projekt und erstellen Sie Package.json; 2. Erstellen Sie einen Eintragskriptindex.js mit Shebang; 3.. Registrieren Sie Befehle über Bin Fields in package.json; 4. Verwenden Sie Yargs und andere Bibliotheken, um die Befehlszeilenparameter zu analysieren. 5. Verwenden Sie NPMLink Local Test; 6. Hilfe, Version und Optionen hinzufügen, um die Erfahrung zu verbessern. 7. optional über NPMPublish veröffentlichen; 8. optional automatischen Abschluss mit Yargs; Erstellen Sie schließlich praktische CLI -Tools durch angemessene Struktur und Benutzererfahrungsdesign, erstellen Sie Automatisierungsaufgaben oder verteilen Sie Widgets und enden Sie sie mit vollständigen Sätzen.

Wie erstelle ich Elemente in JS? Wie erstelle ich Elemente in JS? Jul 25, 2025 am 03:56 AM

Verwenden Sie document.createelement (), um neue Elemente zu erstellen; 2. Anpassen von Elementen durch TextContent, Classlist, SetAttribute und andere Methoden; 3.. Verwenden Sie appendChild () oder flexibler append () -Methoden, um dem DOM Elemente hinzuzufügen. V. Der vollständige Vorgang besteht darin, → Anpassen → Add zu erstellen, und Sie können den Seiteninhalt dynamisch aktualisieren.

Erweiterte bedingte Typen in Typenkripten Erweiterte bedingte Typen in Typenkripten Aug 04, 2025 am 06:32 AM

Die erweiterten Bedingungstypen von TypeScript implementieren logische Beurteilung zwischen den Typen über textendu? X: y syntax. Die Kernfähigkeiten spiegeln sich in den verteilten Bedingungstypen, den Abschluss -Inferenz und der Konstruktion komplexer Typ -Werkzeuge wider. 1. Der bedingte Typ ist in den Parametern mit nötigen Typen verteilt und kann den Gelenktyp automatisch aufteilen, z. 2.. Verwenden Sie die Verteilung, um Filter- und Extraktionsinstrumente zu erstellen: Ausschließen Typen über Textendsu? Nie: t, extrahieren Gemeinsamkeiten durch textendu? 3

Micro Frontends Architecture: Ein praktischer Implementierungshandbuch Micro Frontends Architecture: Ein praktischer Implementierungshandbuch Aug 02, 2025 am 08:01 AM

MicrofrontendsolvescalingchalenGesinlargeamsByenablingIndependentDevelopment und Deployment.1) ChooseanintegrationStrategy: Usemodulefederationsinwebpack5forruntImeloadingandtrueIndependenz, Bauzeitintegrationslimplations-, Orifrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/Webrahmen/webkConponents

See all articles