Начиная новый мод, я сначала был взволнован тем, что меня будут снабжать новой информацией, которая облегчит мою жизнь. Прошло около четырех дней с миром React, и я еще не ощутил тот момент полного понимания, осознания и блаженства. React заканчивал нокаутировать меня раунд за раундом. Будет ли у меня когда-нибудь этот момент озарения? Нужен ли Реакт? Почему бы мне не заползти обратно в мой удобный мир ванильного JS?

Что такое фреймворки?

Фреймворк — это утвержденное программное обеспечение, которое можно использовать в качестве основы для приложений. Мнение в контексте программирования означает, что существуют определенные договоренности или правила, которым должен следовать пользователь этой структуры. Напротив, не имеющее мнения программное обеспечение обладает большей гибкостью, и разработчик оставляет его на усмотрение пользователя. Хорошим примером беспристрастного программного обеспечения является библиотека Javascript. JS Frameworks — это в основном разные базовые шаблоны, написанные на javascript, которые следуют уникальному набору правил, продиктованных этим конкретным фреймворком. Из-за этих различий мы не можем использовать несколько фреймворков в одном проекте.

Vanilla JS против Framework: React

Как я уже говорил, я все еще жду этого «ага!» момент, который побудит меня выйти из зоны комфорта в мир React. Немного погуглив, я нашел множество ответов пользователей на мою дилемму.

Раунд 1: синтаксис

Сторонники использования ванильного или чистого JS говорят об образовательной ценности знакомства с языком и его большой библиотекой. Поскольку фреймворки javascript создаются с использованием javascript, наличие прочной основы на самом языке чрезвычайно полезно и дает вам свободу строить с нуля.

Минус использования фреймворков в том, что у каждого свои правила, а значит, вам придется знакомиться с новой информацией. Зачем изучать дополнительную информацию о чем-то, когда вы можете добиться тех же результатов, используя только чистый javascript? Если вы сможете преодолеть тот факт, что вам нужно получать больше информации при изучении React, вы поймете, что при использовании React у вас также будет доступ к библиотеке Javascript.

Раунд 2: организация

При создании небольших приложений лучше всего использовать чистый JS. Однако во время недели проекта mod 3 я и мои коллеги по группе быстро поняли, насколько сложно управлять нашим кодом после нескольких дней добавления и удаления методов в различных файлах.

Одним из преимуществ создания больших приложений с помощью React является простота представлений. Сторонники React (а их много) обсуждают преимущества наличия чистых, удобочитаемых компонентов, которые разделяют ваше приложение по функциональности и позволяют легко редактировать код, не беспокоясь о том, что все сломается, что часто событие в течение проектной недели. Тем не менее, React может облегчить вам разделение кода на части, но ваш общий проект все еще может раздуваться из-за строк кода. Вполне возможно, что он может раздуть больше, чем если бы вы написали всю свою программу, используя только ванильный JS.

Раунд 3: отладка и DOM

Одной из самых больших трудностей при создании одностраничных приложений (SPA) с использованием только ванильного JS является управление DOM. Наш проект был переполнен <div>, и наши мозги чувствовали себя парализованными после нескольких часов написания многочисленных обработчиков событий и выяснения того, что не работает, а что ломается. Процесс был трудоемким и неэффективным, и хотя мы в конце концов разобрались и получили работающее приложение, мысль о внесении дополнительных изменений пугала.

Однако на другой стороне холма в мире React все, кажется, резвятся в раю. В декларативном мире React никто не просматривает дерево DOM вручную; они просто объявляют об изменении, а React сделает все остальное с помощью виртуального DOM. Чтобы наглядно это представить, на ютубе есть несколько роликов, и этот оказался весьма занимательным и информативным. Виртуальный DOM значительно упрощает внесение изменений и отладку кода без утомительной работы с DOM.

Итак… должен ли я покинуть мир Vanilla JS?

И да и нет. Похоже, есть явное преимущество в использовании React. Однако это не означает, что мы должны полностью отказаться от vanilla JS. Все эти фреймворки построены на javascript, и многие пользователи подчеркивают важность создания прочной основы в javascript, прежде чем погрузиться в мир фреймворков. Как бы мне не хотелось признавать, как мне не хотелось признавать, что Мейвезер победил МакГрегора и Пакьяо, React действительно выигрывает матч против vanilla JS.