Каля 15 гадоў таму я працаваў у кампаніі, дзе мы стваралі прыкладанні для турагентаў, работнікаў аэрапорта і авіякампаній. Мы таксама стварылі ўласную структуру для кампанентаў карыстальніцкага інтэрфейсу і магчымасцей аднастаронкавых прыкладанняў. У нас былі кампаненты для ўсяго: палі, кнопкі, укладкі, дыяпазоны, табліцы даных, меню, сродкі выбару дат, выбар і множны выбар. У нас нават быў кампанент div. Дарэчы, наш кампанент div быў выдатным, ён дазваляў нам рабіць закругленыя вуглы ва ўсіх браўзерах, што, верыце ці не, было нялёгкай справай у той час.

Наша праца адбывалася ў момант нашай гісторыі, калі JS, Ajax і дынамічны HTML разглядаліся як рэвалюцыя, якая прывяла нас у будучыню. Раптам мы маглі дынамічна абнаўляць старонку, атрымліваць даныя з сервера і пазбягаць неабходнасці пераходзіць на іншыя старонкі, што разглядалася як павольнае і міргаў вялікім белым прастакутнікам на экране паміж дзвюма старонкамі. Была фраза, якую зрабіў папулярным Джэф Этвуд (заснавальнік StackOverflow), якая абвяшчала: «Любое прыкладанне, якое можа быць напісана на JavaScript, у канчатковым выніку будзе напісана на JavaScript», — Джэф Этвуд

Для нас у той час гэта адчувалася як смеласць пайсці і стварыць гэтыя праграмы. Гэта адчувалася як поўнае адабрэнне рабіць усё з JS. Такім чынам, мы рабілі ўсё з JS, і мы сапраўды не марнавалі час на вывучэнне іншых спосабаў рабіць рэчы. Мы сапраўды не адчувалі стымулу належным чынам вывучаць, што могуць рабіць HTML і CSS. Мы на самой справе не ўспрымалі Інтэрнэт як платформу прыкладанняў, якая развіваецца ў цэлым. У асноўным мы разглядалі гэта як тое, што нам трэба абыйсці, асабліва калі справа даходзіла да падтрымкі браўзераў. Мы маглі б проста дадаць больш JS, каб зрабіць усё. Ці дапамог бы мне час, каб даведацца больш пра тое, як працуе Інтэрнэт і што даступна на платформе? Безумоўна, я мог бы скараціць кучу кода, які сапраўды не патрэбны. Але ў той час, магчыма, не так шмат. Разумееце, адрозненні ў браўзерах тады былі даволі значнымі. Гэта быў час, калі Internet Explorer па-ранейшаму быў дамінуючым браўзерам, а Firefox займаў другое месца, але пачаў губляць долю рынку з-за хуткага росту папулярнасці Chrome. Нягледзячы на ​​тое, што Chrome і Firefox даволі добра ўзгаднілі вэб-стандарты, асяроддзе, у якім працавалі нашы праграмы, азначала, што мы павінны былі падтрымліваць IE6 на працягу доўгага часу. Нават калі нам дазволілі падтрымліваць IE8, нам усё роўна даводзілася мець справу з вялікай колькасцю адрозненняў паміж браўзерамі. Мала таго, сетка таго часу проста не мела столькі магчымасцей, убудаваных непасрэдна ў платформу.

Перамотка ў сённяшні дзень. Усё вельмі змянілася. У нас не толькі больш гэтых магчымасцей, чым калі-небудзь раней, але і хуткасць, з якой яны становяцца даступнымі, таксама павялічылася. Дазвольце мне яшчэ раз задаць пытанне: ці дапаможа вам сёння час, каб даведацца больш пра тое, як працуе Інтэрнэт і што даступна на платформе? Абсалютна так. Навучанне разуменню і выкарыстанні вэб-платформы сёння дае вам вялікую перавагу перад іншымі распрацоўшчыкамі. Незалежна ад таго, працуеце вы над прадукцыйнасцю, даступнасцю, хуткасцю рэагавання, усімі імі разам, або проста надае функцыямі карыстальніцкага інтэрфейсу, калі вы хочаце рабіць гэта як адказны інжынер, веданне даступных вам інструментаў дапаможа вам дасягнуць вашых мэтаў хутчэй і лепш. Некаторыя рэчы, для якіх вам можа больш не спатрэбіцца бібліятэка Ведаючы, якія браўзеры падтрымліваюць сёння, узнікае пытанне: ад чаго мы можам адмовіцца? Ці патрэбны нам кампанент div, каб рабіць закругленыя вуглы ў 2025 годзе? Вядома, мы не робім. На гэты момант уласцівасць border-radius падтрымліваецца ўсімі браўзерамі, якія выкарыстоўваюцца ў цяперашні час больш за 15 гадоў. Неўзабаве таксама з'явіцца кутняя форма для яшчэ больш шыкоўных куткоў. Давайце паглядзім на адносна нядаўнія функцыі, якія цяпер даступныя ва ўсіх асноўных браўзерах, і якія вы можаце выкарыстоўваць для замены існуючых залежнасцяў у вашай базе кода. Сэнс не ў тым, каб неадкладна адмовіцца ад усіх вашых любімых бібліятэк і перапісаць вашу кодавую базу. Што тычыцца ўсяго астатняга, вам трэба спачатку прыняць да ўвагі падтрымку браўзера і прыняць рашэнне на аснове іншых фактараў, характэрных для вашага праекта. Наступныя функцыі рэалізаваны ў трох асноўных рухавіках браўзера (Chromium, WebKit і Gecko), але ў вас могуць быць іншыя патрабаванні да падтрымкі браўзера, якія не дазваляюць выкарыстоўваць іх адразу. Тым не менш, зараз усё яшчэ добры час, каб даведацца пра гэтыя функцыі і, магчыма, запланаваць іх выкарыстанне ў нейкі момант. Усплывальныя вокны і дыялогі Popover API, HTML-элемент

і псеўдаэлемент ::backdrop могуць дапамагчы вам пазбавіцца ад залежнасці ад усплывальных вокнаў,падказка і дыялогавыя бібліятэкі, такія як Floating UI, Tippy.js, Tether або React Tooltip. Яны забяспечваюць доступ і кіруюць факусоўкай за вас адразу, іх можна лёгка наладзіць з дапамогай CSS і лёгка анімаваць. Акардэоны Элемент
, яго атрыбут name для ўзаемавыключальных элементаў і псеўдаэлемент ::details-content пазбаўляюць ад неабходнасці кампанентаў акардэона, такіх як Bootstrap Accordion або кампанент React Accordion. Проста выкарыстанне платформы азначае, што людзям, якія ведаюць HTML/CSS, прасцей зразумець ваш код без неабходнасці спачатку вучыцца карыстацца пэўнай бібліятэкай. Гэта таксама азначае, што вы застрахаваны ад паломкі ў бібліятэцы або спынення гэтай бібліятэкі. І, вядома, гэта азначае меншую колькасць кода для загрузкі і запуску. Для адкрыцця, закрыцця або анімацыі элементаў узаемавыключальных дэталяў не патрабуецца JS. Сінтаксіс CSS Каскадныя слаі для больш арганізаванай кодавай базы CSS, укладванне CSS для больш кампактнага CSS, новыя функцыі колеру, адносныя колеры і змешванне колераў, новыя матэматычныя функцыі, такія як abs(), sign(), pow() і іншыя, дапамагаюць паменшыць залежнасць ад папярэдніх працэсараў CSS, бібліятэк утыліт, такіх як Bootstrap і Tailwind, ці нават бібліятэк CSS-in-JS падчас выканання. Змена гульні :has(), адна з найбольш запатрабаваных функцый на працягу доўгага часу, пазбаўляе ад патрэбы ў больш складаных рашэннях на аснове JS. Утыліты JS Сучасныя метады Array, такія як findLast() або at(), а таксама метады Set, такія як difference(), intersection(), union() і іншыя, могуць паменшыць залежнасці ад такіх бібліятэк, як Lodash. Запыты кантэйнераў Кантэйнерныя запыты прымушаюць кампаненты карыстацкага інтэрфейсу рэагаваць на іншыя рэчы, акрамя памеру прагляду, і, такім чынам, робяць іх больш прыдатнымі для шматразовага выкарыстання ў розных кантэкстах. Для гэтага больш не трэба выкарыстоўваць бібліятэку карыстальніцкага інтэрфейсу, насычаную JS, і таксама не трэба выкарыстоўваць полізапаўненне. Макет Сетка, падсетка, flexbox або некалькі слупкоў існуюць ужо даўно, але, гледзячы на ​​вынікі апытанняў стану CSS, становіцца ясна, што распрацоўшчыкі, як правіла, вельмі асцярожныя з прыняццем новых рэчаў і чакаюць вельмі доўга, перш чым гэта зрабіць. Гэтыя функцыі былі базавымі на працягу доўгага часу, і вы можаце выкарыстоўваць іх, каб пазбавіцца ад залежнасці ад такіх рэчаў, як сістэма сеткі Bootstrap, утыліты flexbox Foundation Framework, фіксаваная сетка Bulma, сетка Materialize або калонкі Tailwind. Я не кажу, што вы павінны адмовіцца ад сваёй структуры. Ваша каманда прыняла гэта нездарма, і яго выдаленне можа быць вялікім праектам. Але гледзячы на ​​тое, што можа прапанаваць вэб-платформа без старонняй абгорткі, яна дае шмат пераваг. Рэчы, якія вам могуць больш не спатрэбіцца ў бліжэйшай будучыні Зараз давайце паглядзім на тое, для чаго бібліятэка вам не спатрэбіцца ў бліжэйшай будучыні. Гэта значыць, рэчы, прыведзеныя ніжэй, яшчэ не зусім гатовыя да масавага прыняцця, але ўсведамленне іх і планаванне патэнцыйнага наступнага выкарыстання можа быць карысным. Якарнае пазіцыянаванне Якарнае пазіцыянаванне CSS апрацоўвае размяшчэнне ўсплываючых вобразаў і падказак адносна іншых элементаў і клапоціцца пра тое, каб яны былі ў полі зроку, нават пры перамяшчэнні, прагортцы або змене памеру старонкі. Гэта выдатнае дадатак да Popover API, згаданага раней, што зробіць яшчэ прасцейшым пераход ад рашэнняў JS, якія патрабуюць большай прадукцыйнасці. API навігацыі Навігацыйны API можна выкарыстоўваць для кіравання навігацыяй у аднастаронкавых праграмах і можа быць выдатным дадаткам ці нават заменай задачам маршрутызацыі React Router, Next.js або Angular. API прагляду пераходаў View Transitions API можа анімаваць паміж рознымі станамі старонкі. У аднастаронкавым дадатку гэта робіць плыўныя пераходы паміж станамі вельмі лёгкімі і можа дапамагчы вам пазбавіцца ад такіх бібліятэк анімацыі, як Anime.js, GSAP або Motion.dev. Што яшчэ лепш, API можна таксама выкарыстоўваць з шматстаронкавымі праграмамі. Памятаеце раней, калі я казаў, што прычына, па якой мы стваралі аднастаронкавыя прыкладанні ў кампаніі, дзе я працаваў 15 гадоў таму, заключалася ў тым, каб пазбегнуць белай успышкі перазагрузкі старонак падчас навігацыі? Калі б гэты API быў даступны ў той час, мы змаглі б дасягнуць выдатных эфектаў пераходу старонак без аднастаронкавай структуры і без вялікай першапачатковай загрузкі ўсяго прыкладання. Анімацыя з пракруткай Анімацыя, кіраваная пракруткай, запускаецца на месцы пракруткі карыстальніка, а не з цягам часу, што робіць яе выдатным рашэннем для апавядання і агляду прадукту. Некаторыя людзі крыху перастараліся з гэтым, але пры правільным выкарыстанні гэта можа быць вельмі эфектыўным інструментам дызайну і можа дапамагчы пазбавіцца ад такіх бібліятэк, як: ScrollReveal, GSAP Scroll абоWOW.js. Наладжвальныя выбары Наладжвальны элемент select - гэта звычайны элемент

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free