• Товары с Алиэкспресс
  • Игрушки для мальчиков
  • Одежда
  • Игрушки ребенку
  • Ноутбуки
  • Новости
  • Почему я отказался от Angular для React

    1. Что такого замечательного в React?
    2. Почему я переключился на реакцию?
    3. Реагировать быстро
    4. Кросс-браузерная совместимость
    5. модульность
    6. Односторонний поток данных делает вещи более разумными
    7. Просто JavaScript
    8. Изоморфный JavaScript
    9. Хорошо играет с другими
    10. Нужна ли мне другая среда разработки с React?
    11. Переход на реакцию не безболезненно!
    12. Заключение

    Несколько лет назад, когда мой код начал загромождаться селекторами и обратными вызовами jQuery, AngularJS пришел мне на помощь.

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

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

    Со временем я обнаружил некоторые болевые точки в Angular. В конце концов они вызвали у меня достаточно разочарования, что я начал искать альтернативы.

    Вот какие у меня проблемы с Angular.

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

    Двухстороннее связывание - обоюдоострый меч. По мере роста сложности ваших компонентов этот подход может привести к проблемам с производительностью.

    Как двусторонняя привязка влияет на производительность? JavaScript (ES5) не имеет никакой реализации, чтобы уведомлять о любых изменениях своих переменных или объектов, поэтому Angular использует так называемую «грязную проверку» для отслеживания изменений данных и синхронизации их с пользовательским интерфейсом (UI).

    Грязная проверка выполняется после выполнения любой операции в области видимости Angular (цикл $ digest), что приводит к снижению производительности по мере увеличения количества привязок.

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

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

    Если вы используете какую-либо стороннюю библиотеку JavaScript, которая включает изменения данных, вам нужно обернуть ее функцией $ apply Angular. Или вам нужно будет преобразовать его в сервис, если это служебная библиотека. Это похоже на необходимость заново изобретать каждую библиотеку JavaScript, которую вы используете, чтобы она могла взаимодействовать с Angular.

    Внедрение зависимости. В настоящее время в JavaScript нет собственного менеджера пакетов и средства разрешения зависимостей. AMD, UMD и CommonJS хорошо справляются с этой проблемой. Но, до не давнего времени Angular плохо играл ни с одним из них. Скорее, он вводит собственное внедрение зависимостей (DI). Хотя, если честно, существуют неофициальные реализации внедрения зависимостей Angular, использующие RequireJS.

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

    • модули
    • контроллеры
    • директивы
    • прицелы
    • шаблонный
    • связывающие функции
    • фильтры
    • внедрение зависимости

    Это может быть очень трудно начать с Angular. Это не для слабонервных.

    Все это привело меня к React.

    Что такого замечательного в React?

    реагировать Новая платформа с открытым исходным кодом для создания пользовательских интерфейсов - это другой способ разработки приложений JavaScript. Реакцией руководят Facebook и Instagram.

    Для ясности: React не является средой разработки приложений, такой как AngularJS. Несправедливо сравнивать их по-яблочному.

    Когда Реакт был введены На JSConf EU в мае 2013 года аудитория была потрясена некоторыми из его концепций, такими как «односторонний поток данных» и «Виртуальный DOM».

    Реакт для построения пользовательских интерфейсов. Другими словами, прямо с официальной целевой страницы проекта: «люди используют React как V в MVC ». Тем не менее, вы можете написать автономные компоненты с ним, что более или менее сопоставимо с угловыми директивами.

    React переосмысливает наши текущие концепции веб-разработки и лучшие практики.

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

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

    React предоставляет API минимального уровня, необходимый для определения компонента пользовательского интерфейса. Ни больше ни меньше. Это следует из философии UNIX: маленький - это красиво. Сделай одну вещь и сделай это лучше всего.

    Вы можете найти более подробную Сравнение Angular и React Пит Хант (который работает в Facebook / Instagram).

    Почему я переключился на реакцию?

    Вот некоторые вещи, которые мне нравятся в React.

    Реагировать быстро

    React использует другой подход к DOM по сравнению с другими системами.

    Это не позволяет вам работать с DOM напрямую.

    Он вводит слой, называемый Virtual DOM , между вашей логикой JavaScript и реальной DOM.

    Эта концепция улучшает производительность сети. При последовательных рендерингах React выполняет дифференцирование (diff) виртуальной DOM, а затем обновляет только те части фактической DOM, которые необходимо обновить.

    Кросс-браузерная совместимость

    Виртуальный DOM также помогает решать кросс-браузерные проблемы, поскольку предоставляет нам стандартизированный API, который работает даже в IE 8.

    модульность

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

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

    Односторонний поток данных делает вещи более разумными

    Flux это архитектура для создания односторонних слоев данных в приложениях JavaScript. Это было концептуализировано Facebook вместе с библиотекой представления React. Концепция Flux упрощает разработку крупномасштабных приложений.

    Flux является концепцией, а не реализацией конкретного инструмента. Это может быть включено в другие рамки. Например, у Алекса Рэттри есть хороший реализация Flux с использованием Backbone Collection и Model в React.

    Просто JavaScript

    Современные веб-приложения работают иначе, чем традиционные веб-приложения.

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

    Многие другие фреймворки используют движки шаблонов, такие как Handlebars или Mustache, для работы со слоем View. Но React считает, что View и Controller настолько взаимозависимы, что они должны находиться в одном месте без использования какого-либо стороннего шаблонизатора и, кроме того, не выходя за рамки JavaScript.

    Изоморфный JavaScript

    Самый большой недостаток одностраничных веб-приложений JS заключается в том, что они имеют ограничения при сканировании поисковыми системами. У React есть решение для этого.

    React может предварительно визуализировать приложения на сервере перед отправкой его агенту пользователя. Он может восстановить такое же состояние в живом приложении из предварительно отрендеренного статического содержимого на сервере.

    Поскольку сканеры поисковых систем полагаются на ответ сервера, а не на выполнение JavaScript, предварительный рендеринг ваших приложений помогает в SEO.

    Хорошо играет с другими

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

    К сожалению, в текущей версии JavaScript нет модуля или загрузчика модулей. (Хотя есть предложение для решения этой проблемы в следующей версии, ES6, с System.import).

    К счастью, у нас есть несколько альтернатив, таких как RequireJS и Webpack, которые довольно хороши. React построен с браузером Browserify, но если вы хотите добавить графические ресурсы и скомпилировать Меньше или же CoffeeScript , то, вероятно, Webpack является лучшим вариантом. Дело в том, что вам предоставляется этот выбор.

    Нужна ли мне другая среда разработки с React?

    Используя React, вы можете создавать пользовательские интерфейсы, но вам все еще нужно совершать вызовы AJAX, применять фильтры данных и другие вещи, которые Angular уже делает.

    Так что, если нам нужна дополнительная среда разработки приложений на JavaScript, зачем отказываться от Angular?

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

    Один из способов достижения модульности и лучшего управления зависимостями - через менеджеров пакетов.

    Но тогда как нам управлять пакетами в Angular? Это зависит от вас, но знайте, что у Angular свой мир. Скорее всего, вам потребуется адаптировать сторонние пакеты в мир Angular.

    React, с другой стороны, просто JavaScript. Любой пакет, написанный на JavaScript, не нуждается в переносе в React.

    Для меня лучше использовать менеджеры пакетов, такие как npm и Bower. Мы можем выбирать наши компоненты и создавать собственные наборы инструментов. Чтобы быть ясным: это сложнее, чем просто использовать комплексную среду разработки приложений, такую ​​как Angular.

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

    Переход на реакцию не безболезненно!

    Так как Angular - это фреймворк для разработки приложений, у него есть много плюсов. Я отказываюсь от таких замечательных функций, как оболочка AJAX в службе $ http, $ q в качестве службы обещаний, ng-show, ng-hide, ng-class и ng-if в качестве управляющих операторов для шаблона - все эти удивительные вещи ,

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

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

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

    Однако, как только вы начнете понимать поток данных и хранилища Flux, все станет яснее, проще и проще.

    Реакт новый. Сообществу вокруг этого потребуется некоторое время, чтобы вырасти. Angular, с другой стороны, уже приобрел огромную популярность и имеет относительно большое количество доступных расширений (например, AngularUI и Restangular).

    Однако, хотя сообщество React является новым, оно быстро растет. Такие расширения, как React Bootstrap, являются доказательством этого. Это просто вопрос времени, когда у нас будет больше доступных компонентов.

    Заключение

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

    Но как только вы освоитесь с дизайном Flux и философией React, я гарантирую, что вы начнете видеть его красоту.

    Facebook и Instagram используют React (потому что они возглавляют проект).

    Новый редактор исходного кода GitHub, Atom, построен с использованием React.

    Предстоящий Yahoo! Почта перестраивается в React.

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

    Связанный контент

    Что такого замечательного в React?
    Почему я переключился на реакцию?
    Как двусторонняя привязка влияет на производительность?
    Что такого замечательного в React?
    Почему я переключился на реакцию?
    Нужна ли мне другая среда разработки с React?
    Так что, если нам нужна дополнительная среда разработки приложений на JavaScript, зачем отказываться от Angular?
    Если мне не нужны некоторые из его модулей или я хочу заменить один модуль на другой, который делает работу лучше, как мне это сделать?
    Но тогда как нам управлять пакетами в Angular?
    ТОП-5 лучших умных часов с Алиэкспресс
    Умные часы сравнительно недавно оказались на прилавках магазинов, тем не менее, стремительно набирают популярность среди взрослых и детей. Это и не удивительно, ведь этот аксессуар не только красиво смотрится

    Почему на алиэкспресс все дешево, можно ли покупать у них?
    6 Январь 2016       darwin             Просмотров:   2816 Хотел бы ответить на вопрос который мне поступил на почту, мол почему на алиэкспресс

    Как заработать на Алиэкспресс: основные методы
    Казалось бы, крупные торговые площадки в Интернете — это места, предназначенные для траты денег. Но на самом деле есть простые и надёжные методы, как заработать на Алиэкспресс. И воспользоваться ими могут

    Что делать если на алиэкспресс магазин перестал существовать
    Статьи Опубликовано: 18.10.2017 КАРТПЛОТТЕР (эхолот) за 25$!!! СОЗДАЮЩИЙ КАРТЫ глубин в реальном времени. Все чаще мне задают вопросы в стиле “Заказал товар, оплатил, позже зашел на страницу продавца,

    Детский размер США на русский на Алиэкспресс
    Многие из нас активно пользуются этой площадкой, и это не удивительно: здесь всегда можно найти что-то интересное по сходной цене. Детский размер США на русский на Али экспресс, таблицы сравнения – довольно

    Rock Zircon Nano - обзор наушников с АлиЭкспресс, где можно купить
    Недавно у меня сломались мои любимые наушники, и я начал подумывать о покупке новой модели. Наушники Rock Muma прослужили мне верой и правдой около двух лет, и я решил заказать их младшего брата — Rock

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

    Алиэкспресс шубы
    Всем привет. С наступлением осени меня все чаще стали спрашивать про покупку шубы с алиэкспресс, стоит оно того или нет. Поискав информацию в интернете, я кроме как  точно таких же вопросов, ничего

    Как вернуть обувь на Алиэкспресс ·. Возврат обуви на Алиэкспресс. В данной статье рассказывается о том, как делать возврат обуви на Алиэкспресс.
    Заказывая обувь на Алиэкспресс, все мы ожидаем надлежащее качество, и как же приятно когда оно соответствует нашим требованиям. Ну что можно сделать, если обувь пришла не такой какой должна

    Доставка с Алиэкспресс курьером: платная или нет?
    В данной статье мы поговорим, платная ли доставка курьером на Алиэкспресс . Курьерская доставка с Алиэкспресс нравится многим покупателям, ведь не придётся идти на почту с извещением, стоять в очереди

     

    Карта