Вступление
Процесс разработки веб-приложений развивался на протяжении многих лет. Вначале веб-приложения были просто статическими HTML-страницами, которые требовали от программистов изменения кода для изменения содержимого. Позже, в Web 2.0 были добавлены языки программирования на стороне сервера для динамической генерации HTML-страниц на основе пользовательского ввода и данных, хранящихся в базе данных.
Веб-приложения в настоящее время требуют интенсивного использования JavaScript для создания контента на лету. Пользователю не нужно ждать между запросами и обновлением страницы. Большая часть логики / кода, которая раньше была на стороне сервера, перемещается на сторону клиента. Хотя JavaScript сейчас широко используется для создания веб-приложений, мы наверняка столкнулись с некоторыми проблемами при создании больших приложений с помощью JavaScript.
Backbone.js
Для решения этой проблемы Backbone.js или backbone находится здесь. Мы все использовали различные виды фреймворков, таких как Model-View-Controller (MVC), Model-View-Presenter (MVP), Model-View-View Model (MVVM) для создания одностраничных приложений (SPA). Backbone.js (или просто Backbone) — это оболочка JavaScript для создания одностраничных приложений (SPA) с интенсивным использованием данных. Backbone придерживается своей особой парадигмы. Магистраль не требует, чтобы файлы были структурированы в файловой системе. Backbone также помогает нам предоставлять необходимые советы по структуре кода в проектах. Backbone наиболее полезен, когда приложение использует базу данных в бэкэнде для сохранения пользовательских данных, а внешнему приложению необходимо будет отразить большую часть этих данных.
Выше мы говорили о необходимости backbone.js. Теперь давайте посмотрим на рабочий процесс backbone.js.
Рабочий процесс backbone.js
Во время работы SPA на основе Backbone пользователи будут взаимодействовать с данными из серверной части. Когда они взаимодействуют с приложением, они делают это с помощью Views. Представление представляет собой часть объектной модели документа (DOM). Эти взаимодействия запускают события для обновления данных в модели. Backbone.js отслеживает эти модели и отправляет данные о каждом изменении на веб-сервер для сохранения. Он также отслеживает изменения данных модели и может обновлять виды. Это делает процесс обновления DOM и отправки данных на сервер автоматическим. Вместо того чтобы создавать несколько одноразовых вызовов jQuery $ .ajax, мы можем использовать согласованный метод.
Теперь давайте проработаем пример кода, который напечатает Hello! Мир.
HTML-страница
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
<! DOCTYPE HTML> < html > < head > < title >Backbone Application Development Starter</ title > <!-- utility library and selector engine should be placed here.--> < script src = "scripts/backbone-1.0.0.js" ></ script > </ head > < body > < div id = "display" > < div class = "listing" >There is a problem.</ div > </ div > </ body > < script src = "scripts/sample.js" ></ script > </ html > |
Для начала с backbone.js нам понадобятся три сторонних скрипта.
- Backbone.
- Подчеркнуть / LoDash.
- J-запрос / Zepto.
На приведенной выше html-странице мы включили backbone-1.0.0.js. и мы должны включить Underscore / LoDash и J-query / Zepto. После загрузки всех библиотек и механизма выбора мы можем писать HTML-коды.
Файл JavaScript
1
2
3
4
5
6
|
var obj = {}; _.extend(obj, Backbone.Events); obj.on( "show-message" , function(msg) { $( '#display .listing' ).text(msg); }); obj.trigger( "show-message" , "Hello World" ); |
теперь, как мы видим, в приведенном выше фрагменте кода происходит много вещей. Как мы видим в первой строке
1
|
var obj = {}; |
Мы создаем объект с именем ‘obj’. Вторая строка очень важна.
1
|
_.extend(obj, Backbone.Events); |
В этой строке мы видим, что библиотека утилит предоставляет нам множество функций. Одним из которых является расширение. Эта функция принимает два или более объектов в качестве аргументов. После копирования атрибутов из них, добавляет их к первому объекту. Утилита расширения является лучшим способом добавления функциональности Backbone к классам. наш объект obj теперь является объектом Backbone Event, который можно использовать для запуска событий и запуска функций обратного вызова при срабатывании события.
Кроме приведенного выше кода, мы также можем написать тот же код, используя шаблоны. Давайте посмотрим на это:
01
02
03
04
05
06
07
08
09
10
11
|
var AppView = Backbone.View.extend({ el: $( '#container' ), template: _.template( "<h3>Hello <%= who %><h3>" ), initialize: function(){ this .render(); }, render: function(){ this .$el.html( this .template({who: 'world!' })); } }); var appView = new AppView(); |
В приведенном выше коде мы используем другой подход для печати Hello world! Мы используем шаблон. Мы создали представление, которое расширяет служебные библиотеки.
1
|
el: $( '#container' ), |
‘el’ здесь является элементом DOM представления. Далее у нас есть шаблон, в котором есть заполнитель «кто», который будет заменен позже.
1
|
this .$el.html( this .template({who: 'world!' })); |
В этой строке мы отрисовываем функцию, подставляя переменную who для world! , в самом конце мы используем следующий фрагмент кода для инициализации представления.
1
|
var appView = new AppView(); |
Backbone.js предоставляет нам пять очень важных функций.
- Модели.
- Коллекции.
- Просмотры.
- Шаблоны.
- Посмотреть события.
Мы просто пройдемся по основам этих пяти функций в этой статье.
Модели. Модели — это сердце любого приложения JavaScript, содержащего интерактивные данные, а также большую часть логики, окружающей их.
Коллекции: коллекция прокси для Underscore, чтобы предоставить функции списка для работы с данными.
Представления: базовые представления используются для отображения моделей данных приложений. Они также используются для прослушивания событий и соответствующей реакции.
Шаблоны. Шаблоны — это, по сути, фрагменты разметки, которые используются для создания множества различных повторно используемых копий этой разметки, но для заполнения каждого компонента различными данными.
Просмотр событий: « События» — это модуль, который можно смешивать с любым объектом, давая объекту возможность связывать и запускать пользовательские именованные события.
Мы будем подробно описывать возможности Backbone в наших последующих статьях. Поэтому, пожалуйста, ищите то же самое.
Ссылка: | Введение в Backbone.js от нашего партнера по JCG Пияса Де в блоге Phlox Blog . |