Рубрики
Без рубрики

React VS Angular 2: Руководство по сравнению для начинающих

Эта статья направлена на то, чтобы обеспечить вам некоторое представление о JavaScript путем сравнения React VS Angular 2; Две из самых популярных JavaScript Frameworks сегодня.

Автор оригинала: Codementor Team.

На момент написания, он становится все более сложнее для Новички выбирают JavaScript Framework использовать для их проекта или даже начать обучение. Каждый день мы слышим новые системы, подходы и инструменты, чтобы облегчить вещи. Некоторые инструменты пакет, министерство, абстрактные, прятки, журнал, Отладка И вообще взаимодействую непосредственно до DOM. У каждого есть их использование, но они также способствуют JavaScript усталость – (ТОО) Многие инструменты в мире JavaScript только делают обучение и использовать его более сложнее, чем следует.

React VS угловой 2: сравнение

Эта статья направлена на то, чтобы обеспечить вам некоторое представление о JavaScript путем сравнения реагирования и угловых 2; Два из самых популярных JavaScript Frameworks сегодня (вы можете прочитать прошедшие сравнения между реактивными и угловыми и угловыми 1; и сравнение эффективности реагирования и углового уровня). Я постараюсь отвезти вас на короткое время, но в результате чего взыскал путешествие, чтобы помочь ввести обоснованное решение при решении того, что из двух вы должны учиться или использовать для вашего проекта. Реагистрационные и угловые 2 будут сравниваться на основе следующего:

  1. Концепции
  2. Установка
  3. Обучение

1. Концепции

Давайте начнем с основы …

A. Angular2.

Наблюдатели: Наблюдатели прикреплены к каждому компоненту и каждый раз, когда компонент изменен, наблюдатели проверяют, следует ли изменять что-то еще; И если необходимо, сделайте соответствующие модификации. Угловая 2 команда сделала отличную работу, чтобы сделать эту часть быстрее, чем ее предыдущая версия. Так что отныне, каждый раз, когда изменяется компонент, нам не нужно запускать какие-либо проверки на объектах (в зависимости от неизменных элементов).

Есть еще одна поразительная точка в использовании угловых 2: это требует Tymdercript Отказ Но мы поговорим об этом снова …

B. Реакция

Детка Facebook больше похоже на компонент пользовательского интерфейса, чем полная рамка. Большая вещь (о том, что все говорят) – виртуальный дом. Это признака убийцы, которая дает реагировать три основных преимущества:

  • Изменения возникают по сравнению только между DOM и виртуальным домом, поэтому Rection будут изменять только то, что нужно наиболее оптимально.
  • Нам не нужен браузер для тестирования реагирования, так как мы не взаимодействуем напрямую с DOM.
  • Мы можем подключить виртуальный DOM к другому объекту (посмотрите на мобильные разработки, сделанные в нативном коде или электроне)

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

Представьте себе создание «счетчика» компонента – то, что вы, вероятно, захотите изменить, – это значение этого счетчика, то он будет состоянием нашего счетчика.

2. Настройка

Один из ключевых факторов для выбора рамок сегодня – это инструменты, которые мы должны научиться полностью понимать и использовать его хорошо. Как у нас уже есть много (Docker, Git, Rails, Django, Node.js, .NET), которые могут помочь нам в развертывании, версиях, предоставлении серверам, а также для API – есть только слишком много, мы можем узнать. И это может особенно чувствовать себя подавляющим для начинающих.

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

Сначала скажи привет!

Сначала очень наивный подход – давайте узнаем, как поздороваться в обоих этих системах (с предварительным условием уже имеющих Node.js и NPM).

A. Angular2:

Я пошел в Руководство по QuickStart на веб-сайте Angular: https://angular.io/docs/ts/latest/quickstart.html.

С сайте, скопируйте эти четыре файлы конфигурации в папку приложения:

  • Package.json Определяет зависимости пакетов NPM для проекта.
  • tsconfig.json Определяет, как компилятор TypeScript генерирует JavaScript из файлов проекта.
  • typings.json Обеспечивает дополнительные файлы определения для библиотек, которые компилятор TypeCript не распознает.
  • systemjs.config.js Предоставляет информацию модулю погрузчику о том, где можно найти прикладные модули и регистрируются все необходимые пакеты. Он также содержит другие пакеты, которые будут необходимы в качестве примеров последующей документации.

Затем установите зависимости и создайте корневой модуль:

    import { NgModule } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    
    @NgModule({
      imports: [BrowserModule]
    })
    export class AppModule { }

Теоретически этот шаг достаточно, чтобы обеспечить нам рабочее приложение, но, как это ничего не делает, на данный момент это не очень весело … Давайте возьмем друг на друга.

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

    import { Component } from '@angular/core';
    @Component({
      selector: 'my-app',
      template: '

Welcome everyone!!

' }) export class AppComponent { }

Кроме того, нам нужно немного изменить файл app.module.ts, поскольку нам нужно ссылаться на наш совершенно новый AppComponent Отказ Нам также нужно сказать углам, чтобы начать наше приложение (в новом файле Main.ts).

    import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
    import { AppModule } from './app.module';
    const platform = platformBrowserDynamic();
    platform.bootstrapModule(AppModule);

Добавьте немного стиля и предоставьте адаптированный файл index.html (опять же, просто скопируйте-вставку, найденный на угловом направлении), и вы можете запустить его в первом терминале, где вы найдете:

    ~/projects/angulartest$ npm start

На данный момент мы уже использовали какую-то типриптор (и по сравнению с Vanila JS , он обеспечивает лучшую кодовую организацию, набрать и аннотации; но это еще одна вещь, чтобы узнать, когда вы попадаете в угловые 2).

Сделанный!

реагировать против угловых 2

Теперь у вас есть хорошая первая страница, которая изменится всякий раз, когда вы вносите изменения в свой модуль (команда запуска запускает как сервер, так и для наблюдения).

B. Rect:

Опять же, давайте продолжим, как любой новичок будет делать в начале – начнем на руководстве по установке: https://facebook.github.io/react/docs/installation.html.

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

Единственное, что вам нужно сделать, это установить пакет, создать приложение с предоставленной командой и запустите сервер.

    npm install -g create-react-app
    create-react-app hello-world
    cd hello-world
    npm start

А только с этими первыми командами у нас есть этот результат:

реагировать против угловых 2

Теперь, когда мы получили реагирование, они сначала рекомендуют использовать Bundlers. Если вы не знакомы с тем, как это работает и что это делает, я просто рекомендую вам пойти на веб-папа Главная страница или прочитайте это Начало работы Учебное пособие Отказ

реагировать против угловых 2

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

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

Вердикт:

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

реагировать против угловых 2

3. Обучение

Давайте немного дышим после этих длинных описаний и постараемся сделать обоснованные мнения из этого. Ранее мы были сосредоточены на настройке для первоначального использования угловых 2 и реагируют, и это ключевой фактор, знающий, какую структуру/библиотеку UI использовать и учиться. Давайте пройдемся через другие ключевые факторы и принесите другие соображения к столу, чтобы увидеть, как два сравнения.

А. Практика

Но в конечном итоге на самом деле немного проще подумать в реакции. Угловые 2 – это, конечно, эффективная основа – но мои личные предпочтения идут с реагированием на ясность. Кодирование с Flux имеет много для этого и состояния очень простого рабочего процесса.

Более того, работа в JSX делает все более читаемыми и будет иметь эффекты, которые вы планируете его иметь. Один из самых раскритиковых аспектов угловых лиц в том, что новичок должен научиться много новых директив и ключевых слов, новеренно все NG- * друзья. Эта проблема была очень решена угловой командой, когда они продолжают улучшать рамки. Это Q & A с угловой основной командой Google Могут помочь пользователям понять угловые 2 возможностей.

Но одно из больших различий между угловым и реагированием является то, как они считают HTML и JS.

Угловые помещает JS в HTML, тогда как React ставит HTML в JavaScript. Некоторые сказали бы, что это вопрос вкуса, но мне удобнее обрабатывать JS от начала до конца, и просто показать вам, вот как все выглядит в этих двух системах:

Вот список в угловых 2:

    
     
  •    {{i}} {{item}}  

Вот одинаково в реакции:

    let List = function({ items }) {
    	return (
    		
    {items.map(item =>
  • {item.name}
  • )}
); }

У вас есть реальный и настоящий код JavaScript внутри брекетов, а функция, используемая для рендеринга компонента, понятно – любой разработчик, который используется для JS, не потеряет. Но опять же, это все просто вопрос личных предпочтений.

Вердикт:

реагировать против угловых 2

Б. Сложность

Использование Tymdercript лучше от «строгости» перспективы, а не из «изучения» перспективы, поскольку вы окажетесь в том же духе угловой и напечатаете в то же время. Итак, вам действительно будет труднее подняться на эту стену в начале. Но после изгиба мышц вы будете гулять лучше. Обратите внимание, что ничто не мешает вам от не Используя TypebScript, но большинство примеров, которые вы найдете в Интернете для угловых, будут в TS.

Вердикт:

реагировать против угловых 2

C. Сообщество

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

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

Вот цифры для реагирования ( https://github.com/facebook/react/stargazers ):

реагировать против угловых 2

Вот цифры для угловых ( https://github.com/angular/angular/stargazers ):

реагировать против угловых 2

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

Вердикт:

реагировать против угловых 2

D. Отладка

«Волшебная» «магия» – это обновление DOM (и как его изменено с виртуального DOM), кроме этого, нет большого количества заметных преимуществ, особенно если вы используете Flux (но мы вернемся к этому в пока). В угловых, потому что у вас есть наблюдатели везде, отладки могут быть немного сложными самостоятельно. Но мы должны быть справедливыми с угловым углом: предоставление истинных шаблонов HTML может облегчить отладку HTML. Но я думаю, что это зависит от проектов, над которыми вы работаете.

Давайте поговорим о Flux на мгновение, поэтому я могу показать вам, почему я бы сказал, что отладные компоненты в реакции на самом деле не так болезненно.

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

реагировать против угловых 2
  • Когда есть изменение в приложении (кто-то нажимает кнопку, нажимает на ссылку и т. Д.), Представления отправляют некоторые действия на диспетчер. (EX: Кто-то нажал на кнопку «плюс одну» на кнопку счетчика, он должен затем перейти от 9 до 10. Просмотр отправляет действие диспетчеру под названием «Приращение»)
  • Диспетчер отправляет действие всех магазинов, зарегистрированных для него. Каждый магазин отвечает за прием и выполнение этого действия или нет. (Ex: В качестве диспетчера я отправляю действие «приращения» на все магазины прослушивания.)
  • В вопросе магазина изменяет состояние компонента и уведомляет об открытии контроллера. (EX: магазин «счетчик» обновляет состояние от 9 до 10 и делает представление контроллера)
  • Дочерние виды контроллера просмотра обновляются. (EX: мы действительно видим 9 переключения на 10 в нашем счетчике)

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

Вердикт:

реагировать против угловых 2

E. скорость

Перед разговором о выступлениях мы должны немного поговорить о том, как два привязки ручки. На одной стороне угловые 2 используются двусторонние передачи данных. Это означает, что если я решил изменить значение в доме, скажите поле ввода или текстовую область, как представление, и модель будет обновлена. Это поведение стало возможным благодаря многим наблюдателям. Каждое связывание требует наблюдателя; Таким образом, чем большее ваше приложение становится, тем больше влияние этих наблюдателей также будет.

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

Чтобы сделать его немного более точным, пожалуйста, проверьте это ссылка , поскольку вы получите истинные ориентиры на выступлениях как угловых 2, и реагируют (среди прочего, что всегда приятно видеть).

Вердикт:

реагировать против угловых 2

В заключении

Не стесняйтесь. Попробуйте отреагировать и угловать 2, чтобы сделать свой собственный выбор! Но я надеюсь, что это сравнение может помочь вам решить (если вам нужно выбрать один) для вашего проекта, и что вы можете лучше понять условия этих структур в вашем путешествии, чтобы стать разработчиком эксперта.

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

Авторское био.

Мухаммед работает как внештатный технический писатель в течение последних 3 лет, и работал примерно с 100 клиентами со всего мира на 150+ проектах. Мухаммед увлекается программированием, логикой развития, цифровым здравоохранением и нейроудольностью. У него есть степень бакалавра в электротехнике и степень магистра в биомедицинге.