React: Cum să utilizați atributul ViewBox

Publicat: 2023-02-10

ViewBox este un atribut al unui element SVG care permite utilizatorilor să controleze dimensionarea și scalarea graficelor vectoriale dintr-un container. Când utilizați ViewBox cu React, dezvoltatorii trebuie să specifice dimensiunile containerului, precum și atributul preserveAspectRatio. Atributul preserveAspectRatio determină modul în care graficul este dimensionat și poziționat în container. Dezvoltatorii pot controla, de asemenea, scalarea și traducerea graficului folosind atributul viewBox.

Pentru a construi un viewBox SVG, puteți utiliza React Backstory. Noua versiune de Popmotion include o bibliotecă de animație generică. Deoarece Popmotion este independent de framework, vom crea un ref React și un svg pentru a optimiza animațiile. Această postare va trece peste o bibliotecă care include Popmotion și este specifică pentru React. Deoarece unii utilizatori pot prefera să nu aibă animații, interogarea media cu mișcare redusă preferată și cârligul React personalizat useMedia pot fi folosite pentru a determina dacă această preferință există. Dacă utilizatorul preferă o animație cu viteză mai mică, vom opri animația și vom reseta imediat benzile desenate la viewBox-ul original de micșorare; în caz contrar, vom începe animația. Ca o a doua alternativă, am creat o animație React folosind un wrapper care funcționează cu Popmotion și apoi am randat-o folosind Framer Motion.

De asemenea, puteți seta viewBox-ul la automat când utilizați *svg-ul dvs. Raportul general de aspect al viewBox va fi ajustat de browser ca parte a setării.

Este Viewbox necesar pentru Svg?

Este Viewbox necesar pentru Svg?
Sursa imaginii: https://sourcecodester.com

ViewBox este necesar pentru SVG. Oferă un sistem de coordonate pentru elementele grafice.

Ca rezultat, putem umple orice recipient în care se află SVG-urile noastre, cum ar fi acesta: Să presupunem că avem o imagine de pasăre mică. Cu un viewBox configurat corect pe această imagine, dimensiunea containerului va fi scalată la dimensiunile specificate de această imagine. În plus, viewBox-ul ne oferă posibilitatea de a ascunde o porțiune a unei imagini, făcând-o extrem de utilă pentru animație. Folosind viewBox, ne putem decupa imaginile mult mai eficient. Folosind programul, putem crea o animație a unui nor care se mișcă pe cer. Puteți anima acest lucru schimbând valoarea min-x a viewBox-ului. Deoarece preserveRatioAspect poate fi copleșitor, am lăsat-o afară din acest articol.

Cum să redimensionezi imaginile în HTML

În acest caz, puteți modifica atributele de lățime și înălțime pentru a se potrivi cu dimensiunea dorită.


Svg Utilizați caseta de vizualizare

Svg Utilizați caseta de vizualizare
Sursa imagine: https://clipartart.com

Atributul viewBox este o parte importantă a specificației SVG . Oferă o modalitate excelentă de a controla scalarea și traducerea unei imagini SVG. Atributul viewBox poate fi utilizat pe element sau pe elemente sau. Când este utilizat pe unul dintre aceste elemente, atributul viewBox creează o nouă fereastră de vizualizare pentru conținutul elementului.

ViewBox și viewPort sunt termeni care sunt utilizați în mod obișnuit în SVG. Funcția ViewPort este similară cu cea a unei imagini care se află în interiorul unui container. ViewBox este accesibil prin viewport. În plus, îl puteți dimensiona deplasându-l în stânga, dreapta, sus și jos. Deoarece viewBox w/h devine mai mic de 300 x 500, imaginea devine mai mică în fereastra de vizualizare (micșorează). ViewBox x/y glisează imaginea spre dreapta/jos în interiorul viewBox viewBox lățimea/înălțimea, iar întreaga zonă de vizualizare poate fi mărită (div / p /) sau depășită (html / vi). Dacă fereastra de vizualizare este mai mare decât un pachet de cărți, mărirea numerelor viewBox „x y…” va muta imaginea cutiei de cereale în sus/stânga.

Svg 101: Elementele de bază

Procesul de creare a SVG-urilor este simplu, dar există câteva lucruri de reținut. ViewsBox nu este în lumea reală, deoarece se bazează pe 0-100 de unități. În plus, sistemul de coordonate este definit în 0-100 de unități, mai degrabă decât în ​​pixeli. Trebuie să specificați dimensiunea fișierului svg în pixeli înainte de a putea fi afișat. Imaginea de mai jos este un simplu SVG . Configurați pânza pe prima linie și apoi tăiați SVG-ul pe a doua. Aceasta înseamnă că SVG-ul va avea 200 de pixeli lățime și 200 de pixeli înălțime, așa cum se arată în setările viewBox. xmlns="svg" lățime:200 înălțime:200

Reacționează Svg

React-SVG este o bibliotecă care vă permite să includeți fișiere Scalable Vector Graphics (SVG) în aplicația dvs. React . Acesta oferă o modalitate simplă de a include fișiere SVG în aplicația dvs. și oferă o serie de caracteristici care vă permit să manipulați fișierul SVG în aplicația dvs.

Este utilizat un format de imagine grafică bazat pe XML, cunoscut sub numele de SVG. Unele dintre cele mai populare mărci, cum ar fi Twitter, YouTube, Udacity, Netflix și altele, folosesc Scalable Vector Graphics pentru imaginile și pictogramele lor. Puteți importa și utiliza SVG-uri direct ca componente React în codul dvs. Imaginea, în loc să fie un fișier separat, este redată alături de HTML. Prin utilizarea SVGR, cadrul CRA permite transformarea și importul unui SVG ca componentă React. Dacă nu aveți aplicația Create React , ar trebui să vă gândiți la alte opțiuni. Grafica vectorială scalabilă (SVG) poate fi convertită în componente React folosind un instrument puternic precum SVGR.

Un fișier DOM este de obicei construit din aceasta. Stratul middleware LogRocket Redux al acestui pachet vă oferă vizibilitate suplimentară asupra sesiunilor utilizator. Scopul LogRocket este să țină evidența tuturor acțiunilor și stărilor Redux. Nu numai că monitorizează performanța aplicației dvs., dar oferă și rapoarte despre încărcarea procesorului, utilizarea memoriei și așa mai departe. Este timpul să modernizați modul în care vă depanați aplicațiile React și să începeți imediat monitorizarea gratuită.

Este mai bine să utilizați Svg sau Png în React?

În loc de litere, folosește. Dacă aveți fișiere jpeg în aplicația React Native, ar trebui să utilizați formatul SVG . Un format bazat pe vectori precum SVG, cu flexibilitatea și elasticitatea sa, este ideal pentru stocarea informațiilor într-o varietate de formate.

Multe beneficii ale utilizării fișierelor Svg

În ciuda faptului că este o dimensiune de fișier mai mică decât fișierele AI, SVG poate fi totuși editat și scalat. Un format de fișier SVG pentru afișarea de imagini 2D de înaltă calitate pe internet este conceput pentru a facilita SEO.

Scala Svg React

Svg React Scale este un pachet npm care vă permite să scalați ușor componentele React. Oferă un API simplu care vă permite să specificați lățimea și înălțimea componentei dvs. și vă va scala automat componenta pentru a se potrivi acelor dimensiuni.

Cum să scalați graficele vectoriale scalabile (SVG) Amelia Bellamy-Royds vă învață tot ce trebuie să știți despre scalarea SVG. Nu este la fel de simplu ca scalarea graficelor raster, dar are mai multe aplicații interesante. Poate fi dificil pentru începători să învețe cum să folosească SVG în mod corect. O felie de tort este definită ca o imagine cu un raport de aspect clar definit: raportul dintre lățime și înălțime. În unele cazuri, puteți forța browserul să deseneze o imagine raster la o dimensiune diferită de înălțimea și lățimea ei intrinsecă, dar în altele, trebuie să distorsionați imaginea pentru a o desena. SVG-urile inline vor fi desenate la dimensiunea specificată în cod, indiferent dacă pânza este mare sau mică. ViewBox este folosit pentru a crea grafică vectorială scalabilă, care este piesa finală a puzzle-ului cu grafică vectorială.

Elementul viewBox este unul dintre identificatorii elementului. Numărul este împărțit în patru părți: x, y, lățime și înălțime și este reprezentat prin spații albe sau virgule. Trebuie specificat sistemul de coordonate pentru fereastra cea mai din stânga din colțul din stânga sus. Înălțimea unui program este definită ca numărul de coordonate și ps/ps care trebuie scalat pentru a-l atinge. Când raportul de aspect nu este în conformitate cu dimensiunile, imaginea va fi întinsă sau distorsionată. Proprietatea object-fit vă permite să potriviți diferite tipuri de imagini în același corp CSS. De asemenea, puteți alege să setați opțiunea preserveRatioAspect="none" pentru a permite imaginii dvs. să se scaleze exact ca o imagine raster.

În imaginile raster, puteți defini lățimea sau înălțimea pentru a se potrivi cu scara pe alt set. Care este cel mai bun mod de a face asta? SVG? Nu există o modalitate ușoară de a rezolva această problemă. Pentru a începe, va trebui să învățați cum să utilizați dimensionarea automată a imaginii cu o imagine >img.>. Pentru a determina raportul de aspect al unui element, puteți utiliza o varietate de proprietăți CSS pentru a-i ajusta înălțimea și marginea. Dacă imaginea are un viewBox, se presupune că alte browsere vor folosi automat dimensiunea implicită de 300*150.

Dacă utilizați cele mai recente browsere Blink/Firefox, imaginea se va potrivi în viewBox pe măsură ce imaginea se scalează. Dacă nu specificați nici înălțimea, nici lățimea, aceste browsere vor folosi aceleași dimensiuni implicite ca înainte. Aceasta este metoda cea mai simplă pentru înlocuirea elementelor în SVG, precum și în <obiect> și în alte moduri. O linie grafică va avea de obicei zero în ceea ce privește înălțimea oficială. Graficul ar fi redus la nimic dacă valoarea preserveRatioAspect ar fi setată la implicit. În acest scop, doriți ca graficul să se întindă pentru a acoperi întreaga lățime și apoi să se reverse în zona de umplutură pe care ați setat-o ​​cu atenție la raportul de aspect corect. Atributele ViewBox și PreserveRatioAspect sunt extrem de adaptabile. Elementele imbricate pot fi folosite pentru a crea o scară grafică independentă, fiecare element având propriile atribute de scalare. Ca rezultat, puteți utiliza această metodă pentru a crea un antet grafic care acoperă o zonă largă fără a sacrifica înălțimea.

Cum să redimensionați o imagine Svg în React

Când utilizați React, faceți următoarele modificări. O transformare CSS poate modifica dimensiunea ComponentName /> transformând valoarea sa de la scale(2) la scale(3) folosind className sau un fișier CSS global. Puteți schimba culoarea unei clase de componente selectând-o, umplend-o cu culoare și schimbând scara selectând-o, dar dacă schimbați scara, clasa componentei va fi schimbată. Cum puteți mări fișierul SVG? Mai întâi trebuie să trageți și să plasați fișierul imagine SVG sau să faceți clic în interiorul zonei albe pentru a selecta un fișier. Pentru a redimensiona, faceți clic pe butonul Redimensionare. Puteți descărca rezultatul odată ce procesul s-a încheiat.

Utilizați cârligul de reacție personalizat media

Nu există un cârlig React încorporat pentru interogări media, dar puteți utiliza cârligul React personalizat useMedia. Acest cârlig returnează o valoare booleană care indică dacă interogarea media specificată este potrivită. Puteți utiliza cârligul useMedia astfel:
import { useMedia } din 'usemedia';
const isSmall = useMedia('(latime maxima: 600px)');

Caracteristica Media Queries a CSS vă permite să aplicați stiluri specifice unui element HTML la cerere. Un exemplu obișnuit de interogare media este acela de a determina ce lățime a ferestrei este dimensiunea ecranului (printare, ecran) și ce tip de media este care. Puteți utiliza fereastra pentru a verifica interogări media folosind JavaScript. Obiectul MediaQueryList este returnat ca rezultat al fiecărui șir de interogare din această funcție. Biblioteca MatcMedia include un React Hook care vă permite să verificați rezultatele potrivirii Media Query și să modificați interfața sau comportamentul aplicației dvs. pe baza acelui rezultat. Pentru a spune altfel, definiția tipului de cârlige de la TypeScript arată astfel. Ca rezultat al hook-ului nostru, un boolean este returnat ca șir de interogare ca parametru. O metodă numită matchMedia va fi adăugată pentru a schimba ascultătorul evenimentului.

Putem crea cârlige personalizate în React?

Când dorim să implementăm logica atât pentru useState, cât și pentru useEffect hook-uri în mai multe componente, Hook-urile personalizate sunt o opțiune excelentă. Cu React Hooks personalizate, putem reutiliza cu ușurință logica cu stare într-o varietate de componente într-o manieră optimizată și scalabilă.

Avantajele și dezavantajele React Hooks și Redux

Aici se folosesc cârlige. Secretele Redux pot fi îndepărtate cu ușurință cu ele și, în majoritatea cazurilor, le puteți face să funcționeze fără a fi nevoie să le învățați. Sunt, de asemenea, mai adaptabile, permițându-vă să le utilizați pentru mai mult decât pentru managementul statului.
Dacă sunteți încă nedumerit, luați în considerare cum să utilizați funcțiile de gestionare a stării React și Redux. Dacă trebuie să puteți modifica o aplicație pe baza intrării utilizatorului, Redux este cea mai bună opțiune. Cârligele sunt o alegere excelentă dacă trebuie să depozitați doar câteva articole.
Decizia finală vă aparține; sunteți liber să alegeți cea mai bună abordare pentru proiectul dvs. Cu toate acestea, rețineți că fiecare are avantajele și dezavantajele sale, astfel încât să puteți lua cea mai bună decizie pentru situația dvs. specifică.

Unde puneți cârlige personalizate React?

Ar trebui să utilizați întotdeauna Hooks în partea de sus a funcției React înainte de a începe orice acțiune de returnare. Dacă respectați această regulă, puteți garanta că cârligele vor fi plasate în aceeași ordine de fiecare dată când o componentă este redată. Ca rezultat, React poate menține în mod corespunzător starea Hooks între apelurile multiple useState și apelurile useEffect.

React Hooks: Ghid de utilizare

Există, de asemenea, probleme cu cârligele React, deoarece nu sunt bine documentate. Cei care sunt noi în React le poate fi dificil să-l implementeze. Cârligele, pe de altă parte, pot fi dificil de înțeles, deoarece pot fi folosite într-o varietate de moduri. Pentru a face față acestor provocări, recomand dezvoltatorilor React să înceapă cu cârlige folosind câteva îndrumări simple. Înainte de a începe, trebuie să citiți mai întâi documentația pentru a afla despre diferitele cârlige disponibile. În cele din urmă, evitați să folosiți cârlige prea des. Având această opțiune activată, baza de cod va fi ușor de citit. Asigurați-vă că scrieți toate testele de care aveți nevoie pentru a vă testa cârligele. De asemenea, puteți să vă asigurați că instrucțiunile sunt corecte și că înțelegeți cum funcționează procedând astfel. Puteți folosi cârlige pentru a îmbunătăți bazele de cod React în general. Dacă urmați aceste instrucțiuni, veți putea scrie cod mai ușor de înțeles și va avea ca rezultat o performanță mai bună.

Ar trebui să folosesc Custom Hooks React?

Cârligele personalizate React JS sunt necesare dacă aveți unul sau mai multe cârlige React care vor fi utilizate în diferite locații dintr-un cod. Acest lucru ajută la procesul de codificare eficient și clar.

De ce să folosiți cârlige personalizate?

Un cârlig personalizat ar putea fi util din mai multe motive. Există numeroase motive pentru care codul poate fi reutilizat. O logică comună setState sau localStorage, de exemplu, ar putea fi încorporată într-un cârlig și utilizată în toate componentele.
Există, de asemenea, mai multe motive pentru care ați putea dori să utilizați un cârlig personalizat. Componenta „gazdă” a unui cârlig va fi redată odată ce cârligul se schimbă într-o stare, indiferent dacă modificarea îi afectează sau nu valoarea returnată. Ca rezultat, cârligele sunt o metodă eficientă de a efectua logica comună.
Există, totuși, un dezavantaj în utilizarea cârligelor: acestea pot reda programul. Deși este o penalizare de performanță, nu este întotdeauna severă.

Cârligele personalizate pot înlocui Redux?

În ceea ce privește scalarea, un cârlig personalizat React poate fi o alternativă mai puțin umflată la Redux și poate gestiona starea între componente, evită perforarea și așa mai departe. În plus, utilizând cârligele de reacție deja disponibile și evitând să te bazezi pe o dependență suplimentară, cum ar fi redux npm, menține dimensiunea aplicației cât mai mică posibil.

Care este diferența dintre React Hooks și Redux?

React Hooks permit aplicațiilor React să gestioneze starea locală. Starea globală și acțiunile care pot fi expediate sunt stocate în Redux, în timp ce React Hooks se ocupă de starea componentelor locale. Deoarece React Hooks pot fi utilizate pe componente mici sau izolate, acestea sunt o opțiune mai bună pentru componentele mici sau izolate. HOC-urile, ca și Hook-urile, sunt modele independente de React. Funcțiile și HOC-urile pot fi ambele scrise ca cârlige React, dar cârligele React nu sunt compuse. Cârligele React sunt mai eficiente pentru componente mai mari și mai complexe datorită dimensiunilor lor mai mari. Depinde în întregime de tine ceea ce vrei să obții. Redux este un instrument excelent pentru dezvoltarea de aplicații globale, în timp ce React Hooks sunt mai potrivite pentru componente mai mici, mai specifice.