Вступление
Процесс разработки веб-приложений развивался на протяжении многих лет. Вначале веб-приложения были просто статическими 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 . |