For omtrent 15 år siden jobbet jeg i et selskap der vi bygde apper for reisebyråer, flyplassarbeidere og flyselskaper. Vi bygde også vårt eget interne rammeverk for UI-komponenter og enkeltside-appfunksjoner. Vi hadde komponenter for alt: felt, knapper, faner, områder, datatabeller, menyer, datovelgere, utvalg og multivalg. Vi hadde til og med en div-komponent. Div-komponenten vår var flott forresten, den tillot oss å gjøre avrundede hjørner på alle nettlesere, noe som, tro det eller ei, ikke var en enkel ting å gjøre på den tiden.

Arbeidet vårt fant sted på et tidspunkt i vår historie da JS, Ajax og dynamisk HTML ble sett på som en revolusjon som brakte oss inn i fremtiden. Plutselig kunne vi oppdatere en side dynamisk, hente data fra en server og slippe å navigere til andre sider, som ble sett på som treg og blinket med et stort hvitt rektangel på skjermen mellom de to sidene. Det var en setning, gjort populær av Jeff Atwood (grunnleggeren av StackOverflow), som lød: "Enhver applikasjon som kan skrives i JavaScript vil til slutt bli skrevet i JavaScript." - Jeff Atwood

For oss på den tiden føltes dette som en tørre å faktisk gå og lage disse appene. Det føltes som en generell godkjenning å gjøre alt med JS. Så vi gjorde alt med JS, og vi tok oss egentlig ikke tid til å undersøke andre måter å gjøre ting på. Vi følte egentlig ikke insentiv til å lære hva HTML og CSS kunne gjøre. Vi oppfattet egentlig ikke nettet som en appplattform i utvikling i sin helhet. Vi så det stort sett som noe vi trengte å omgå, spesielt når det kom til nettleserstøtte. Vi kunne bare kastet mer JS på det for å få ting gjort. Ville det hjulpet meg å ta meg tid til å lære mer om hvordan nettet fungerte og hva som var tilgjengelig på plattformen? Jada, jeg kunne sannsynligvis ha barbert en haug med kode som egentlig ikke var nødvendig. Men på den tiden, kanskje ikke så mye. Du skjønner, nettleserforskjellene var ganske betydelige den gang. Dette var en tid da Internet Explorer fortsatt var den dominerende nettleseren, med Firefox som den nærmeste andre, men begynte å tape markedsandeler på grunn av at Chrome raskt ble populær. Selv om Chrome og Firefox var ganske gode til å bli enige om nettstandarder, gjorde miljøene appene våre kjørte i at vi måtte støtte IE6 i lang tid. Selv da vi fikk støtte IE8, måtte vi fortsatt forholde oss til mange forskjeller mellom nettlesere. Ikke bare det, men datidens nett hadde bare ikke så mange funksjoner innebygd rett inn i plattformen.

Spol frem til i dag. Ting har endret seg enormt. Ikke bare har vi flere av disse egenskapene enn noen gang før, men hastigheten de blir tilgjengelige med har også økt. La meg stille spørsmålet igjen, da: Ville det å ta deg tid til å lære mer om hvordan nettet fungerer og hva som er tilgjengelig på plattformen hjelpe deg i dag? Absolutt ja. Å lære å forstå og bruke nettplattformen i dag gir deg en stor fordel i forhold til andre utviklere. Enten du jobber med ytelse, tilgjengelighet, respons, alt sammen, eller bare sender brukergrensesnittfunksjoner, hvis du ønsker å gjøre det som en ansvarlig ingeniør, hjelper det å kjenne verktøyene som er tilgjengelige for deg å nå dine mål raskere og bedre. Noen ting du kanskje ikke trenger et bibliotek for lenger Når vi vet hva nettlesere støtter i dag, er spørsmålet: Hva kan vi droppe? Trenger vi en div-komponent for å gjøre avrundede hjørner i 2025? Selvfølgelig gjør vi ikke det. Border-radius-egenskapen har blitt støttet av alle nettlesere som brukes nå i mer enn 15 år. Og hjørneform kommer også snart, for enda mer avanserte hjørner. La oss ta en titt på relativt nyere funksjoner som nå er tilgjengelige i alle større nettlesere, og som du kan bruke til å erstatte eksisterende avhengigheter i kodebasen din. Poenget er ikke å umiddelbart droppe alle dine elskede biblioteker og omskrive kodebasen din. Når det gjelder alt annet, må du først ta hensyn til nettleserstøtte og bestemme deg basert på andre faktorer som er spesifikke for prosjektet ditt. Følgende funksjoner er implementert i de tre hovednettlesermotorene (Chromium, WebKit og Gecko), men du kan ha forskjellige nettleserstøttekrav som hindrer deg i å bruke dem med en gang. Nå er det fortsatt et godt tidspunkt å lære om disse funksjonene, og kanskje planlegge å bruke dem på et tidspunkt. Popovers og dialoger Popover API,

HTML-elementet og ::backdrop pseudo-elementet kan hjelpe deg med å bli kvitt avhengigheter av popup,verktøytips og dialogbiblioteker, for eksempel Floating UI, Tippy.js, Tether eller React Tooltip. De håndterer tilgjengelighet og fokusstyring for deg, rett ut av boksen, er svært tilpassbare ved å bruke CSS, og kan enkelt animeres. Trekkspill Elementet
, dets navneattributt for gjensidig utelukkende elementer, og ::details-content pseudo-elementet fjerner behovet for trekkspillkomponenter som Bootstrap Accordion eller React Accordion-komponenten. Bare det å bruke plattformen her betyr at det er lettere for folk som kan HTML/CSS å forstå koden din uten først å måtte lære å bruke et spesifikt bibliotek. Det betyr også at du er immun mot å bryte endringer i biblioteket eller seponering av det biblioteket. Og selvfølgelig betyr det mindre kode å laste ned og kjøre. Gjensidig eksklusive detaljelementer trenger ikke JS for å åpne, lukke eller animere. CSS-syntaks Kaskadelag, for en mer organisert CSS-kodebase, CSS-nesting, for mer kompakt CSS, nye fargefunksjoner, relative farger og fargemiks, nye Maths-funksjoner som abs(), sign(), pow() og andre bidrar til å redusere avhengighetene av CSS-pre-prosessorer, hjelpebiblioteker som Bootstrap og Tailwind, eller til og med runtime CSS-in. Spillveksleren :has(), en av de mest etterspurte funksjonene på lenge, fjerner behovet for mer kompliserte JS-baserte løsninger. JS Utilities Moderne Array-metoder som findLast(), eller at(), samt Set-metoder som difference(), intersection(), union() og andre kan redusere avhengigheter av biblioteker som Lodash. Containerspørringer Beholderspørringer får UI-komponenter til å reagere på andre ting enn visningsportstørrelsen, og gjør dem derfor mer gjenbrukbare på tvers av forskjellige kontekster. Du trenger ikke lenger bruke et JS-tungt UI-bibliotek for dette, og heller ikke behov for å bruke en polyfill. Oppsett Grid, subgrid, flexbox eller multi-column har eksistert i lang tid nå, men ser på resultatene av State of CSS-undersøkelsene, er det klart at utviklere har en tendens til å være veldig forsiktige med å ta i bruk nye ting, og vente veldig lenge før de gjør det. Disse funksjonene har vært Baseline i lang tid, og du kan bruke dem til å bli kvitt avhengigheter av ting som Bootstraps rutenettsystem, Foundation Frameworks flexbox-verktøy, Bulma fast rutenett, Materialize grid eller Tailwind-kolonner. Jeg sier ikke at du skal droppe rammeverket ditt. Teamet ditt tok det i bruk av en grunn, og å fjerne det kan være et stort prosjekt. Men å se på hva nettplattformen kan tilby uten en tredjeparts wrapper på toppen kommer med mange fordeler. Ting du kanskje ikke trenger lenger i nær fremtid La oss nå ta en rask titt på noen av tingene du ikke trenger et bibliotek for i nær fremtid. Det vil si at tingene nedenfor ikke er helt klare for masseadopsjon, men å være klar over dem og planlegge for potensiell senere bruk kan være nyttig. Ankerplassering CSS-ankerposisjonering håndterer plassering av popovers og verktøytips i forhold til andre elementer, og sørger for å holde dem synlige, selv når du flytter, ruller eller endrer størrelse på siden. Dette er et flott supplement til Popover API nevnt tidligere, som vil gjøre det enda enklere å migrere bort fra mer ytelsesintensive JS-løsninger. Navigasjons-API Navigasjons-API-en kan brukes til å håndtere navigering i enkeltside-apper og kan være et flott supplement, eller til og med en erstatning, til React Router, Next.js-ruting eller Angular-rutingsoppgaver. Se Transitions API View Transitions API kan animere mellom de forskjellige tilstandene på en side. På en enkeltsideapplikasjon gjør dette jevne overganger mellom tilstander veldig enkle, og kan hjelpe deg med å bli kvitt animasjonsbiblioteker som Anime.js, GSAP eller Motion.dev. Enda bedre, API kan også brukes med flere siders applikasjoner. Husker du tidligere, da jeg sa at grunnen til at vi bygde enkeltside-apper i selskapet der jeg jobbet for 15 år siden, var for å unngå det hvite blinket av sideinnlastinger når du navigerer? Hadde den API-en vært tilgjengelig på det tidspunktet, ville vi ha vært i stand til å oppnå vakre sideovergangseffekter uten et enkeltsides rammeverk og uten en enorm første nedlasting av hele appen. Rulledrevne animasjoner Rulledrevne animasjoner kjører på brukerens rulleposisjon, i stedet for over tid, noe som gjør dem til en flott løsning for historiefortelling og produktomvisninger. Noen mennesker har gått litt over toppen med det, men når det brukes godt, kan dette være et veldig effektivt designverktøy, og kan hjelpe med å bli kvitt biblioteker som: ScrollReveal, GSAP Scroll, ellerWOW.js. Tilpassbare valg Et tilpassbart utvalg er et normalt

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free