Sowat 15 jaar gelede het ek by 'n maatskappy gewerk waar ons toepassings vir reisagente, lughawewerkers en lugrederymaatskappye gebou het. Ons het ook ons ​​eie interne raamwerk vir UI-komponente en enkelbladsy-toepassingsvermoëns gebou. Ons het komponente vir alles gehad: velde, knoppies, oortjies, reekse, datatabelle, spyskaarte, datumkiesers, keuses en multiseleksies. Ons het selfs 'n div-komponent gehad. Ons div-komponent was terloops wonderlik, dit het ons toegelaat om afgeronde hoeke op alle blaaiers te doen, wat, glo dit of nie, destyds nie 'n maklike ding was om te doen nie.

Ons werk het plaasgevind op 'n punt in ons geskiedenis toe JS, Ajax en dinamiese HTML gesien is as 'n rewolusie wat ons in die toekoms gebring het. Skielik kon ons 'n bladsy dinamies opdateer, data van 'n bediener af kry en vermy om na ander bladsye te navigeer, wat as stadig beskou is en 'n groot wit reghoek op die skerm tussen die twee bladsye flits. Daar was 'n frase, gewild gemaak deur Jeff Atwood (die stigter van StackOverflow), wat lui: “Enige toepassing wat in JavaScript geskryf kan word, sal uiteindelik in JavaScript geskryf word.”— Jeff Atwood

Vir ons het dit destyds gevoel soos 'n waagstuk om eintlik daardie toepassings te gaan skep. Dit het soos 'n kombers goedkeuring gevoel om alles saam met JS te doen. Ons het dus alles saam met JS gedoen, en ons het nie regtig tyd geneem om ander maniere om dinge te doen na te vors nie. Ons het nie regtig die aansporing gevoel om behoorlik te leer wat HTML en CSS kan doen nie. Ons het die web nie regtig as 'n ontwikkelende app-platform in sy geheel beskou nie. Ons het dit meestal gesien as iets waaraan ons moet werk, veral as dit by blaaierondersteuning kom. Ons kan net meer JS daarop gooi om dinge gedoen te kry. Sou dit my gehelp het om die tyd te neem om meer te wete te kom oor hoe die web werk en wat op die platform beskikbaar was? Sekerlik, ek kon waarskynlik 'n klomp kode geskeer het wat nie regtig nodig was nie. Maar, destyds, miskien nie so baie nie. Jy sien, blaaierverskille was destyds redelik beduidend. Dit was 'n tyd toe Internet Explorer steeds die oorheersende blaaier was, met Firefox die naaste tweede, maar begin markaandeel verloor as gevolg van Chrome wat vinnig gewild geword het. Alhoewel Chrome en Firefox redelik goed was om oor webstandaarde ooreen te kom, het die omgewings waarin ons toepassings geloop het, beteken dat ons IE6 vir 'n lang tyd moes ondersteun. Selfs toe ons toegelaat is om IE8 te ondersteun, moes ons steeds baie verskille tussen blaaiers hanteer. Nie net dit nie, maar die web van destyds het net nie soveel vermoëns in die platform ingebou gehad nie.

Vinnig vorentoe na vandag. Dinge het geweldig verander. Ons het nie net meer van hierdie vermoëns as ooit tevore nie, maar die tempo waarteen dit beskikbaar word, het ook toegeneem. Laat ek dan weer die vraag vra: Sal dit jou vandag help om die tyd te neem om meer te wete te kom oor hoe die web werk en wat op die platform beskikbaar is? Absoluut ja. As u vandag leer om die webplatform te verstaan ​​en te gebruik, het u 'n groot voordeel bo ander ontwikkelaars. Of jy nou werk aan werkverrigting, toeganklikheid, responsiwiteit, alles saam, of net die stuur van UI-kenmerke, as jy dit as 'n verantwoordelike ingenieur wil doen, om te weet wat die gereedskap is wat tot jou beskikking is, help jou om jou doelwitte vinniger en beter te bereik. Sommige dinge waarvoor jy dalk nie meer 'n biblioteek nodig het nie Om te weet wat blaaiers vandag ondersteun, is die vraag dan: Wat kan ons laat vaar? Het ons 'n div-komponent nodig om in 2025 afgeronde hoeke te doen? Natuurlik, ons doen dit nie. Die grensradius-eienskap word op hierdie stadium vir meer as 15 jaar deur alle blaaiers wat tans gebruik word, ondersteun. En hoek-vorm kom ook binnekort, vir selfs meer spoggerige hoeke. Kom ons kyk na relatief onlangse kenmerke wat nou in alle groot blaaiers beskikbaar is, en wat jy kan gebruik om bestaande afhanklikhede in jou kodebasis te vervang. Die punt is nie om dadelik al jou geliefde biblioteke te laat vaar en jou kodebasis te herskryf nie. Wat alles anders betref, moet u eers blaaierondersteuning in ag neem en besluit op grond van ander faktore spesifiek vir u projek. Die volgende kenmerke word in die drie hoofblaaier-enjins (Chromium, WebKit en Gecko) geïmplementeer, maar jy het dalk verskillende blaaierondersteuningsvereistes wat jou verhoed om dit dadelik te gebruik. Dit is egter nou nog 'n goeie tyd om meer oor hierdie kenmerke te leer, en miskien beplan om dit een of ander tyd te gebruik. Popovers En Dialogs Die Popover API, die HTML-element en die ::backdrop pseudo-element kan jou help om ontslae te raak van afhanklikhede van opspringer,tooltip, en dialoogbiblioteke, soos Floating UI, Tippy.js, Tether, of React Tooltip. Hulle hanteer toeganklikheid en fokusbestuur vir jou, buite die boks, is hoogs aanpasbaar deur CSS te gebruik, en kan maklik geanimeer word. Trekklaviere Die

-element, sy naamkenmerk vir wedersyds eksklusiewe elemente, en die ::details-content pseudo-element verwyder die behoefte aan trekklavierkomponente soos die Bootstrap Accordion of die React Accordion-komponent. Deur net die platform hier te gebruik, beteken dit dat dit makliker is vir mense wat HTML/CSS ken om jou kode te verstaan ​​sonder om eers te leer om 'n spesifieke biblioteek te gebruik. Dit beteken ook dat jy immuun is teen veranderinge in die biblioteek of die staking van daardie biblioteek. En natuurlik beteken dit minder kode om af te laai en uit te voer. Wedersyds eksklusiewe besonderhede-elemente het nie JS nodig om oop te maak, toe te maak of te animeer nie. CSS-sintaksis Cascade lae, vir 'n meer georganiseerde CSS-kodebasis, CSS-nes, vir meer kompakte CSS, nuwe kleurfunksies, relatiewe kleure en kleurmengsel, nuwe Maths-funksies soos abs(), sign(), pow() en ander help om afhanklikhede van CSS-voorverwerkers, nutsbiblioteke soos Bootstrap en Tailwind, of selfs runtime CSS-in te verminder. Die spelwisselaar :has(), een van die mees gevraagde kenmerke vir 'n lang tyd, verwyder die behoefte aan meer ingewikkelde JS-gebaseerde oplossings. JS Utilities Moderne Array-metodes soos findLast(), of at(), sowel as Stel-metodes soos difference(), intersection(), union() en ander kan afhanklikhede van biblioteke soos Lodash verminder. Houernavrae Houernavrae laat UI-komponente reageer op ander dinge as die viewport-grootte, en maak dit dus meer herbruikbaar oor verskillende kontekste. U hoef nie meer 'n JS-swaar UI-biblioteek hiervoor te gebruik nie, en ook nie 'n polyfill nodig nie. Uitleg Grid, subgrid, flexbox of multi-kolom bestaan nou al lank, maar kyk na die resultate van die State of CSS-opnames, is dit duidelik dat ontwikkelaars geneig is om baie versigtig te wees met die aanneming van nuwe dinge, en baie lank wag voordat hulle dit doen. Hierdie kenmerke is al lank Baseline en jy kan dit gebruik om ontslae te raak van afhanklikhede van dinge soos die Bootstrap se roosterstelsel, Foundation Framework se flexbox utilities, Bulma vaste rooster, Materialize grid, of Tailwind kolomme. Ek sê nie jy moet jou raamwerk laat vaar nie. Jou span het dit vir 'n rede aangeneem, en om dit te verwyder, kan 'n groot projek wees. Maar kyk na wat die webplatform kan bied sonder 'n derdeparty-omhulsel bo-op, hou baie voordele in. Dinge wat jy dalk nie meer in die nabye toekoms nodig het nie Kom ons kyk nou vinnig na sommige van die dinge waarvoor u nie in die nabye toekoms 'n biblioteek nodig sal hê nie. Dit wil sê, die dinge hieronder is nie heeltemal gereed vir massa-aanneming nie, maar om daarvan bewus te wees en te beplan vir moontlike latere gebruik kan nuttig wees. Anker Posisionering CSS-ankerposisionering hanteer die posisionering van opspringers en gereedskapwenke relatief tot ander elemente, en sorg daarvoor om hulle in sig te hou, selfs wanneer die bladsy beweeg, blaai of die grootte verander word. Dit is 'n uitstekende aanvulling tot die Popover API wat voorheen genoem is, wat dit selfs makliker sal maak om weg te migreer van meer prestasie-intensiewe JS-oplossings. Navigasie API Die navigasie-API kan gebruik word om navigasie in enkelbladsy-toepassings te hanteer en kan 'n goeie aanvulling, of selfs 'n plaasvervanger, wees vir React Router, Next.js roetering, of Angular roetering take. Bekyk Transitions API Die View Transitions API kan animeer tussen die verskillende toestande van 'n bladsy. Op 'n enkelbladsy-toepassing maak dit gladde oorgange tussen state baie maklik, en kan jou help om ontslae te raak van animasiebiblioteke soos Anime.js, GSAP of Motion.dev. Nog beter, die API kan ook gebruik word met toepassings met veelvuldige bladsye. Onthou jy vroeër, toe ek gesê het dat die rede waarom ons enkelbladsy-toepassings gebou het by die maatskappy waar ek 15 jaar gelede gewerk het, was om die wit flits van bladsyherlaai te vermy wanneer ons navigeer? As daardie API destyds beskikbaar was, sou ons pragtige bladsy-oorgangseffekte kon bereik sonder 'n enkelbladsy-raamwerk en sonder 'n groot aanvanklike aflaai van die hele toepassing. Rol-gedrewe animasies Rolgedrewe animasies loop op die gebruiker se rolposisie, eerder as met verloop van tyd, wat dit 'n uitstekende oplossing maak vir storievertelling en produktoere. Sommige mense het 'n bietjie oor die top daarmee gegaan, maar wanneer dit goed gebruik word, kan dit 'n baie effektiewe ontwerphulpmiddel wees en kan dit help om ontslae te raak van biblioteke soos: ScrollReveal, GSAP Scroll, ofWOW.js. Aanpasbare keuses 'n Aanpasbare seleksie is 'n normale

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free