Найти в Дзене
Kranst -technologies,IT news

Backbone.js vs React

Разработчики интерфейсов, возможно, уже знают эту игру: вы вводите "лучшие фреймворки JavaScript" в Google и получаете множество фреймворков JavaScript на выбор.

Для фреймворков JavaScript всегда есть больше возможностей. И всегда сложно выбрать фреймворк JavaScript для фронтальной разработки.

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

Вместо того, чтобы пытаться быть решительными, мы предлагаем наше прямое сравнение двух технологий JS: Backbone.js против Реакции.

Что такое Backbone.js ?

Backbone - это фреймворк JavaScript, основанный на архитектуре MVC. В Backbone.js представление MVC помогает реализовать компонентную логику, аналогичную контроллеру. Представление магистрали может использовать такие движки, как Усы и Underscore.js .

Backbone - это простой в использовании фреймворк JavaScript, который позволяет быстро разрабатывать одностраничные приложения.

Если вам нужно разработать приложение с разными типами пользователей, здесь вы можете использовать базовые коллекции (массивы) для разделения моделей. События можно использовать с базовыми моделями, Коллекциями, маршрутами и Представлениями.

Экосистема BackboneJS содержит:

Базовая библиотека состоит из событий, моделей, коллекций, представлений и маршрутизатора.

Underscore.js , библиотека JavaScript со вспомогательными функциями, которые вы можете использовать для написания кроссбраузерного JavaScript.

Вы можете использовать механизмы создания шаблонов, такие как Mustache и jQuery-tmpl.

Онлайн-репозиторий с множеством готовых решений для магистральных приложений.

Интерфейс командной строки генератора магистралей для создания магистральных приложений.

Библиотеки JavaScript Marionette, Thorax и Chaplin для разработки передовой архитектуры для магистральных приложений.

Backbone.js это идеальный выбор для интерфейсной и серверной разработки, поскольку он поддерживает API REST, которые используются для синхронизации интерфейсной и серверной части.

Что такое React?

Несколько лет назад React взяла штурмом мир JS и стала его бесспорным лидером. React рекомендует использовать реактивный подход и парадигму функционального программирования.

React также представила множество собственных концепций, определяющих ее уникальный (на момент создания) подход к веб-разработке с пользовательским интерфейсом. Чтобы использовать React, вам необходимо освоить компонентную архитектуру, JSX и однонаправленный поток данных. Однонаправленный поток данных реализован с помощью Flux.

Приложения React делятся на несколько компонентов. Один файл компонента содержит как бизнес-логику, так и HTML-разметку (которая на самом деле является разметкой JSX, преобразованной в функции JavaScript).

Для связи между компонентами вы можете использовать Flux или аналогичную библиотеку JS.

React также ввел специальные объекты - состояние и свойства. Используя объекты состояния и реквизита, вы можете просто передавать данные из компонента в макет (используя объект состояния) или из родительского компонента в дочерний компонент (используя объект реквизита).

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

И этот список библиотек управления состоянием для React далеко не исчерпывающий. То же самое и с библиотеками HTTP: React может работать с jQuery AJAX, fetch API, суперагентом и Axios, и это лишь некоторые из них.

Экосистема React состоит из:

Сама библиотека React плюс React-DOM для манипулирования DOM.

Реагирующий маршрутизатор для реализации маршрутов.

JSX, специальный язык разметки, который смешивает HTML с JavaScript.

Приложение React Create - интерфейс командной строки для быстрой настройки вашего проекта React.

Библиотеки на базе Axios и Redux, библиотеки JS, позволяющие организовать взаимодействие с серверной частью.

Инструменты разработчика React для браузеров Chrome и Firefox.

React Native для разработки собственных мобильных приложений для iOS и Android.

Почему мы должны их сравнивать?

Интерфейсным разработчикам становится все труднее решить, какую платформу приложений JavaScript выбрать, особенно когда им нужно создать одностраничное приложение. Не говоря уже о деловых людях, смотрящих на этот выбор с другой точки зрения. (Кроме того, почему бы не посмотреть, что JS может предложить бизнесменам?)

Поэтому мы настоятельно рекомендуем этот материал тем, кто выбирает между двумя сторонами JS: Backbone.js против Реакции.

Области сравнения

Поскольку вы сами решаете, какой фреймворк JS будет выполнять эту работу, вы столкнетесь с серьезной проблемой, потому что вам придется выбирать.

Чтобы упростить выбор фреймворка JS для разработки на стороне клиента, нам нужно сузить наши области сравнения до нескольких наиболее важных. Для разработки на стороне клиента в нашем списке критериев есть следующие пункты:

Скорость кодирования/простота кодирования

Под поверхностью не происходит никакого волшебства: исходный код Backbone.js понятен, читаем и хорошо прокомментирован. Магистраль также "легкая" в том смысле, что ее использование не требует больших затрат. Его можно легко интегрировать в существующую страницу, и вы можете использовать только определенные компоненты библиотеки (например, представления без моделей или коллекций).

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

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

В то же время React обладает довольно быстрым уровнем кодирования. Система JS широко рекомендуется за ее эффективность, небольшой размер блока, гибкость и более быстрый подход к работе благодаря простой компонентной модели и функциональности рендеринга на стороне сервера.

Представление

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

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

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

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

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

Такие инструменты, как Backbone, также могут быть проблематичными, когда ваша команда неверно представляет младшего сотрудника, потому что Backbone не предоставляет определенной структуры. Угловой делает это немного сложнее - хотя, конечно, не невозможно! - накапливайте кучу кода спагетти, - говорит Джейсон Свитт.

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