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

Modular Web-clients building upon BackboneJS-driven frameworks.

Kreees
June 25, 2013
69

Modular Web-clients building upon BackboneJS-driven frameworks.

It's another view for programming and markup your super site/service/app client part. Make client side programmig nativeapplike.

Kreees

June 25, 2013
Tweet

Transcript

  1. « Модульный подход к разработке клиентской « Модульный подход к

    разработке клиентской / части веб мобильных приложений на базе / части веб мобильных приложений на базе Backbone.JS driven » фреймворков Backbone.JS driven » фреймворков Сухарев Кирилл Сухарев Кирилл
  2. Rails application.ham application.ham Controller Controller Action Action Scope (Context) Scope

    (Context) controller#action_view.haml controller#action_view.haml + partials.haml + partials.haml + helpers() + helpers()
  3. Django View Index1.html Index1.html Templ1.html Templ1.html Context Context Layout.html Layout.html

    Templ2.html Templ2.html Templ3.html Templ3.html Index2.html Index2.html include1.html include1.html include2.html include2.html
  4. Backbone.View().el Backbone.View().el Backbone.JS <!- index.html -> <!- index.html -> <html>

    <html> <body> <body> <div> <div> Static HTML page part Static HTML page part </div> </div> <div#place_to_render> <div#place_to_render> … … </div> </div> </body> </body> </html> </html> Client HTML Template Template Context ?
  5. Что за MVC/MVP/MVT? Все это о данных на каком-то сервере

    и как с ними обращаться. Реальная структура и содержание клиента шире чем просто набор вьюх в системе MVC.
  6. Компоненты в структуре клиента Компоненты в структуре клиента CSS +

    HTML + JS CSS + HTML + JS Less + Jade/Jqote + Coffee/Backbone.View Less + Jade/Jqote + Coffee/Backbone.View
  7. <!-- Внешний вид --> <style type='text/less' data-module='your_component'> .your_component { position:

    relative; background-color: blue; color: yellow } </style> <!-- Верстка --> <script type='text/jade-template' data-module='your_component' id='your_component'> <![CDATA[ .your_component p! <%= this.attribute %> a(href='/some/link') Some Link ]]> </script> <!-- JS-Обработчики --> <script data-module='your_component' type='text/coffeescript'> YourComponent = Backbone.View.extend { template: «#your_component» events: {...} } </script> Модуль. Один. Модуль. Один.
  8. Action 1 Action 2 Action 3 Action 4 Application Layout

    Application Layout Page 1 | Page 2 | ... | Basket | Contacts Last Viewed cleaners Бла-бла-бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла-бла Бла-бла-бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла-бла Купите супер пылесос Характеристики бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла- бла-бла-бла-бла-бла-бла- бла-бла-бла- Footer block Header block
  9. Взаимодействия Backbone.View.extend { Backbone.View.extend { … … events: { events:

    { «click button.btn#ok»: «submit» «click button.btn#ok»: «submit» «click button.btn#cancel»: «reject» «click button.btn#cancel»: «reject» }, }, submit: → submit: → // Submit // Submit reject: → reject: → // Reject // Reject } } muon.LayoutView.extend { … events: { «submit .comment_action»: «submit» «hide .comment_action»: «hide» }, submit: → // Post new comment hide: → // Hide comment box } Pure Backbone View Pure Backbone View Modular Backbone Views Modular Backbone Views