Mga 15 taon na ang nakalipas, nagtatrabaho ako sa isang kumpanya kung saan nagtayo kami ng mga app para sa mga ahente sa paglalakbay, manggagawa sa paliparan, at mga kumpanya ng airline. Bumuo din kami ng sarili naming in-house na framework para sa mga bahagi ng UI at mga kakayahan ng app sa isang pahina. Mayroon kaming mga bahagi para sa lahat: mga field, button, tab, range, datatable, menu, datepicker, select, at multiselect. Nagkaroon pa kami ng div component. Mahusay ang aming bahagi ng div, pinahintulutan kaming gumawa ng mga pabilog na sulok sa lahat ng mga browser, na, maniwala ka man o hindi, ay hindi isang madaling bagay na gawin noong panahong iyon.

Ang aming gawain ay naganap sa isang punto sa aming kasaysayan nang ang JS, Ajax, at dynamic na HTML ay nakita bilang isang rebolusyon na nagdala sa amin sa hinaharap. Bigla, maaari naming i-update ang isang pahina nang dynamic, kumuha ng data mula sa isang server, at maiwasan ang pag-navigate sa iba pang mga pahina, na nakitang mabagal at nag-flash ng malaking puting parihaba sa screen sa pagitan ng dalawang pahina. Mayroong isang parirala, na ginawang tanyag ni Jeff Atwood (ang tagapagtatag ng StackOverflow), na nagbabasa: "Anumang application na maaaring isulat sa JavaScript ay sa kalaunan ay isusulat sa JavaScript." - Jeff Atwood

Para sa amin noong panahong iyon, parang isang lakas ng loob na talagang pumunta at gumawa ng mga app na iyon. Parang isang blanket na pag-apruba na gawin ang lahat sa JS. Kaya ginawa namin ang lahat sa JS, at hindi talaga kami naglaan ng oras para magsaliksik ng iba pang paraan ng paggawa ng mga bagay. Hindi talaga namin naramdaman ang insentibo upang matutunan nang maayos kung ano ang magagawa ng HTML at CSS. Hindi namin talaga naisip ang web bilang isang umuusbong na platform ng app sa kabuuan nito. Karamihan ay nakita namin ito bilang isang bagay na kailangan naming ayusin, lalo na pagdating sa suporta sa browser. Maaari lang namin itong ihagis ng higit pang JS para magawa ang mga bagay-bagay. Nakatulong ba sa akin ang paglalaan ng oras upang matuto nang higit pa tungkol sa kung paano gumagana ang web at kung ano ang available sa platform? Oo naman, malamang na nag-ahit ako ng isang grupo ng code na hindi talaga kailangan. Ngunit, sa oras na iyon, marahil ay hindi gaanong. Kita mo, ang mga pagkakaiba sa browser ay medyo makabuluhan noon. Ito ang panahon kung saan ang Internet Explorer pa rin ang nangingibabaw na browser, kung saan ang Firefox ang naging malapit na pangalawa, ngunit nagsisimula nang mawalan ng bahagi sa merkado dahil sa mabilis na pagkakaroon ng katanyagan ng Chrome. Bagama't medyo mahusay ang Chrome at Firefox sa pagsang-ayon sa mga pamantayan sa web, ang mga kapaligiran kung saan tumatakbo ang aming mga app ay nangangahulugan na kailangan naming suportahan ang IE6 sa mahabang panahon. Kahit na pinahintulutan kaming suportahan ang IE8, kailangan pa rin naming harapin ang maraming pagkakaiba sa pagitan ng mga browser. Hindi lang iyon, ngunit ang web ng panahon ay walang ganoong karaming kakayahan na binuo mismo sa platform.

Fast forward hanggang ngayon. Ang mga bagay ay nagbago nang husto. Hindi lamang mayroon tayong higit sa mga kakayahan na ito kaysa dati, ngunit ang bilis ng pagiging available ng mga ito ay tumaas din. Hayaan akong magtanong muli, kung gayon: Makakatulong ba sa iyo ngayon ang paglalaan ng oras upang matuto nang higit pa tungkol sa kung paano gumagana ang web at kung ano ang available sa platform? Oo naman. Ang pag-aaral na maunawaan at gamitin ang web platform ngayon ay nagbibigay sa iyo ng malaking kalamangan sa iba pang mga developer. Magtrabaho ka man sa performance, accessibility, responsiveness, lahat ng ito nang magkasama, o nagpapadala lang ng mga feature ng UI, kung gusto mong gawin ito bilang isang responsableng engineer, ang pag-alam sa mga tool na available sa iyo ay makakatulong sa iyong maabot ang iyong mga layunin nang mas mabilis at mas mahusay. Ilang Bagay na Maaaring Hindi Mo Na Kailangan Ng Aklatan Ang pag-alam kung ano ang sinusuportahan ng mga browser ngayon, ang tanong, kung gayon, ay: Ano ang maaari nating itapon? Kailangan ba natin ng div component para makagawa ng mga rounded corner sa 2025? Siyempre, hindi namin ginagawa. Ang pag-aari ng border-radius ay suportado ng lahat ng kasalukuyang ginagamit na browser nang higit sa 15 taon sa puntong ito. At malapit na rin ang hugis ng sulok, para sa mas magarbong sulok. Tingnan natin ang mga relatibong kamakailang feature na available na ngayon sa lahat ng pangunahing browser, at magagamit mo para palitan ang mga kasalukuyang dependency sa iyong codebase. Ang punto ay hindi agad itapon ang lahat ng iyong minamahal na aklatan at muling isulat ang iyong codebase. Tulad ng para sa lahat ng iba pa, kakailanganin mong isaalang-alang muna ang suporta sa browser at magpasya batay sa iba pang mga salik na partikular sa iyong proyekto. Ang mga sumusunod na feature ay ipinatupad sa tatlong pangunahing browser engine (Chromium, WebKit, at Gecko), ngunit maaari kang magkaroon ng iba't ibang mga kinakailangan sa suporta sa browser na pumipigil sa iyong gamitin kaagad ang mga ito. Ngayon ay isang magandang panahon pa rin upang malaman ang tungkol sa mga tampok na ito, bagaman, at marahil ay planong gamitin ang mga ito sa isang punto. Mga Popover At Dialog Ang Popover API, ang

HTML element, at ang ::backdrop na pseudo-element ay makakatulong sa iyo na alisin ang mga dependency sa popup,tooltip, at mga dialog na library, gaya ng Floating UI, Tippy.js, Tether, o React Tooltip. Pinangangasiwaan nila ang pagiging naa-access at pamamahala ng focus para sa iyo, sa labas ng kahon, ay lubos na nako-customize sa pamamagitan ng paggamit ng CSS, at madaling ma-animate. Akordyon Ang elementong
, ang attribute ng pangalan nito para sa mga elementong magkaparehong eksklusibo, at ang ::details-content pseudo-element ay nag-aalis ng pangangailangan para sa mga bahagi ng accordion tulad ng Bootstrap Accordion o ang React Accordion na bahagi. Ang paggamit lang ng platform dito ay nangangahulugan na mas madali para sa mga taong may alam sa HTML/CSS na maunawaan ang iyong code nang hindi na kailangang matuto munang gumamit ng isang partikular na library. Nangangahulugan din ito na ikaw ay immune sa paglabag sa mga pagbabago sa library o ang paghinto ng library na iyon. At, siyempre, nangangahulugan ito ng mas kaunting code upang i-download at patakbuhin. Ang mga elemento ng parehong eksklusibong detalye ay hindi nangangailangan ng JS upang buksan, isara, o i-animate. CSS Syntax Ang mga cascade layer, para sa isang mas organisadong CSS codebase, CSS nesting, para sa mas compact na CSS, mga bagong function ng kulay, mga relatibong kulay, at color-mix, ang mga bagong function ng Maths tulad ng abs(), sign(), pow() at iba pa ay nakakatulong na bawasan ang mga dependency sa CSS pre-processors, utility library tulad ng Bootstrap at Tailwind, o kahit na runtime CSS-in-JS library. Ang game changer :has(), isa sa mga pinaka-hinihiling na feature sa mahabang panahon, ay nag-aalis ng pangangailangan para sa mas kumplikadong JS-based na mga solusyon. Mga Utility ng JS Ang mga makabagong pamamaraan ng Array tulad ng findLast(), o at(), pati na rin ang Itakda ang mga pamamaraan tulad ng difference(), intersection(), unyon() at iba pa ay maaaring mabawasan ang mga dependencies sa mga library tulad ng Lodash. Mga Query sa Container Ginagawa ng mga query sa container na tumugon ang mga bahagi ng UI sa mga bagay maliban sa laki ng viewport, at samakatuwid ay ginagawa itong mas magagamit muli sa iba't ibang konteksto. Hindi na kailangang gumamit ng JS-heavy UI library para dito, at hindi na rin kailangang gumamit ng polyfill. Layout Matagal nang umiiral ang grid, subgrid, flexbox, o multi-column, ngunit sa pagtingin sa mga resulta ng mga survey ng State of CSS, malinaw na ang mga developer ay may posibilidad na maging napaka-ingat sa pag-adopt ng mga bagong bagay, at maghintay ng napakatagal bago nila gawin. Matagal nang Baseline ang mga feature na ito at magagamit mo ang mga ito para maalis ang mga dependency sa mga bagay tulad ng grid system ng Bootstrap, flexbox utilities ng Foundation Framework, Bulma fixed grid, Materialize grid, o Tailwind column. Hindi ko sinasabi na dapat mong i-drop ang iyong framework. Pinagtibay ito ng iyong team para sa isang dahilan, at ang pag-alis dito ay maaaring isang malaking proyekto. Ngunit ang pagtingin sa kung ano ang maiaalok ng web platform nang walang third-party na wrapper sa itaas ay may maraming benepisyo. Mga Bagay na Maaaring Hindi Mo Na Kailangan Sa Nalalapit na Hinaharap Ngayon, tingnan natin ang ilan sa mga bagay na hindi mo kakailanganin ng library sa malapit na hinaharap. Ibig sabihin, ang mga bagay sa ibaba ay hindi pa handa para sa malawakang pag-aampon, ngunit ang pagkakaroon ng kamalayan sa mga ito at pagpaplano para sa potensyal na paggamit sa ibang pagkakataon ay maaaring makatulong. Anchor Positioning Pinangangasiwaan ng CSS anchor positioning ang pagpoposisyon ng mga popover at tooltip na nauugnay sa iba pang mga elemento, at pinangangasiwaan ang pagpapanatiling nakikita ang mga ito, kahit na gumagalaw, nag-i-scroll, o nagre-resize ng page. Ito ay isang mahusay na pandagdag sa Popover API na nabanggit dati, na gagawing mas madali ang paglipat palayo sa mas maraming performance-intensive na JS solution. Navigation API Ang Navigation API ay maaaring gamitin upang pangasiwaan ang pag-navigate sa mga single-page na app at maaaring maging isang mahusay na pandagdag, o kahit isang kapalit, sa React Router, Next.js routing, o Angular routing tasks. Tingnan ang Transitions API Ang View Transitions API ay maaaring mag-animate sa pagitan ng iba't ibang estado ng isang page. Sa isang pahinang application, napakadali nitong ginagawang maayos na paglipat sa pagitan ng mga estado, at makakatulong sa iyong alisin ang mga library ng animation gaya ng Anime.js, GSAP, o Motion.dev. Kahit na mas mabuti, ang API ay maaari ding gamitin sa maramihang-pahinang mga application. Tandaan kanina, noong sinabi ko na ang dahilan kung bakit kami nagtayo ng mga single-page na app sa kumpanya kung saan ako nagtrabaho 15 taon na ang nakakaraan ay upang maiwasan ang puting flash ng pag-reload ng pahina kapag nagna-navigate? Kung available ang API na iyon sa panahong iyon, makakamit namin ang magagandang epekto sa paglipat ng pahina nang walang isang solong-page na framework at walang malaking paunang pag-download ng buong app. Mga scroll-driven na animation Ang mga scroll-driven na animation ay tumatakbo sa posisyon ng pag-scroll ng user, sa halip na sa paglipas ng panahon, na ginagawa silang isang mahusay na solusyon para sa pagkukuwento at mga paglilibot sa produkto. Medyo nalampasan na ito ng ilang tao, ngunit kapag ginamit nang maayos, maaari itong maging isang napakaepektibong tool sa pagdidisenyo, at makakatulong ito sa pag-alis ng mga aklatan tulad ng: ScrollReveal, GSAP Scroll, oWOW.js. Nako-customize na Mga Pinili Ang nako-customize na pili ay isang normal na elemento ng

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free