Что такое Vue.js и реактивный интерфейс

что такое vue js

Данная статья написана для самых обычных людей, кто не сильно разбирается в программировании (или вообще не разбирается), но очень много раз слышал про Vue.js и не понимают что это такое.

Что такое Vue.js

Vue.js – это реактивный-framework (ниже все эти страшные слова объясним), который позволяет разрабатывать крутые интерфейсы для сайтов и даже мобильных приложениий, применяя язык программирования JavaScript.

Что такое framework в программировании

Framework – (простыми словами) это большое количество готового кода, который в себя включает некий набор функций и архитектуру. Сами функции разработчик может сразу использовать из коробки, не тратя время на создание их уже готовых аналогов. Основная потребность в использовании фреймворка это желание ускорить разработку.

Давайте на примере. Допустим, программисту нужно написать функцию, которая будет совершать запрос на сервер для получения каких-то данных. Самому написать такое обойдется в 10 строк кода, а вот с фреймворком или библиотекой это можно решить за 1-2 строчки кода, потому что там уже предусмотрен готовый код для этих задач. Если хотите узнать разницу между фреймворком и библиотекой читайте нашу другую статью на эту тему.

Естественно, нормальный программист не будет ставить framework ради 10 строк кода, а вот когда речь идет о 10000 строках, то лучше уже установить framework чем писать свою архитектуру с нуля. Естественно, все фреймворки пишутся другими программистами и выкладываются в открытый доступ (иногда продаются).

“Реактивность” или зачем нужен Vue.js

Реактивность – это термин в программировании, который объясняет принцип работы приложения, при котором программа отслеживает изменения своих данных самостоятельно в реальном времени.

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

Если внимательно вчитаться, то звучит просто, но вот реализовать такой функционал самостоятельно “долго и дорого”, поэтому JavaScript-программисты используют Vue.js и его аналоги React и Angular (почти тоже самое). Все вышеперечисленное это реактивные фреймворки.

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

Если присмотритесь в левый верхний угол, заметите как браузер постоянно “перезагружает” страницу, значит он постоянно перерендеривает (отрисовывает) весь документ, приходящий с сервера.

А теперь посмотрите на тоже самое, но уже на сайте с использованием Vue.js. Работает в два раза быстрее, а еще нет “перезагрузки” страниц браузером (перерисовки документа).

А самая прелесть здесь в том, что при изменении каких-то данных внутри исходного кода сайта/приложения они могут моментально “автоматически” измениться и на самом сайте в браузере.

Почти все крупные компании: Ozon, Okko, Netflix, Facebook, Google, Yandex, VK используют реактивные фреймворки для построения молниеносных интерфейсов в браузерных приложениях. Мы не оговорились, именно “приложений”, потому что в современном мире грань между сайтами и приложениями размывается с каждым днем все больше и больше.

Хороший пример применения реактивности – это сайт Тинькофф Инвестиций (не, это не реклама). Котировки и курсы акций меняются каждую секунду, соответственно данные в браузере на графиках должны тоже меняться моментально быстро. И вот чтобы не городить самому кучу кода, который будет на это способен, можно использовать фреймворк, который предусматривает “отслеживание” изменений своих данных.

Плюсы реактивности

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

Секрет скорости кроется в самих браузерах. Рендеринг, или другими словами, процесс отрисовки HTML-кода сайта браузером, который пришел с сервера – самый дорогой процесс для Вашего компьютера и телефона.

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

Минусы

Поддерживать сайт на Vue.js (да и на React, Angular тоже), даже если он сделан правильно – сложное, трудоемкое и дорогое занятие, которое требует нормальных программистов. Т.е человек, привыкший писать на JQuery и WordPress, Вам вряд ли подойдет. А таких половина на фриланс биржах и в Российских интернет-агентствах и веб студиях.

Серверный рендеринг или “подводные камни” реактивных сайтов

Данный пункт касается всех реактивных фреймворков, не только Vue.js. Если узнали, что Ваш сайт будет делаться на Vue.js, React, Angular поздравляем с будущим крутым сайтом. Единственное, уточните у разработчика будет ли присутствовать серверный рендеринг.

Если просто и коротко – то серверный рендеринг позволяет сайту попасть в поисковые системы Яндекс и Google. Без серверного рендеринга реактивный сайт не будет индексироваться поисковыми системами. Подробней читайте об этом в другой нашей статье.

Тенденции развития реактивных интерфейсов в русском интернете

Реактивные интерфейсы уже заполнили интернет-пространство США, крупные IT-гиганты России тоже не отстают и переносят все свои интерфейсы на молниеносные рельсы. Компания 1С-Битрикс имеет планы на внедрение Vue.js для своих интерфейсов вместо JQuery. Еще пару лет и обычные сайты малого бизнеса будут создаваться с использованием таких технологий.

Рассказать друзьям: