Даже если вы новичок в разработке на Vue, вы, вероятно, слышали много относящихся к ней терминов, таких как одностраничные приложения (SPA, single-page apps), асинхронные компоненты (async components), рендеринг на стороне сервера (server-side rendering) и т. д.
Вы, вероятно, также слышали названия инструментов и библиотек, которые обычно упоминаются вместе с Vue: Vuex, Webpack, Vue CLI,Nuxt.
Возможно, все это наводит на вас тоску и разочарование в самом себе. Вы не одиноки в этом, каждый разработчик чувствует постоянное давление новых технологий и методов, с которыми он не знаком, но как будто должен разбираться.
Попытка выучить все сразу обречена на провал, поэтому я и подготовил для вас эту высокоуровневую «карту знаний» со всеми ключевыми моментами изучения Vue. Вы можете использовать ее как руководство к действию и наконец-то разобраться в этой чудесной библиотеке.
0. JavaScript и базовые принципы веб-разработки
Если бы я попросил вас выучить от корки до корки книгу, написанную на китайском, вам бы сначала пришлось научиться читать по-китайски, верно?
Здесь то же самое. Vue – это JavaScript-фреймворк, следовательно, для успешной работы с ним нужно знать основы JavaScript и веб-разработки.
1. Основные понятия Vue
Если вы новичок в разработке на Vue, то начать следует с основ – ядра Vue-экосистемы, которое включает в себя библиотеку ядра (Vue core library), маршрутизатор (Vue Router) и Vuex.
Эти инструменты используются в большинстве приложений Vue.
Основные функции Vue
Основа Vue – синхронизация веб-страницы и JavaScript. Для этого используются реактивная привязка данных и ряд функций шаблонов: директивы и интерполяция. Именно с изучения этих понятий и следует начать.
Чтобы создать свое первое приложение Vue, вам также нужно знать, как его установить, и понять жизненный цикл экземпляра Vue-инстанса.
Компоненты
Компоненты Vue – это изолированными элементами пользовательского интерфейса, которые можно повторно использовать при необходимости. Необходимо понимать, как объявлять компоненты и как наладить взаимодействие между ними с помощью свойств (props) и событий (events).
Компоненты – это основа для создания надежных масштабируемых Vue-приложений.
Одностраничные приложения
Одностраничная архитектура приложения (SPA) позволяет одной веб-странице работать как традиционный многостраничный веб-сайт без неэффективной перезагрузки при навигации.
Создав набор «страниц» в виде Vue-компонентов, вы можете сопоставить их с уникальными адресами (путями) с помощью Vue Router, инструмента, поддерживаемого командой Vue.
Управление состоянием
По мере того как приложение растет, увеличивается количество «страниц» и компонентов, управлять глобальным состоянием становится все труднее, а компоненты становятся раздутыми из-за большого количества свойств и слушателей событий.
Специальный шаблон под названием» Flux » сохраняет ваши данные в предсказуемом и стабильном центральном хранилище. Реализовать этот шаблон помогает библиотека Vuex, также поддерживаемая командой Vue.
2. Vue в реальном мире
Все знания, полученные из первого модуля, можно использовать для создания высокопроизводительных и эффективных приложений Vue на локальном сервере. Однако как запустить их в продакшн?
Если вы хотите создавать продукты на основе Vue.js для реальных пользователей, вам нужно знать больше!
Скаффолдинг
Создав несколько Vue-приложений, вы обнаружите, что почти в каждом проекте есть одни и те же конфигурации, настройки и инструменты разработчика.
Команда Vue поддерживает инструмент под названием Vue CLI, который позволяет развернуть надежную среду разработки за считанные минуты.
Full-stack / приложения с аутентификацией
Реальные приложения Vue работают с данными, которые могут приходить из разных источников. Чаще всего – из безопасного API на Node, Laravel, Rails, Django или какой-либо другой серверной платформы.
Возможно, данные будут предоставлены обычным REST API или GraphQL, или это могут быть данные в реальном времени через веб-сокеты.
Вам следует ознакомиться с шаблонами проектирования, используемыми для интеграции Vue в full-stack конфигурацию, а также с различными рекомендациями по обеспечению безопасности пользовательских данных.
Ознакомьтесь с этой статьей, если вы не можете выбрать подходящий бэкэнд для вашего следующего приложения Vue.
Тестирование
Если вы хотите создавать ремонтопригодные и стабильные проекты, вам не следует забывать про тестирование.
В приложениях Vue модульные тесты гарантируют, что компоненты всегда будут предоставлять один и тот же вывод (HTML или события) для конкретного ввода (свойств или пользовательского ввода).
Команда Vue поддерживает инструмент под названием Vue Test Utils, который позволяет создавать и запускать тесты для изолированных компонентов Vue.
Хотя тестирование E2E не связано с Vue, оно также может обеспечить надежность вашего проекта. Отличный инструмент E2E, который можно добавить в проект через Vue CLI 3 – Cypress.
Оптимизация
При развертывании приложения на удаленном сервере и доступе пользователей к нему через медленные подключения, оно не будет иметь такой скорости и эффективности, как при разработке.
Чтобы оптимизировать приложение Vue, можно использовать различные методы, включая рендеринг на стороне сервера (server-side rendering). При этом приложение Vue выполняется на сервере, а пользователь получает конечный HTML-код.
Другие методы оптимизации включают использование асинхронных компонентов (async components) и функций визуализации (render functions).
3. Ключевые инструменты
Все, что было до сих пор, находится от в самом ядре Vue или хотя бы в экосистеме библиотеки. Но Vue не существует изолированно; это всего лишь один слой в стеке фронтенда. Senior Vue developer должен также быть знаком с рядом ключевых инструментов современной разработки.
Современный JavaScript и Babel
Vue приложения могут эффективно работать с ES5 – JS-стандартом, который поддерживается практически всеми браузерами.
Но для расширения возможностей можно использовать и более новые стандарты (ES2015, ES2016). Однако, если вы решите использовать современный JavaScript, браузеры большей части ваших пользователей с ним не справятся. Чтобы решить эту проблему, нужен Babel. Его задача состоит в том, чтобы «транспилировать» (перевести и скомпилировать) современные функции в стандартные аналоги перед отправкой приложения.
Webpack
Webpack – это сборщик модулей. Если ваш код написан в разных модулях (например, в разных файлах JavaScript), Webpack может «собрать» их в один файл (bundle) для браузера.
Webpack также работает как конвейер сборки, позволяя преобразовывать и оптимизировать его с помощью ряда плагинов (например, Babel, Sass или TypeScript).
Многие разработчики находят Webpack трудным для понимания и еще более трудным для настройки, но без него некоторые из лучших функций Vue, такие как однофайловые компоненты (single-file components), были бы недоступны.
В недавно выпущенном Vue CLI 3 было предоставлено решение для абстрагирования и автоматической настройки Webpack в проектах Vue.
Значит ли это, что вам не нужно изучать Webpack? Нет, так как однажды вам неизбежно потребуется настроить или отладить конфигурацию Webpack.
TypeScript
TypeScript – надмножество языка JavaScript, которое поддерживает типы (String, Boolean, Number и т.д.). Это помогает писать надежный код и отлавливать ошибки на ранней стадии
Vue.js 3, выходящий в 2019 году, будет полностью написан на TypeScript. Это не означает, что вы должны использовать его в своих проектах. Но если вы хотите внести свой вклад в Vue и понять его внутреннюю работу, знание TypeScript необходимо.
4. Vue-фрейморки
Фреймворки создаются поверх Vue и избавляют вас от необходимости реализовывать рендеринг на стороне сервера с нуля, создавать собственные библиотеки компонентов и выполнять множество других распространенных задач.
Существует много отличных фреймворков Vue, мы упомянем только три самых популярных и важных.
Nuxt.js
Если вы хотите создать высокопроизводительное приложение Vue, вам, конечно же, понадобится маршрутизация на основе компонентов, рендеринг на стороне сервера, разделение кода и другие передовые функции, а также дополнительные удобные возможности, такие как SEO-теги.
Nuxt.js предоставляет все это и еще больше (например, PWA) прямо из коробки.
Vuetify
Стандарт Material Design от Google – это широко используемая система рекомендаций по созданию красивых и логичных пользовательских интерфейсов.
Vuetify реализует ряд компонентов Vue (модальные окна, навбары, пагинацию и др.) в соответствии с этим стандартом.
NativeScript-Vue
Если вы хотите использовать Vue для нативных мобильных интерфейсов, вам нужен NativeScript-Vue.
NativeScript – это система для создания приложений с использованием собственных компонентов пользовательского интерфейса на iOS и Android, а NativeScript-Vue – это фреймворк поверх NativeScript, обеспечивающий использование синтаксиса и компонентов Vue.
5. Разное
В этом заключительном разделе мы рассмотрим темы, которые важны, но либо несущественны, либо не вписываются в вышеуказанные категории.
Разработка плагинов
Если вы хотите повторно использовать функциональность Vue в своих проектах или внести свой вклад в экосистему Vue, вы можете создать плагин. Существует множество инструментов, которые позволяют сделать это быстро и просто.
Анимация
Если вы любите создавать анимацию, обратите внимание на систему переходов Vue (transition system), которая является частью ядра библиотеки. Она обеспечивает анимацию при добавлении или удалении элементов из DOM.
Чтобы сделать переход, вы создаете классы CSS для определения нужного эффекта анимации, например, для затухания или изменения цвета. Vue определит, когда элемент добавляется или удаляется из DOM, и добавит или удалит соответствующие классы во время перехода.
Прогрессивные веб-приложения
Прогрессивные веб-приложения (PWA) похожи на обычные веб-приложения, но включают ряд современных функций, которые улучшают пользовательский опыт, например, автономное кэширование, серверный рендеринг, push-уведомления и т. д.
Большинство функций PWA можно легко добавить в приложение Vue с помощью Vue CLI 3 или фреймворков вроде Nuxt.js, но вы все равно должны понимать ключевые технологии, включая манифест веб-приложения и сервис-воркеры.
0 комментариев