În urmă cu aproximativ 15 ani, lucram la o companie în care am creat aplicații pentru agenții de turism, lucrătorii aeroporturilor și companiile aeriene. De asemenea, am construit propriul nostru cadru intern pentru componentele UI și capabilitățile aplicației cu o singură pagină. Aveam componente pentru orice: câmpuri, butoane, file, intervale, tabele de date, meniuri, datepickers, selectii și multiselectări. Aveam chiar și o componentă div. Componenta noastră div a fost grozavă de altfel, ne-a permis să facem colțuri rotunjite pe toate browserele, ceea ce, crezi sau nu, nu era un lucru ușor de făcut la momentul respectiv.

Munca noastră a avut loc într-un moment al istoriei noastre când JS, Ajax și HTML dinamic au fost văzute ca o revoluție care ne-a adus în viitor. Dintr-o dată, am putut actualiza o pagină în mod dinamic, să obținem date de la un server și să evităm nevoia de a naviga la alte pagini, ceea ce a fost văzut ca fiind lent și a afișat un dreptunghi alb mare pe ecran între cele două pagini. A existat o frază, făcută populară de Jeff Atwood (fondatorul StackOverflow), care spunea: „Orice aplicație care poate fi scrisă în JavaScript va fi în cele din urmă scrisă în JavaScript.” – Jeff Atwood

Pentru noi, la vremea aceea, se simțea ca o îndrăzneală să mergem și să creăm acele aplicații. Mi s-a părut o aprobare generală să faci totul cu JS. Așa că am făcut totul cu JS și nu ne-am făcut timp să cercetăm alte moduri de a face lucrurile. Nu am simțit cu adevărat motivația să învățăm corect ce ar putea face HTML și CSS. Nu am perceput cu adevărat web-ul ca pe o platformă de aplicații în evoluție în întregime. În cea mai mare parte, am văzut-o ca pe ceva la care trebuia să rezolvăm, mai ales când era vorba de suport pentru browser. Am putea doar să aruncăm mai multe JS pentru a face lucrurile. M-ar fi ajutat să am timpul necesar pentru a afla mai multe despre cum a funcționat web-ul și despre ce era disponibil pe platformă? Sigur, probabil că aș fi putut rade o grămadă de cod care nu era cu adevărat necesar. Dar, la momentul respectiv, poate nu atât. Vedeți, diferențele dintre browser erau destul de semnificative pe atunci. Acesta a fost o perioadă în care Internet Explorer era încă browserul dominant, Firefox fiind pe locul secund, dar începea să piardă din cota de piață din cauza că Chrome câștiga rapid popularitate. Deși Chrome și Firefox se pricepeau destul de bine la standardele web, mediile în care rulau aplicațiile noastre au însemnat că a trebuit să acceptăm IE6 pentru o lungă perioadă de timp. Chiar și atunci când ni s-a permis să acceptăm IE8, am avut totuși de a face cu o mulțime de diferențe între browsere. Nu numai asta, dar web-ul vremii pur și simplu nu avea atât de multe capabilități integrate chiar în platformă.

Avanză rapid până astăzi. Lucrurile s-au schimbat enorm. Nu numai că avem mai multe dintre aceste capacități decât oricând, dar și rata cu care devin disponibile a crescut. Atunci, permiteți-mi să pun întrebarea din nou: v-ar ajuta să vă acordați timp pentru a afla mai multe despre cum funcționează web-ul și despre ce este disponibil pe platformă? Absolut da. A învăța să înțelegeți și să utilizați platforma web astăzi vă aduce la un avantaj enorm față de alți dezvoltatori. Indiferent dacă lucrați la performanță, accesibilitate, receptivitate, toate împreună sau doar la livrarea funcțiilor de UI, dacă doriți să faceți acest lucru ca inginer responsabil, cunoașterea instrumentelor care vă sunt disponibile vă ajută să vă atingeți obiectivele mai rapid și mai bine. Câteva lucruri pentru care s-ar putea să nu mai ai nevoie de o bibliotecă Știind ce browsere acceptă astăzi, întrebarea este: de ce putem renunța? Avem nevoie de o componentă div pentru a face colțuri rotunjite în 2025? Desigur, noi nu. Proprietatea border-radius este acceptată de toate browserele utilizate în prezent de mai bine de 15 ani în acest moment. Și forma de colț va veni în curând, chiar și pentru colțurile mai înfățișate. Să aruncăm o privire la caracteristicile relativ recente care sunt acum disponibile în toate browserele majore și pe care le puteți folosi pentru a înlocui dependențele existente în baza de cod. Ideea nu este să renunțați imediat la toate bibliotecile iubite și să vă rescrieți baza de cod. În ceea ce privește orice altceva, va trebui să luați în considerare mai întâi suportul pentru browser și să decideți pe baza altor factori specifici proiectului dvs. Următoarele caracteristici sunt implementate în cele trei motoare principale de browser (Chromium, WebKit și Gecko), dar este posibil să aveți cerințe diferite de asistență pentru browser care vă împiedică să le utilizați imediat. Acum este încă un moment bun pentru a afla despre aceste funcții, totuși și, poate, să plănuiți să le folosiți la un moment dat. Popovers și dialoguri API-ul Popover, elementul HTML

și pseudo-elementul ::backdrop vă pot ajuta să scăpați de dependențele de pop-up,balon cu instrumente și biblioteci de dialog, cum ar fi Floating UI, Tippy.js, Tether sau React Tooltip. Aceștia se ocupă de gestionarea accesibilității și a concentrării pentru dvs., de la început, sunt extrem de personalizabili prin utilizarea CSS și pot fi animați cu ușurință. Acordeoane Elementul
, atributul său nume pentru elemente care se exclud reciproc și pseudo-elementul ::details-content înlătură necesitatea componentelor acordeonului, cum ar fi Accordionul Bootstrap sau componenta React Accordion. Doar folosirea platformei de aici înseamnă că este mai ușor pentru cei care cunosc HTML/CSS să vă înțeleagă codul fără a fi nevoie să învețe mai întâi să folosească o anumită bibliotecă. Înseamnă, de asemenea, că sunteți imun la modificările nerespectate din bibliotecă sau la întreruperea bibliotecii respective. Și, desigur, înseamnă mai puțin cod de descărcat și rulat. Elementele de detalii reciproc exclusive nu au nevoie de JS pentru a deschide, închide sau anima. Sintaxa CSS Straturi în cascadă, pentru o bază de cod CSS mai organizată, imbricare CSS, pentru CSS mai compact, noi funcții de culoare, culori relative și amestec de culori, noile funcții matematice precum abs(), sign(), pow() și altele ajută la reducerea dependențelor de pre-procesoare CSS, biblioteci utilitare precum Bootstrap și Tailwind sau chiar biblioteci CSS-in-JS de execuție. Game Changer :has(), una dintre cele mai solicitate funcții de mult timp, elimină nevoia de soluții mai complicate bazate pe JS. JS Utilities Metodele moderne Array precum findLast() sau at(), precum și metodele Set precum difference(), intersection(), union() și altele pot reduce dependențele de biblioteci precum Lodash. Interogări de containere Interogările containerului fac componentele UI să răspundă la alte lucruri decât dimensiunea ferestrei de vizualizare și, prin urmare, le fac mai reutilizabile în diferite contexte. Nu mai este nevoie să utilizați o bibliotecă de interfață utilă JS-heavy pentru aceasta și nici nu este nevoie să utilizați o completare polivalentă. Aspect Grid, subgrid, flexbox sau multi-coloană există de mult timp, dar privind rezultatele sondajelor State of CSS, este clar că dezvoltatorii tind să fie foarte precauți în adoptarea de lucruri noi și să aștepte foarte mult timp înainte să o facă. Aceste caracteristici sunt de bază de mult timp și le puteți folosi pentru a scăpa de dependențe de lucruri precum sistemul de grilă Bootstrap, utilitarele Flexbox ale Foundation Framework, grila fixă ​​Bulma, grila Materialize sau coloanele Tailwind. Nu spun că ar trebui să renunți la cadrul. Echipa ta l-a adoptat cu un motiv, iar eliminarea acestuia ar putea fi un proiect mare. Dar privirea la ceea ce poate oferi platforma web fără un wrapper terță parte în partea de sus vine cu o mulțime de beneficii. Lucruri de care s-ar putea să nu mai ai nevoie în viitorul apropiat Acum, să aruncăm o privire rapidă la unele dintre lucrurile pentru care nu veți avea nevoie de o bibliotecă în viitorul apropiat. Adică, lucrurile de mai jos nu sunt destul de pregătite pentru adoptarea în masă, dar a fi conștienți de ele și planificarea pentru o potențială utilizare ulterioară poate fi de ajutor. Poziționarea ancorei Poziționarea ancorelor CSS se ocupă de poziționarea popover-urilor și a indicațiilor cu instrumente în raport cu alte elemente și are grijă să le păstreze la vedere, chiar și atunci când mutați, derulați sau redimensionați pagina. Aceasta este o completare excelentă a API-ului Popover menționat anterior, ceea ce va face și mai ușoară migrarea de la soluțiile JS mai mari de performanță. API de navigare API-ul de navigare poate fi folosit pentru a gestiona navigarea în aplicațiile cu o singură pagină și poate fi o completare excelentă, sau chiar un înlocuitor, pentru sarcinile de rutare React Router, Next.js sau Angular. Vedeți API-ul Transitions API-ul View Transitions poate anima între diferitele stări ale unei pagini. Într-o aplicație cu o singură pagină, acest lucru face tranzițiile ușoare între stări foarte ușoare și vă poate ajuta să scăpați de bibliotecile de animație precum Anime.js, GSAP sau Motion.dev. Și mai bine, API-ul poate fi folosit și cu aplicații cu mai multe pagini. Îți amintești mai devreme, când am spus că motivul pentru care am creat aplicații cu o singură pagină la compania la care lucram acum 15 ani a fost pentru a evita fulgerul alb al reîncărcărilor paginilor când navigăm? Dacă acel API ar fi fost disponibil în acel moment, am fi reușit să obținem efecte frumoase de tranziție a paginii fără un cadru de o singură pagină și fără o descărcare inițială uriașă a întregii aplicații. Animații bazate pe defilare Animațiile bazate pe defilare rulează pe poziția de defilare a utilizatorului, mai degrabă decât în timp, ceea ce le face o soluție excelentă pentru povestiri și tururi ale produselor. Unii oameni au exagerat puțin cu el, dar atunci când este folosit bine, acesta poate fi un instrument de proiectare foarte eficient și poate ajuta să scapi de biblioteci precum: ScrollReveal, GSAP Scroll sauWOW.js. Selectări personalizabile O selecție personalizabilă este un element

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free