Рубрики
Без рубрики

Нам все еще нужны JavaScript Frameworks?

Люк Джолиат нам все еще нужен JavaScript Frameworks? Как веб-разработчик, я пытаюсь регулярно оценить мою инструкцию и определить, могу ли я сделать без этого или этого инструмента. Недавно я расследую, насколько легко развивать комплексное приложение переднего конца без

Люк Джолиата

В качестве веб-разработчика я пытаюсь регулярно оценить мою инструкцию и определить, могу ли я сделать без этого или этого инструмента. Недавно я расследую, насколько легко развивать комплексное приложение переднего конца без передней конечной структуры.

Что такое JavaScript Framework?

Проще говоря, JavaScript Framework – это инструмент, который вы можете использовать для разработки расширенных веб-приложений, особенно спа.

Вернувшись в день, веб-разработчики будут реализовывать логику передней части, сильно полагаясь на ванильные JS и jQuery. Но, поскольку приложения переднего конца стали все более сложными, инструменты поднялись, чтобы удовлетворить эту сложность.

Основы, которые популярны сегодня, имеют несколько основных общ. Большинство передних рамок/библиотек, от Vue, чтобы реагировать, обеспечить некоторую комбинацию следующего:

  • Синхронизация состояния и просмотра
  • Маршрутизация
  • Система шаблона
  • Многоразовые компоненты

Кадры все еще необходимы?

Это зависит от того, как вы подчеркиваете слово необходимо. Многие утверждают, что фронтальные рамки не являются и никогда не были необходимы. Это очень полезные инструменты, хотя.

Таким образом, вопрос в том, это Франки сегодняшний jQuery? Будут ли проблемы, которые они решают, будут рассмотрены изменения, как те, к DOM API?

Это трудно сказать, но достижения в родных JS, компонент спецификации веб, и легко настраиваемые инструменты для сборки, сделанные разработки SPA без рамки, как легко, как это когда-либо.

Для того, чтобы дальнейшее рассмотрение этого вопроса, я разработал одно приложение страницы, используя только ванильный JavaScript, родные веб-компоненты и посылки. Было несколько ошибок и трудностей по пути, который подчеркивает сильные рамки JS.

В то же время, как только я проехал начальные препятствия, я был удивлен тем, насколько просто было создать приложение одной страницы только с Vanilla JS.

Обзор

Приложение просто. Это приложение рецептов с основными возможностями CRUD. Пользователь может создавать, редактировать, удалять, любимый, и фильтровать список рецептов.

Компоненты

Создание веб-компонента также является простым. Вы создаете класс, который расширяется Htmlelement (или HTMLParmagelement и так далее), а затем использовать этот класс, чтобы определить пользовательский элемент.

Вы также можете использовать крючки жизненного цикла, такие как ConnectedCallback, DisconnectedCallback, AttributeChangedCallback.

Маршрутизация

Маршрутизации для применения рецептов также довольно просто. Учитывая навигации событие, я установил содержание приложения к соответствующему веб-компонента.

Изначально я использовал пакет NPM, называемый Vanilla JS Router. С История браузера API , Это не все, что сложно реализовать свой собственный в менее чем 100 строк кода! Примечание: Я не реализую очень сложную логику таких как маршрут охранники.

Это краткое резюме. Я хочу сохранить эту статью до разумной длины. Я могу написать последующий пост с более тщательным объяснением приложения. Я реализовал несколько веселых функций, таких как бесконечная прокрутка, пользовательский перетаскиватель загрузчика и многое другое!

Ретроспектива

После создания приложения я потребовалось некоторое время, чтобы подумать о плюсах и минусах всего процесса от начала до конца. Я начну с плохих новостей.

Господин

Спецификация все еще в потоке

Спец веб-компонента – старый, так и новый. Это было вокруг намного дольше, чем я изначально думал. Веб-компоненты были введен Алексером Рассел На ранних конференции 2011 года впервые. Однако толчок за веб-компонентами действительно вырос в прошлом году или два. Как таковой, в спецификации еще много беспорядков. Например, импорт HTML был заброшен, хотя большая часть документации/ресурсов все еще ссылается на них.

Тестирование

Там нет много выделенных ресурсов для тестирования местных веб-компонентов. Есть несколько перспективных инструментов, таких как Skatejs ssr. и Тестер веб-компонента от полимера. Но эти инструменты действительно предназначены для использования с их соответствующими библиотеками. Это представляет некоторые трудности для использования с родными веб-компонентами.

Изменить обнаружение

Наличие базовой системы, которая автоматически сохраняет представление в синхронизации с моделью данных, невероятна. Это то, что нарисовало многих к угловым и другим каркасам в первую очередь.

Сохранение состояния в синхронизации с видом не так сложно в небольшом масштабе. Но это может выйти из контроля очень быстро, и вы оказываетесь добавлять тонны слушателей событий и селекторов запросов.

Тень DOM

Я действительно разорвался в тени Dom. С одной стороны, я люблю идею инкапсуляции. Это разумный рисунок дизайна, делает ваш стиль каскада более управляемыми, упрощает ваши проблемы и так далее. Тем не менее, он также представляет проблемы, когда вы хотите, чтобы определенные вещи проникли в то, что инкапсуляция (например, лист общего стиля), и есть постоянные дебаты о Лучший способ сделать это.

Создание структур DOM

Часть великолепие фреймворков/библиотек, таких как угловые и реагирование, состоит в том, что они являются мастерами их домена. То есть они превосходны при эффективных рендерингах и повторных рендерингах в доме. От Угловой университетский блог :

Угловой, например, в отличие от jQuery, непосредственно оказывает структуры DOM данных. То есть вместо того, чтобы пропустить HTML к браузеру для анализа, а затем отображается в структуры данных DOM. Это более производительным, поскольку это исключает, что шаг синтаксического анализа. Виртуальный дом также довольно полезен, поскольку они помешают вам повторно рендерировать все каждый раз, когда вам нужно обновить свой вид.

Плюс

С другой стороны, есть некоторые неоспоримые преимущества для разработки приложений, таким образом:

Bundle Размер

Конечный продукт может быть (акцент на Can ) намного меньше и более компактно, чем все, что развивается с современными рамками. Например, финальная версия моего полнофункциональных рецептов приложения была меньше, чем половина размера свежих угловых сборок.

Примечание: Эти обновленные, оптимизированные размеры пучка.

Понимание

Если вы действительно разработали только с рамки и его CLI, это может быть отличным упражнением, чтобы сделать веб-приложение без дополнительных инструментов. Как тот, кто хочет достичь определенного уровня мастерства (в той мере, в той мере можно) веб-разработки, для меня было важно получить больше практического опыта работы с инструментами сборки, API для браузера, шаблонами дизайна и т. Д.

Представление

Какие эти передние рамки и библиотеки делают за кулисами, удивительно. Тем не менее, вы можете оплатить цену производительности, если вы решите использовать любой из них; Там нет такой вещи, как бесплатный обед. В масштабе существует множество потенциальных выступлений. Вы можете вырезать много сложности здесь, реализуя вещи с нуля.

Команды угловых и реагирования, кажется, знают об этих подводных камнях и предоставили такие вещи, как Настоящий Переопределение метода и onpush СМОТРЕННОСТЬ как средство дополнительной оптимизации производительности.

Простота и владение кодом

Вы берете на себя риск, когда вы приносите в коде 3 партии. Этот риск снижается с проверенными библиотеками/рамками, но никогда по-настоящему устранен. Если вы можете уйти с написанием коды самостоятельно или с вашей командой, вы можете уменьшить этот риск и поддерживать кодовое что вы знаете, и снаружи.

Примечания и интересные Tidbits

У меня был взрыв, работающий с посылкой. Он чувствовал немного более ограниченный, чем усерд.

Мне также ясно, что многие этикетки реагируют на «библиотеку» и Vue «Прогрессивная» структура. Хотя я понимаю причины этого, я думаю, что реагируют, Vue и угловые решают многие из тех же проблем. Таким образом, я рассматриваю их все вместе под термином «рамки».

Почему бы не использовать трафарет или полимер? Я хотел избежать использования пакетов, библиотек и каркасов как можно больше. Я хотел посмотреть, как далекие веб-стандарты выросли, чтобы удовлетворить современное развитие (кроме инструментов сборки).

Я уверен, что многие другие способы разработки приложения SPA или переднего конца в целом без основных структур или библиотеки я попробовал сюда один путь, и я хотел бы услышать о других!

Резюме

Великолепный эвристический для решения для использования или не использует основу, это то, что я звоню, – точка перескакивания. «Прилагается точка, поскольку ваша заявка растет, где вы в конечном итоге создаете собственные рамки, чтобы повторно использовать функциональность и структуру. Например, у вас есть куча форм, и вы хотите создать многоразовую логику для реактивной проверки.

Если вы закончите на данный момент, вы должны решить, стоит ли инвестировать время в создание систем для достижения того, что вы можете быстро выполнить с рамки или библиотекой. Там будут разные точки опрокидывания в зависимости от того, что являются вашими временными ограничениями или ограничения бюджета, но рамки все еще очень актуальны, учитывая правильные сценарии.

Тем не менее, многое из того, что делать рамки, вероятно, станет легче сделать с меньшими библиотеками и/или машинным кодом, как время идет. Возьмите мое приложение в качестве примера. В то же время, если крупные библиотеки и фреймворки остаются универсальными, они могут трансформироваться, адаптироваться и остаться. Если нет, то они могут в конечном итоге, как JQuery – инструмент прошлого по большей части.

Заключение

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

В это время, насколько я могу сказать, плюсы использования рамки часто перевешивают минусы. Однако, если рамки не приступить к решению новых проблем и продолжают развиваться, они в конце концов исчезнут.

Ресурсы

Угловой для начинающих Руководство: Почему Угловая? Верхние преимущества Примечание: Этот пост является частью продолжающегося Угловое для серии начинающих, здесь полная серия: Угловой для начинающих … blog.angular-university.io Сравнение с другими рамками – Vue.js Vue.js – Прогрессивный JavaScript Framework vuejs.org Оптимизация производительности – React Внутренне Реагировать использует несколько умных методов, чтобы свести к минимуму количество дорогостоящих операций DOM, необходимых для обновления … Reactjs.org Веб-компоненты Как разработчики, мы все знаем, что используя код как можно больше, – это хорошая идея. Это традиционно не так … developer.mozilla.org Самая глубокая причина, почему современные рамки JavaScript существуют Я видел много, многие люди, использующие современные рамки, такие как реагирование, угловые или Vue.js вслепую. Эти рамки предоставляют … Medile.com Укладка веб-компонентов с использованием общего стиля Last Веб-компоненты – удивительная новая функция Интернета, позволяющая разработчикам определить свои собственные пользовательские элементы HTML … www.smashingmagazine.com.

Оригинал: “https://www.freecodecamp.org/news/do-we-still-need-javascript-frameworks-42576735949b/”