Upgrade to Pro — share decks privately, control downloads, hide ads and more …

backbone.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for maliqq maliqq
August 22, 2012
95

 backbone.pdf

Avatar for maliqq

maliqq

August 22, 2012

Transcript

  1. Backbone.js • Построение каркасов для JS – структурированный код •

    MVC-подобный паттерн на фронтенде (MV*) • Управление history & browser state – Single Page Applications • Написан автором CoffeeScript (jeremy ashkenas) • Меньше 1.5 KSLOC • production: Groupon, LinkedIn, DocumentCloud
  2. Чем не является Backbone • это не DOM-фреймворк (jQuery, Zepto,

    Prototype) • это не UI-фреймворк (YUI, Dojo, jQuery UI) • не предоставляет соглашений – Как организовать код
  3. Структура • Model — attributes, dirty changes, events, validations, persistence

    • Event — on, off, trigger • View — render, DOM events, templates • Collection — enumerable, REST • Router — route, navigate • Underscore — utils
  4. Views • this.$el — DOM элемент • this.model — связанная

    с представлением модель • this.template — шаблон JST, Jquery template, Mustache, EJS etc. • Backbone.View::render() - связь данных с шаблоном
  5. Где хранить шаблоны • Inline • JST + ejs •

    внутри <script> • подгрузка через асинхронный лоадер
  6. Модель • Набор атрибутов – отслеживание изменений (dirty changes) •

    Валидации • JSON, RESTful • События (коллбеки)
  7. Модель + view • Модель не знает о view •

    Подписка на события — в конструкторе view
  8. Роутер • Понимает все что находится за # в УРЛе

    • Может служить общей шиной для событий • Восстановление состояния из location.hash
  9. View-View events: Mediator • «Шина» событий-коллбеков • Простой pub/sub •

    Глобальная видимость для нескольких views
  10. Backbone.Marionette • Несколько полезных сущностей – Application, AppRouter, Renderer •

    Готовые views: ItemView, CollectionView, CompositeView • Layout, Region
  11. Конвенции • Code conventions – • Naming conventions – My.Part.Of.Application

    vs a.b.c.Weird – Стараться избегать «View», «Model» в названиях
  12. Bad practices • объявлять что-либо внутри $ (document).ready • игнорирование

    underscore – underscore идет из коробки! использовать • _.extend вместо jQuery.extend() • _.each вместо jQuery.each
  13. Связка с Rails • Гем backbone-rails • CoffeeScript, AssetPipeline •

    Заточен под рельсовый REST • Отпадает необходимость в respond_to :js