Reagieren: Verwendung des ViewBox-Attributs
Veröffentlicht: 2023-02-10ViewBox ist ein Attribut eines SVG-Elements , mit dem Benutzer die Größe und Skalierung von Vektorgrafiken innerhalb eines Containers steuern können. Bei der Verwendung von ViewBox mit React müssen Entwickler die Abmessungen des Containers sowie das Attribut „konserveAspectRatio“ angeben. Das Attribut „konserveAspectRatio“ bestimmt, wie die Grafik in Größe und Position innerhalb des Containers positioniert wird. Entwickler können auch die Skalierung und Übersetzung der Grafik mit dem viewBox-Attribut steuern.
Um eine SVG-ViewBox zu erstellen, können Sie React Backstory verwenden. Die neue Version von Popmotion enthält eine generische Animationsbibliothek. Da Popmotion Framework-unabhängig ist, erstellen wir eine React-Ref und eine SVG-Datei, um Animationen zu optimieren. Dieser Beitrag geht auf eine Bibliothek ein, die Popmotion umschließt und React-spezifisch ist. Da einige Benutzer möglicherweise keine Animationen bevorzugen, können die Medienabfrage „bevorzugte Bewegungsreduzierung“ und der benutzerdefinierte React-Hook „useMedia“ verwendet werden, um festzustellen, ob diese Präferenz vorhanden ist. Wenn der Benutzer eine langsamere Animation bevorzugt, stoppen wir die Animation und setzen den Comic sofort auf seine ursprüngliche herauszoomende viewBox zurück; Andernfalls beginnen wir mit der Animation. Als zweite Alternative habe ich eine React-Animation mit einem Wrapper erstellt, der mit Popmotion funktioniert, und sie dann mit Framer Motion gerendert.
Sie können die viewBox auch auf automatisch setzen, wenn Sie Ihre *svg. Das Gesamtseitenverhältnis der viewBox wird vom Browser als Teil der Einstellung angepasst.
Ist Viewbox für SVG erforderlich?
ViewBox ist für SVG erforderlich. Es stellt ein Koordinatensystem für die grafischen Elemente bereit.
Als Ergebnis können wir jeden Container füllen, in dem sich unsere SVGs befinden, wie zum Beispiel: Sagen wir, wir haben ein kleines Vogelbild. Wenn eine ViewBox für dieses Bild richtig eingerichtet ist, wird die Containergröße auf die von diesem Bild angegebenen Abmessungen skaliert. Darüber hinaus bietet uns die viewBox die Möglichkeit, einen Teil eines Bildes zu verbergen, was sie für Animationen äußerst nützlich macht. Mit der viewBox können wir unsere Bilder viel effektiver zuschneiden. Mit dem Programm können wir eine Animation einer Wolke erstellen, die sich über den Himmel bewegt. Sie können dies animieren, indem Sie den min-x-Wert der viewBox ändern. Da "preserveRatioAspect" überwältigend sein kann, habe ich es in diesem Artikel weggelassen.
So ändern Sie die Größe von Bildern in HTML
In diesem Fall können Sie die Breiten- und Höhenattribute ändern, um sie an die gewünschte Größe anzupassen.
SVG Viewbox verwenden
Das viewBox-Attribut ist ein wichtiger Teil der SVG-Spezifikation . Es bietet eine großartige Möglichkeit, die Skalierung und Übersetzung eines SVG-Bildes zu steuern. Das Attribut viewBox kann für das Element oder für die Elemente oder verwendet werden. Wenn es für eines dieser Elemente verwendet wird, erstellt das viewBox-Attribut einen neuen Darstellungsbereich für den Inhalt des Elements.
ViewBox und viewPort sind Begriffe, die häufig in SVG verwendet werden. Die Funktion von ViewPort ähnelt der eines Bildes, das sich in einem Container befindet. Auf ViewBox kann über das Ansichtsfenster zugegriffen werden. Darüber hinaus können Sie die Größe ändern, indem Sie es nach links, rechts, oben und unten verschieben. Da die viewBox w/h kleiner als 300 x 500 wird, wird das Bild innerhalb des Ansichtsfensters kleiner (verkleinert). Die ViewBox x/y verschiebt das Bild nach rechts/unten innerhalb der viewBox-ViewBox-Breite/Höhe, und der gesamte Viewport kann vergrößert (div / p /) oder überlaufen (html / vi) werden. Wenn das Ansichtsfenster größer als ein Kartenspiel ist, verschiebt das Erhöhen der viewBox „x y…“-Zahlen das Müslischachtelbild nach oben/links.
SVG 101: Die Grundlagen
Der Prozess zum Erstellen von SVGs ist einfach, aber es gibt ein paar Dinge zu beachten. ViewsBox ist nicht in der realen Welt, da es auf 0-100 Einheiten basiert. Darüber hinaus ist das Koordinatensystem in 0–100 Einheiten anstatt in Pixeln definiert. Sie müssen die Größe der SVG-Datei in Pixel angeben, bevor sie angezeigt werden kann. Das Bild unten ist ein einfaches SVG . Richten Sie die Leinwand in der ersten Zeile ein und schneiden Sie dann das SVG in der zweiten aus. Dies bedeutet, dass das SVG 200 Pixel breit und 200 Pixel hoch ist, wie in den viewBox-Einstellungen angezeigt. xmlns=“svg“ Breite:200 Höhe:200
Reagieren Sie Svg
React-SVG ist eine Bibliothek, mit der Sie Scalable Vector Graphics (SVG)-Dateien in Ihre React-Anwendung einbinden können. Es bietet eine einfache Möglichkeit, SVG-Dateien in Ihre Anwendung einzufügen, und bietet eine Reihe von Funktionen, mit denen Sie die SVG-Datei in Ihrer Anwendung bearbeiten können.
Es wird ein XML-basiertes grafisches Bildformat verwendet, das als SVG bekannt ist. Einige der beliebtesten Marken wie Twitter, YouTube, Udacity, Netflix und andere verwenden skalierbare Vektorgrafiken für ihre Bilder und Symbole. Sie können SVGs direkt als React-Komponenten in Ihren Code importieren und verwenden. Das Bild ist keine separate Datei, sondern wird neben dem HTML gerendert. Durch die Verwendung von SVGR ermöglicht das CRA-Framework die Transformation und den Import einer SVG als React-Komponente. Wenn Sie Create React App nicht haben, sollten Sie über andere Optionen nachdenken. Skalierbare Vektorgrafiken (SVG) können mit einem leistungsstarken Tool wie SVGR in React-Komponenten konvertiert werden.
Daraus wird typischerweise eine DOM-Datei aufgebaut. Die LogRocket Redux-Middleware-Ebene dieses Pakets bietet Ihnen zusätzliche Einblicke in Benutzersitzungen. Das Ziel von LogRocket ist es, alle Redux-Aktionen und -Zustände nachzuverfolgen. Es überwacht nicht nur die Leistung Ihrer App, sondern liefert auch Berichte zur CPU-Auslastung, Speichernutzung usw. Es ist an der Zeit, die Art und Weise, wie Sie Ihre React-Apps debuggen, zu modernisieren und sofort mit der kostenlosen Überwachung zu beginnen.
Ist es besser, Svg oder PNG in React zu verwenden?
Verwenden Sie anstelle des Buchstabens. Wenn Sie JPEG-Dateien in Ihrer React Native-App haben, sollten Sie das SVG-Format verwenden. Ein vektorbasiertes Format wie SVG ist mit seiner Flexibilität und Elastizität ideal zum Speichern von Informationen in einer Vielzahl von Formaten.
Die vielen Vorteile der Verwendung von SVG-Dateien
Obwohl SVG eine kleinere Dateigröße als AI-Dateien hat, kann sie dennoch bearbeitet und skaliert werden. Ein SVG-Dateiformat zur Anzeige hochwertiger 2D-Bilder im Internet soll die Suchmaschinenoptimierung vereinfachen.
Scale-Svg-Reaktion
Svg React Scale ist ein npm-Paket, mit dem Sie Ihre React-Komponenten einfach skalieren können. Es bietet eine einfache API, mit der Sie die Breite und Höhe Ihrer Komponente angeben können, und skaliert Ihre Komponente automatisch, um sie an diese Abmessungen anzupassen.
So skalieren Sie skalierbare Vektorgrafiken (SVG) Amelia Bellamy-Royds bringt Ihnen alles bei, was Sie über das Skalieren von SVG wissen müssen. Es ist nicht so einfach wie das Skalieren von Rastergrafiken, aber es hat mehrere interessante Anwendungen. Für Anfänger kann es schwierig sein, den richtigen Umgang mit SVG zu erlernen. Ein Stück Kuchen ist definiert als ein Bild mit einem klar definierten Seitenverhältnis: dem Verhältnis von Breite zu Höhe. In einigen Fällen können Sie den Browser zwingen, ein Rasterbild in einer anderen Größe als seiner eigentlichen Höhe und Breite zu zeichnen, aber in anderen Fällen müssen Sie das Bild verzerren, um es zu zeichnen. Inline-SVGs werden in der im Code angegebenen Größe gezeichnet, unabhängig davon, ob die Leinwand groß oder klein ist. ViewBox wird verwendet, um skalierbare Vektorgrafiken zu erstellen, die das letzte Teil des Vektorgrafik-Puzzles darstellen.
Das viewBox-Element ist einer der Bezeichner des Elements. Die Zahl ist in vier Teile unterteilt: x, y, Breite und Höhe, und sie wird durch Leerzeichen oder Kommas dargestellt. Das Koordinatensystem für das Ansichtsfenster ganz links in der oberen linken Ecke muss angegeben werden. Die Höhe eines Programms ist definiert als die Anzahl der Koordinaten und ps/ps, die skaliert werden müssen, um sie zu erreichen. Wenn das Seitenverhältnis nicht den Abmessungen entspricht, wird das Bild gestreckt oder verzerrt. Mit der Eigenschaft object-fit können Sie verschiedene Arten von Bildern in denselben CSS-Text einfügen. Sie können auch die OptionkonserveRatioAspect=”none” festlegen, damit Ihr Bild genau wie ein Rasterbild skaliert werden kann.
In Rasterbildern können Sie die Breite oder Höhe definieren, um den Maßstab auf einem anderen Satz anzupassen. Was ist der beste Weg, das zu tun? SVG? Es gibt keinen einfachen Weg, dieses Problem zu lösen. Zu Beginn müssen Sie lernen, wie Sie die automatische Bildgrößenanpassung mit einem >img.>-Bild verwenden. Um das Seitenverhältnis eines Elements zu bestimmen, können Sie eine Vielzahl von CSS-Eigenschaften verwenden, um seine Höhe und seinen Rand anzupassen. Wenn das Bild eine viewBox hat, wird davon ausgegangen, dass andere Browser automatisch die Standardgröße von 300 * 150 verwenden.
Wenn Sie die neuesten Blink/Firefox-Browser verwenden, passt das Bild in die viewBox, wenn das Bild skaliert wird. Wenn Sie weder Höhe noch Breite angeben, verwenden diese Browser dieselben Standardgrößen wie zuvor. Dies ist die einfachste Methode zum Ersetzen von Elementen in SVG sowie in <object> und auf andere Weise. Eine Inline-Grafik hat in Bezug auf die offizielle Höhe normalerweise Null. Die Grafik würde auf nichts reduziert werden, wenn der Wert "preserveRatioAspect" auf "default" gesetzt wäre. Zu diesem Zweck möchten Sie, dass sich Ihre Grafik über die gesamte Breite erstreckt und dann auf den Polsterbereich übergeht, den Sie sorgfältig auf das richtige Seitenverhältnis eingestellt haben. ViewBox- und PreserveRatioAspect-Attribute sind extrem anpassungsfähig. Verschachtelte Elemente können verwendet werden, um eine unabhängige Grafikskala zu erstellen, wobei jedes Element seine eigenen Skalierungsattribute hat. Daher können Sie mit dieser Methode eine Kopfgrafik erstellen, die einen großen Bereich abdeckt, ohne an Höhe einzubüßen.
So ändern Sie die Größe eines SVG-Bildes in React
Wenn Sie React verwenden, nehmen Sie die folgenden Änderungen vor. Eine CSS-Transformation kann die Größe von ComponentName /> ändern, indem sie ihren Wert von scale(2) in scale(3) transformiert, indem sie className oder eine globale CSS-Datei verwendet. Sie können die Farbe einer Komponentenklasse ändern, indem Sie sie auswählen, mit Farbe füllen und den Maßstab ändern, indem Sie sie auswählen, aber wenn Sie den Maßstab ändern, wird die Komponentenklasse geändert. Wie können Sie die Größe einer SVG-Datei bestimmen? Sie müssen zuerst Ihre SVG-Bilddatei ziehen und ablegen oder in den weißen Bereich klicken, um eine Datei auszuwählen. Um die Größe zu ändern, klicken Sie auf die Schaltfläche Größe ändern. Sie können das Ergebnis herunterladen, sobald der Vorgang abgeschlossen ist.
Usemedia Custom React Hook
Es gibt keinen integrierten React-Hook für Medienabfragen, aber Sie können den benutzerdefinierten useMedia-React-Hook verwenden. Dieser Hook gibt einen booleschen Wert zurück, der angibt, ob die angegebene Medienabfrage übereinstimmt. Sie können den useMedia-Hook wie folgt verwenden:
importiere { useMedia } aus 'usemedia';
const isSmall = useMedia('(max-width: 600px)');
Mit der Media Queries-Funktion von CSS können Sie bei Bedarf bestimmte Stile auf ein HTML-Element anwenden. Ein gängiges Beispiel für eine Medienabfrage besteht darin, zu bestimmen, welche Fensterbreite die Größe des Bildschirms (Druck, Bildschirm) und welcher Medientyp welcher ist. Sie können das Fenster verwenden, um mit JavaScript nach Medienabfragen zu suchen. Das MediaQueryList-Objekt wird als Ergebnis jeder Abfragezeichenfolge in dieser Funktion zurückgegeben. Die MatcMedia-Bibliothek enthält einen React-Hook, mit dem Sie nach Übereinstimmungsergebnissen für Medienabfragen suchen und die Schnittstelle oder das Verhalten Ihrer Anwendung basierend auf diesem Ergebnis ändern können. Anders ausgedrückt sieht die Hooks-Typdefinition von TypeScript so aus. Als Ergebnis unseres Hooks wird als Parameter ein boolescher Wert als Abfragezeichenfolge zurückgegeben. Eine Methode namens matchMedia wird hinzugefügt, um den Ereignis-Listener zu ändern.
Können wir benutzerdefinierte Hooks in React erstellen?
Wenn wir Logik sowohl für den useState- als auch für den useEffect-Hook über mehrere Komponenten hinweg implementieren möchten, sind benutzerdefinierte Hooks eine großartige Option. Mit benutzerdefinierten React Hooks können wir zustandsbehaftete Logik auf optimierte und skalierbare Weise problemlos für eine Vielzahl von Komponenten wiederverwenden.
Die Vor- und Nachteile von React Hooks und Redux
Hier kommen Haken zum Einsatz. Die Redux-Geheimnisse können mit ihnen leicht entfernt werden, und in den meisten Fällen können Sie sie zum Laufen bringen, ohne sie lernen zu müssen. Sie sind auch anpassungsfähiger, sodass Sie sie für mehr als nur die Zustandsverwaltung verwenden können.
Wenn Sie immer noch ratlos sind, überlegen Sie, wie Sie die Statusverwaltungsfunktionen von React und Redux verwenden können. Wenn Sie in der Lage sein müssen, eine Anwendung basierend auf Benutzereingaben zu ändern, ist Redux die beste Option. Haken sind eine ausgezeichnete Wahl, wenn Sie nur wenige Gegenstände aufbewahren müssen.
Die endgültige Entscheidung liegt bei Ihnen; Sie können den besten Ansatz für Ihr Projekt frei wählen. Denken Sie jedoch daran, dass jeder seine Vor- und Nachteile hat, damit Sie die beste Entscheidung für Ihre spezifische Situation treffen können.
Wo platzieren Sie benutzerdefinierte Reaktionshaken?
Sie sollten Hooks immer ganz oben in der React-Funktion verwenden, bevor Sie mit Return-Aktionen beginnen. Wenn Sie diese Regel befolgen, können Sie garantieren, dass Hooks jedes Mal in derselben Reihenfolge platziert werden, wenn eine Komponente gerendert wird. Infolgedessen kann React den Status von Hooks zwischen mehreren useState-Aufrufen und useEffect-Aufrufen ordnungsgemäß aufrechterhalten.
Reaktionshaken: Richtlinien für die Verwendung
Es gibt auch Probleme mit React-Hooks, weil sie nicht gut dokumentiert sind. Diejenigen, die neu bei React sind, finden es möglicherweise schwierig, es zu implementieren. Haken hingegen können schwer zu verstehen sein, da sie auf vielfältige Weise verwendet werden können. Um mit diesen Herausforderungen umzugehen, empfehle ich React-Entwicklern, mit Hooks zu beginnen, indem sie ein paar einfache Richtlinien verwenden. Bevor Sie beginnen, müssen Sie zunächst die Dokumentation lesen, um mehr über die verschiedenen verfügbaren Hooks zu erfahren. Vermeiden Sie schließlich die zu häufige Verwendung von Haken. Wenn diese Option aktiviert ist, ist Ihre Codebasis leicht lesbar. Stellen Sie sicher, dass Sie alle Tests schreiben, die Sie zum Testen Ihrer Hooks benötigen. Sie können auch sicherstellen, dass die Anweisungen korrekt sind und dass Sie verstehen, wie sie funktionieren, indem Sie dies tun. Sie können Hooks verwenden, um React-Codebasen im Allgemeinen zu verbessern. Wenn Sie diese Richtlinien befolgen, können Sie leichter verständlichen Code schreiben, der zu einer besseren Leistung führt.
Sollte ich benutzerdefinierte Hooks React verwenden?
Benutzerdefinierte React-JS-Hooks sind erforderlich, wenn Sie einen oder mehrere React-Hooks haben, die an verschiedenen Stellen in einem Code verwendet werden. Dies unterstützt den effizienten und übersichtlichen Kodierungsprozess.
Warum benutzerdefinierte Hooks verwenden?
Ein benutzerdefinierter Haken kann aus verschiedenen Gründen nützlich sein. Es gibt zahlreiche Gründe, warum Code wiederverwendet werden kann. Eine gemeinsame setState- oder localStorage-Logik könnte beispielsweise in einen Hook eingebettet und über alle Komponenten hinweg verwendet werden.
Es gibt auch mehrere Gründe, warum Sie einen benutzerdefinierten Hook verwenden möchten. Die „Host“-Komponente eines Hooks wird neu gerendert, sobald sich der Hook in einem Zustand ändert, unabhängig davon, ob die Änderung seinen Rückgabewert beeinflusst oder nicht. Daher sind Hooks eine effiziente Methode zum Ausführen gemeinsamer Logik.
Die Verwendung von Hooks hat jedoch einen Nachteil: Sie können das Programm rendern. Obwohl es sich um eine Leistungseinbuße handelt, ist sie nicht immer schwerwiegend.
Können benutzerdefinierte Hooks Redux ersetzen?
In Bezug auf die Skalierung kann ein benutzerdefinierter React-Hook eine weniger aufgeblähte Alternative zu Redux sein und den komponentenübergreifenden Status verwalten, Propdrilling vermeiden und so weiter. Darüber hinaus hält es die Größe der Anwendung so klein wie möglich, indem es die bereits verfügbaren React-Hooks nutzt und sich nicht auf eine zusätzliche Abhängigkeit wie redux npm verlässt.
Was ist der Unterschied zwischen Reaktionshaken und Redux?
Die React-Hooks ermöglichen es React-Anwendungen, den lokalen Zustand zu handhaben. Der globale Status und die Aktionen, die versendet werden können, werden in Redux gespeichert, während React Hooks den lokalen Komponentenstatus handhabt. Da React Hooks an kleinen oder isolierten Komponenten verwendet werden können, sind sie eine bessere Option für kleine oder isolierte Komponenten. Die HOCs sind wie die Hooks reaktionsunabhängige Muster. Funktionen und HOCs können beide wie React-Hooks geschrieben werden, aber React-Hooks sind nicht zusammensetzbar. React Hooks sind aufgrund ihrer größeren Abmessungen effektiver für größere, komplexere Komponenten. Es liegt ganz bei Ihnen, was Sie erreichen möchten. Redux ist ein großartiges Werkzeug für die Entwicklung globaler Anwendungen, während React Hooks besser für kleinere, spezifischere Komponenten geeignet sind.