Преди около 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), но може да имате различни изисквания за поддръжка на браузъра, които ви пречат да ги използвате веднага. Сега обаче все още е добър момент да научите за тези функции и може би да планирате да ги използвате в даден момент. Изскачащи прозорци и диалози API Popover, 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 Съвременните методи за масив като findLast() или at(), както и Set методи като difference(), intersection(), union() и други могат да намалят зависимостите от библиотеки като Lodash. Заявки за контейнери Контейнерните заявки карат компонентите на потребителския интерфейс да реагират на неща, различни от размера на прозореца за изглед, и следователно ги правят по-използваеми многократно в различни контексти. Вече няма нужда да използвате библиотека с потребителски интерфейс, натоварена с JS, и няма нужда да използвате polyfill. Оформление Grid, subgrid, flexbox или multi-column съществуват отдавна, но като погледнем резултатите от проучванията за състоянието на CSS, става ясно, че разработчиците са склонни да бъдат много предпазливи с приемането на нови неща и чакат много дълго време, преди да го направят. Тези функции са били базови за дълго време и бихте могли да ги използвате, за да се отървете от зависимостите от неща като мрежовата система на Bootstrap, помощните програми flexbox на Foundation Framework, фиксираната мрежа на Bulma, мрежата Materialize или колоните Tailwind. Не казвам, че трябва да изоставите вашата рамка. Вашият екип го прие с причина и премахването му може да е голям проект. Но гледайки какво може да предложи уеб платформата без обвивка на трета страна отгоре, идва с много предимства. Неща, от които може да не се нуждаете повече в близко бъдеще Сега нека да разгледаме набързо някои от нещата, за които няма да имате нужда от библиотека в близко бъдеще. С други думи, нещата по-долу не са съвсем готови за масово приемане, но осъзнаването им и планирането за потенциална по-късна употреба може да бъде полезно. Позициониране на котвата Позиционирането на CSS anchor управлява позиционирането на изскачащите и подсказките спрямо други елементи и се грижи за поддържането им в изглед дори при преместване, превъртане или преоразмеряване на страницата. Това е страхотно допълнение към Popover API, споменато по-горе, което ще направи още по-лесно мигрирането от по-интензивни JS решения. API за навигация API за навигация може да се използва за обработка на навигация в приложения с една страница и може да бъде чудесно допълнение или дори заместител на задачите за маршрутизиране на React Router, Next.js или Angular. Преглед на API за преходи API за преглед на преходи може да анимира между различните състояния на страница. В приложение с една страница това прави плавните преходи между състоянията много лесни и може да ви помогне да се отървете от библиотеки за анимация като Anime.js, GSAP или Motion.dev. Дори по-добре, API може да се използва и с многостранични приложения. Спомняте ли си по-рано, когато казах, че причината, поради която създадохме едностранични приложения в компанията, в която работих преди 15 години, беше да избегнем бялото светкавица при презареждане на страници при навигиране? Ако този API беше наличен по това време, щяхме да успеем да постигнем красиви ефекти на прехода на страници без рамка на една страница и без огромно първоначално изтегляне на цялото приложение. Анимации, управлявани от превъртане Анимациите, управлявани от превъртане, се изпълняват на позицията на превъртане на потребителя, а не във времето, което ги прави чудесно решение за разказване на истории и продуктови обиколки. Някои хора са прекалили с него, но когато се използва добре, това може да бъде много ефективен инструмент за проектиране и може да помогне да се отървете от библиотеки като: ScrollReveal, GSAP Scroll илиWOW.js. Избира се по избор Персонализиращият селект е нормален

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

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free