Найти тему

React, Vue и Angular - в чем приницпиальное отличие

Сегодня мы немного поговорим о том, чем отличается React, Vue и Angular, три самых известных фреймворка, которые на слуху у каждого начинающего фронтенд-разработчика. И есть много ребят, кто не понимает, с чего же им начать, что изучать, и что по итогу выбрать. Вакансий на рынке полно для каждого их низ, а некоторые требуют наличие сразу нескольких. Но на самом деле разница между ними не особо большая в плане итогового продукта, и сделать полноценный сайт или сложное приложение можно, применяя каждый из этих фреймворков, однако специфика и технологии в основе лежат немного разные. Язык тот же, точнее один – JS, просто с некоторыми «фишками».

Для начала нужно понять, что сам по себе React это не фреймворк, а библиотека. В чем различие? Библиотека – это некий набор инструментов, как у плотника молоток, рубанок и т.д., просто куски определённого кода, шаблоны, какие-то хуки и прочее (по-простому, набор функций), которыми мы можем оперировать в своей работе. А вот фреймворк это набор таких библиотек и правил, а также синтаксис определённых параметров, структуры проекта, может быть форм, кнопок и прочего. Простыми словами, это как уже готовые дома на продажу, или даже комнаты, или детали для машины, и собрав их по инструкции мы получим свой проект.

-2

Так вот, именно поэтому React пользуется такой популярностью и многие советуют начинать именно с него. Он довольно просто, там нет запудренных вещей или четко выверенных компонентов. Как пластилин – есть набор цветов, лопатка, ножичек, и лепи все что хочешь. Самому месить глину не надо, все уже разложено по пакетикам (функциям), просто собираешь себе проект. Причем собирать можно сколь угодно сложные или легкие, не суть. Я не буду расписывать саму структуру, это вы поймете, когда начнете изучать сам react. Что он использует JSX синтаксис, что он используется для создания SPA (одностраничные приложения), все это не так важно.

Кстати, Вам может быт это интересно:

Vue и Angular это уже фреймворки, со своими наборами правил и прочее. И считается, что Vue используется для создания более простых и легких проектов, так как имеет под собой более простой синтаксис, множество форм для отправки, кнопок, лёгкое и просто API (для взаимодействия с сервером). Во фреймворке Vue зашита логика кнопок и других элементов интерфейса, их внешний вид, механизмы обмена данными и другие необходимые для интерфейса штуки.

-3

Angular же создан для более продвинутых и сложных проектов. В нем заложено обязательное использование TypeScript, что нравится руководителям больших проектов, а также бэк-енд разработчикам на сложных языках типа С, для написаний тяжелой логики. В отличии от того же Vue или даже reac’ta с его одним модулем (тут может быть непонятно ребятам, кто еще ничего не писал на нем), в angular’e довольно большое количество различных вариаций тех же модулей и компонентов.

По-простому, если в react’e есть один просто тип компонента, которых может быть много, они все строятся по одному принципу, и ты их просто потом объединяешь в одном, точно таком же главном компоненте. То в Angular таких типов и вариаций уже гораздо больше. Поэтому он более сложный для освоения.

-4
TypeScript — это язык программирования, в котором исправлены многие недостатки JavaScript. В TypeScript типизация статическая, что избавляет от множества проблем. Есть числовой тип, строковый, логический и другие, можно свои назначать. Но объявление типов обязательно, и оно постоянно. А в JS тип определяется автоматически и зависит от «контекста».

По итогу, опытный разработчик должен знать все. На практике я бы советовал начать с React, а дальше по мере необходимости и я бы и другие фреймворка посмотрел. В любом случае, пока вы все это дело будете изучать, вы еще попутно изучите много сторонних проектов, подпрограмм и библиотек что уже интересно. В основе каждого языка лежит JS, с некоторыми изменениями, это может быть и TS и JSX (смесь JS и HTML), но все это не так важно. Даже в написании стандартного CSS есть различия. Но под капотом по своей сути одни те же технологии, просто упакованные в разные коробки, инструменты и сетапы.