Главная Блог Пара слов о преимуществах Vue JS

Опубликовано 27.12.2022

Пара слов о преимуществах Vue JS

Пара слов о преимуществах Vue JS

Относительно молодой, но очень популярный и амбициозный проект Vue JS завоевал доверие тысяч разработчиков по всему миру. В этой статье мы поговорим о том, почему фреймворк набирает обороты, чем он отличается от конкурентов и как начать с ним работать.

Возможно, вы захотите написать свой сайт-визитку, лендинг-пейдж или мини-блог в вёрдпаде на чистых HTML, CSS и JavaScript, однако вы точно не захотите создавать в них веб-приложение. Для проектов с динамическим контентом и, особенно, использующих асинхронный обмен данными с сервером, пользоваться "дедовскими" способами верстки крайне неудобно.

Современные проблемы требуют современных решений

Фронт-энд разработчики решили упростить себе труд, посчитав, сколько работочасов тратится на написание кастомных скриптов создания динамического контента, сколько времени занимает отладка xhr-запросов и сколько текста приходится писать для работы с очередным document.body.getElementsByClassName('pickUp')[0].style.background.

Evan You, cоздатель Vue.js и бывший сотрудник Google, начал разрабатывать фреймвёрк еще в 2013-м году. Проект стал популярным уже через несколько лет после релиза, особенно среди азиатского сообщества, где взяли его на вооружение такие гиганты, как Xiaomi, Alibaba и Baidu. Вторая версия фреймвёрка, ориентированная на производительность, обеспечила отрисовку контента в Virtual DOM, что позволило увеличить скорость работы приложений, написанных на Vue.

Архитектура Model-View-ViewModel

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

Компоненты в одном файле

Когда люди пишут в Vue, они используют «компоненты в одном файле». Это файл с суффиксом .vue, состоящий из 3 частей (css, html и JS) для каждого компонента.

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

В тег style компонента Vue можно добавить атрибут scoped. Атрибут полностью инкапсулирует стили компонента. То есть если в компоненте есть CSS селектор .name, это правило не будет применяться к другому компоненту. Этот способ стилизации компонентов представления мне нравится больше, чем подходы написания CSS в JS, что сейчас популярно в крупных фреймворках. Еще один плюс компонентов в одном файле заключается в том, что это полностью валидные HTML5 файлы. template, script, style — все эти теги входят в официальную спецификацию w3c. То есть большая часть используемых вами инструментов в процессе разработки (например, линтеры) могут работать по умолчанию с минимальной адаптацией.

Vue как новый jquery

На самом деле эти 2 библиотеки отличаются и выполняю разные задачи. Я представлю ужасную аналогию, но я люблю ей описывать отношения Vue и jQuery: Beatles и Led Zeppelin. Beatles не нуждаются в представлении, это величайшая группа 1960-ых, оказавшая огромное влияние. В 1970-ых отдать титул «самой великой» группы уже сложнее, и это Led Zeppelin. \ Можно сказать, что музыкальная связь между Beatles и Led Zeppelin незначительна, и у них разная музыка, но необходимо принять некий уровень техники и влияния. Возможно, JS мир 2010-ых это как 1970-ые в музыке, а так как Vue чаще «ставят в эфир», то он и привлекает больше фанатов. Философия, которая сделала jQuery популярным, есть и в Vue: простота в обучении и вся мощь создания отличных веб-приложений по современным веб-стандартам. На самом деле, Vue – лишь оболочка вокруг JS объектов.

Простота расширения

Как говорилось ранее, по умолчанию Vue использует стандартный HTML, JS и CSS для создания своих компонентов. Однако вы с легкостью можете подключить другие технологии. Если вам необходимо использовать pug вместо HTML, typescript вместо JS или Sass вместо CSS, вам лишь нужно установить соответствующие модули node и добавить атрибут в соответствующий раздел однофайлового компонента. В проекте даже можно перемешивать и сочетать компоненты. Например, одни компоненты используют HTML, а другие pug, но мне кажется, это не лучшая затея.

Virtual DOM

Virtual DOM используется во многих фреймворках, и это круто. Это значит, что фреймворк может решить, что изменилось в состоянии, а затем эффективно применить обновления DOM, сводя к минимуму повторный рендер и оптимизацию производительности приложения. Сегодня все кому не лень используют Virtual DOM. Пока это не что-то уникальное, это круто.

Vuex

В большинстве приложений сложно управлять состояниями. Эту проблему не решить одной библиотекой представления. В Vue для этого есть библиотека vuex. Она легко настраивается и хорошо интегрируется с Vue. Кто знает Redux, те сразу поймут, что к чему. Но мне кажется, что интеграция Vue и vuex аккуратнее и минималистичнее, чем React и Redux. Совсем скоро JS стандартизирует оператор распространения объектов, с помощью которого можно объединять состояния или функции для управления состоянием из vuex в компонентах, где это необходимо.

Vue CLI

Vue предоставляет отличный CLI, что упрощает начало работы в Vue с Webpack проектами. Одной командой в терминале можно создать все необходимое: компоненты в одном файле, babel, линтинг, тестирование и понятная структура проекта. Мне не хватает в CLI vue build.

Так просто создавать, запускать и тестировать компоненты в браузере. К сожалению, эта команда была удалена из Vue. Сейчас рекомендуется использовать poi. Poi – обертка для Webpack, но это не так просто, как в твите выше.

 

Разработанная для вас оптимизация повторного рендеринга

В Vue не нужно вручную указывать, какие части DOM необходимо повторно отрендерить. Мне не нравилось управлять компонентами в React. Что-то типа «shouldComponentUpdate», чтобы остановить повторный рендер всего дерева DOM. Vue умнее.

Легко получить помощь

Vue набрал критическую массу разработчиков, использующих фреймворк для создания различных приложений. У него отличная документация. Помощью можно получить по нескольким каналам с множеством активных пользователей: stackoverflow, discord, twitter и т.д. Это придаст вам уверенности при создании приложения и при выборе этого, а не другого фреймворка.

Не поддерживается одной корпорацией

Мне кажется, хорошо, когда у библиотеки с открытым исходным кодом нет одной корпорации, которая может указывать направление ее развития. У Vue не было проблем, как у React с разрешением лицензий (сейчас решены).

В заключение скажу, что Vue – отличный выбор для любого вашего следующего JS проекта. Доступная экосистема намного больше, чем я описал в статье. Если вам нужно что-то типа full-stack, обратите внимание на Nuxt.js. Если хотите повторно используемые стилизованные компоненты, для вас есть Vuetify. Vue был одним из быстрорастущих фреймворков в 2017, и по сей день его рост не прекращается.

GitHub account

View the source code of my projects

Learn more

LinkedIn profile

Details about my career

Learn more

Contact Me

Learn the details of the collaboration

Write an email