вторник, 29 мая 2018 г.

Сравнение React и Angular


Вы хотите знать какой из этих двух инструментов лучше подходит для разработки веб-приложений? Прочитайте эту статью для сравнения этих двух наиболее популярных фреймворков.
В мире веб-разработок, мы, разработчики должны знать о последних трендах и технологиях. Когда мы планируем начать разработку нового проекта то должны выбрать технологии и средства, которые будем использовать в немб и должны четко понимать для чего они нам нужны, и чем они лучше конкурентов.
Поэтому давайте в данной публикации посмотрим на два наиболее распространенные фреймворка Angular и React. Оба используются для разработки клиентской части веб приложений.
Что такое клиентская часть?
Разработка клиентской части это практика создания HTML, CSS и скриптов для веб сайта или веб приложения, которым пользователь может пользоваться. Есть несколько элементов, которые доступны для разработки сайта. Наиболее популярные элементы:
1.    HTML. Язык гипертекстовой разменки. Это главный элемент любого феб приложения.
2.    CSS. Каскадная таблица стилей – контролирует отображение веб приложения с точки зрения стилей.
3.    JavaScript. Язык программирования основанный на событиях, которые позволяет преобразовать статический HTML в динамический пользователский интерфейс HTML. JavaScript испольузет элементы DOM (Documents Object Model).
4.    Веб сборка. Веб сборки поддерживаются всеми современными браузерами. Они являются альтернативой процессам JavaScript для выполнения кода в веб браузерах.
Для разработки клиентской части приложений существует ряд инструментов и фреймворков, которые можно использовать. Наиболее популярными являются ReactJs и Angular. Теперь нам нужно понять как мы можем их сравнить ReactJs (библиотеку) и Angular (фреймворк).
Что такое фреймворк?
В области разработки программного обеспечения, фреймворк – это коллекция стандартизированного и готового к использованрию кода, который собственно позволяет разрабатывает требуемую функциональность более просто и быстро. В данной системе, разработчики не имеют столько свобод писать код как хочется, так как они ограничены необходимостью следовать процессу или структуре, которая поддерживается архитектурой фреймворка.
Что такое библиотека?
Библиотека это набор функций и функциональности, которые можно использовать в коде. В случае с библиотекой, разработчики имеют полную свободу проектирования и структуры системы, которая использует эту библиотеку.
Наиболее важными отличиями между библиотекой или фреймворком – это спобоб их взаимодействия с вашим кодом. Если кратко то вы сами вызываете код библиотеки, а фреймворк вызывает ваш код. По другому это называется инверсией управления.
Что такое Angular?
Angular, который часто называют AngualrJs, это один из наиболее популярных скриптовых фреймворков с открытым исходным кодом. Фреймворк базируется на исходном коде TypeScript. Это MVC фреймворк, который был создан и разработан в Google. MVC – это архитектурный паттерн, которые используется при создании веб приложений. MVC – расшифровывается как Модель Вид Контроллер.
С выпуском Angular 5, Google добавила поддержку прогрессивных веб приложений.
Что такое React?

React это библиотека JavaScript, по аналогии с jQuery для разработки пользовательского интерфейса. Библиотека состоит из трех частей – React-devtools, ReactJs.Net и React.Native. Последняя часть активно используется для создания нативный мобильных приложений.

Отличия React и Angular

REACT
ANGULAR
Работа с данными
React поддерживает односторонний байндинг
Angular всегда работает с двухсторонним байндингом.
Односторонний байндинг означает что все изменения в модели данных отобразятся на UI но не наоборот.
Двухсторонний байндинг означает что все изменения в модели данных отобразятся на UI и наоборот.
Односторонний байндинг данных всегда имеет однонаправленный поток данных.
Двухсторонний байндинг данных всегда имеет двухнаправленный поток данных.
Язык
React это библиотека JavaScript.
Angular это Framework по природе
Для разработки приложений на React мы может разработать программу на JSX который является собой гибридом JavaScript с XML дополнениями.
В случае разработки приложения на Angular, мы должны использовать TypeScript которые базируется на JavaScript.
Использование DOM (Document Object Model)
React использует виртуальный DOM.
Angular всегда использует DOM браузера
Поддержка работы с нативными приложениями
React включает в себя React Native, который всегда позволяет создать приложения для Android or iOS.
Используя фреймворк Angular, мы можем сделать гибридное мобильное приложение.
Структура приложения
React не является фреймворком MVC. Это простая библиотека для отображения.
Angular полноценный фреймворк MVC.
React не требует использовать какую то специфическую структуру приложения.
MVC паттерн Angular всегда предполагает разделение приложения на три слоя, таким образом манипулировать ими всегда  просто.


React самое идеальное средство для разработки приложений без логики или статического типа, где нету логических операций или каких то вычислений. В реальности можно сделать практически любое приложение с использованием React. Вот несколько сценариев где можно использовать React.
1.    Динамические Приложения
React всегда правильный выбор для динамических приложений благодря своему виртуальному DOM. Виртуальный DOM – это на самом деле упрощенная версия реального DOM. В случае с виртуальной версией, мы можем менять любой элемент очень быстро без необходимости перерисовыавать все содержимое. Поэтому данный метод феноменально сказывается на производительности приложения. Представте разницу в скорости отрисовки 100 элементов при изменении одного элемента, и отрисовки только одного элемента который был изменен.
2.    Одностраницчные приложения
React всегда отличное решение для одностраничных приложений потому что он способен отрисовыавть все изменения без перезагрузки всей страницы.
3.    Нативные мобильные приложения
Если мы хотим создать нативное приложение, то React Native один из самых лучших вариантов для этого. Мы можем создать приложение с использование JavaScript точно с такой же производительностью и визуализацией, как и в случае если бы использовали для этого Java или другие средства создания мобильных приложений.
В случае с Angular, мы его может использовать в следующих сценариях:
  •     Кросс-платформенные мобильные приложения

Фреймворк Angular также предоставляет замечательную поддержку мобильных приложений. Используя Angular 2 или новее, мы можем разрабатывать любой тип мобильных приложений используя Angular.
  •     Корпоративное программное обеспечение

Поскольку Angular использует принципы MVC, то он идеально подходит для корпоративных решений.
  •     Прогрессивные веб-приложения


Мы можем разработывать прогрессивные веб-приложения или гибридные мобильные приложения используя фреймворк Angular. Angular 2 вкупе с Ionic 2 – отличное средство для создания гибридных приложений. Эта комбинация инструментов может использоваться  для разработки прогрессивных веб приложений.

Мы можем разработывать прогрессивные веб-приложения или гибридные мобильные приложения используя фреймворк Angular. Angular 2 вкупе с Ionic 2 – отличное средство для создания гибридных приложений. Эта комбинация инструментов может использоваться  для разработки прогрессивных веб приложений.