Использование Стандарта Es2015 В Библиотеке Backbone.js

Пока ребята из команд, работающих над Angular и React, мягко, но уверенно переводят разработчиков на ES2015, хотелось бы немного рассказать о возможностях использования нового стандарта спецификации с библиотекой Backbone.js. Сегодня основной подход к использованию ES2016 в браузерах тот же и не зависит от используемого фреймворка/библиотеки.

А состоит он в следующем: пишем код на ES2015 и с помощью транспилятор (например.

Вавилон ) получаем код (который выполняется в браузере) по предыдущему стандарту ES5. Но как можно использовать модули, классы и другие «фишки» из ES2015 в сущностях библиотеки Backbone.js? Об этом пойдет речь под катом.

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

Итак, приступим к написанию модуля, который будет одним из наших представлений:

  
  
  
  
  
  
   

import $ from 'jquery'; import Backbone from 'backbone'; import _ from 'underscore';

Здесь мы просто импортировали зависимости, необходимые в этом модуле.

Используете ли вы другие библиотеки? Делать то же самое.

Далее мы объявим класс МойCustomView :

class MyCustomView extends Backbone.View { // our other code }

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

class MyCustomView extends Backbone.View { // our other code } export default MyCustomView;

Структура модуля готова, осталось добавить в созданный класс методы (именно методы, а не свойства функции):

class MyCustomView extends Backbone.View { initialize() { } render() { } // our other code } export default MyCustomView;

Пока все предсказуемо, но мы еще не объявили такие свойства, как el, tagName, event. Как они будут выглядеть? Есть 2 подхода: реализовать их объявление через геттеры или объявить в методе-конструкторе, приведу оба примера:

class MyCustomView extends Backbone.View { get tagName() { return 'div'} get className() { return 'example' } get template() { return _.template(myTemplate)} get events() { return { 'click': 'sayHelloWorld' } } }

Используя конструктор, получаем:

class MyCustomView extends Backbone.View { constructor() { super(); this.tagName = 'div'; this.className = 'example'; this.events = { 'click': 'sayHelloWorld' }; } }

Аналогичная ситуация произойдет и с атрибутами моделей и коллекций.

Никаких препятствий для дальнейшего использования всех «возможностей» стандарта ES2015 нет. Вы можете использовать деструктуризацию, строки шаблонов, итераторы, стрелочные функции, новые типы коллекций, промисы, символы так же, как и в других фреймворках/библиотеках, привязки к Backbone.js нет. Например, используя функцию стрелки в методе инициализации:

class MyCustomView extends Backbone.View { initialize() { setTimeout(() => {this.render()}, 1000); } render() { } // our other code }

Как видите, внеся минимальные структурные изменения в свой проект, вы легко сможете перейти на ES2015 с помощью библиотеки Backbone.js. Вы уже можете использовать все возможности языка, не развиваясь на таких быстро развивающихся библиотеках, как React. Теги: #backbone.js #es2015 #JavaScript #JavaScript #программирование

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.