计划,每天学习两小时,坚持带来大改变。

Marionette:Web前端框架Backbone.Marionette(一)

前端开发 阿尤 8010浏览 0评论

在Playframework样例程序zentasks下的app\assets\javascripts\main.coffee中,有这样一段话:

DISCLAMER :
If you're used to Backbone.js, you may be
confused by the absence of models, but the goal
of this sample is to demonstrate some features
of Play including the template engine.
I'm not using client-side templating nor models
for this purpose, and I do not recommend this
behavior for real life projects.

我断定Backbone.js是个客户端模板框架,因此我知道摊上事儿了,摊上大事儿了!便随手把zentasks丢在地上,循着兔毛去追兔子。一路上不断看到这只兔子的各种传说,撩拨的我心痒难耐,魂不守舍!因此在老婆大人训话期间走神发呆,致使上峰震怒,被罚关小黑屋 :(

好在皇天不负有心人!几经辗转,终于让我找到秘笈:Developing Backbone.js Applications。还有一篇介绍将Backbone.Marionette 用做Play 前端架构的文章:An advanced front-end architecture for Play! 2.0 with Backbone.js, Marionette, & CoffeeScript. 赶紧拣紧要的摘录在此,以备后用。

BTW,Marionette = 牵线木偶,这是个宝贝。

Backbone.Marionette

Backbone.js 一夜间红遍大江南北,以迅雷不及断网之势拿下模块化Javascript前端应用框架头牌的位置。很大程度上得益于她良好的职业素养,见谁都是三分笑,一点不端架子,任谁都能招呼。虽然她天资聪颖,但毕竟出身于类库之间,缺乏架构气质,想让她应付各种复杂局面,客官对不起,自己想辙砌。

所以对于想用Backbone.js做高级货的玩家,入手Backbone.Marionette再合适不过了。人作者说了:“make[s] your Backbone.js apps dance with a composite application architecture!”看到没,组合式应用架构,还轻舞飞扬,擎好吧您呐!

Backbone给Javascript准备了很多构件。有组织jQuery DOM事件,打造支持移动设备以及大型企业应用的核心构造,但在应用设计,架构和扩展能力方面,开发人员得到的支持有限。

Backbone.Marionette (就叫 "Marionette" 吧) 站在了Backbone的肩膀上,给我们带来了很多开发正经玩意儿的特性。它是为简化大型应用构造工作而生的组合应用类库。其中包含了一系列通用的Backbone应用设计和实现模式,是其创建者 Derick Bailey和其他 同仁 构建Backbone应用实战经验的结晶。

Marionette的核心价值在于:

  • 模块化,事件驱动的架构
  • 合理的默认配置,比如用Underscore 模板做视图呈现
  • 易于根据特定需求进行修改
  • 提供特定的view类型,减少view呈现的套路化代码
  • 用Application及附着在其上的模块实现模块化架构
  • 借助 Region 和 Layout,在运行时组合应用的显示效果
  • 在可见区域内的嵌套式视图和布局
  • 内置的内存管理功能,可以杀死 views, regions 和 layouts 中的僵尸
  • 内置的EventBinder 事件清除
  • 借助EventAggregator实现的事件驱动架构
  • 灵活, "用啥装啥" 架构
  • 木木的好处数不清。。。

Marionette的哲学思想师承 Backbone,它提供的组件也是那种即可独立使用互不干扰,又可相互合作共同发力。但它没像Backbone那样停留在结构化的组件上,而是在应用层面上提供了很多组件(component)和构件(building block)。好吧,这有点像文字游戏,按我目前的认识,其实老外也就随便一说。

Marionette的组件用途很广,但它们能合在一起形成一个组合式应用层,既可减少套路化代码,也能提供更合理的应用结构。其核心组件包括:

但Marionette的组件也是按需取用,毕竟是Backbone家的,三观一致啊。跟其它Backbone框架、插件相处也很容易,其乐融融。升级的时候,也可以按组件来,不用眉毛胡子一把抓。


转自 图灵社区 :http://www.ituring.com.cn/article/31580

转载请注明:阿尤博客 » Marionette:Web前端框架Backbone.Marionette(一)

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 验证码 (必填)点击刷新验证码