Learn backbone 1st
Posted on Mon 09 March 2015 in Programming
MVT
-
MVC --> MVT: T--Template
-
Model 模型
- 模型包含属性以及对于属性的验证
- 模型的持久化
- 模型变化对于视图的更新
- 模型的分组--集合
-
View 视图
- 用户与视图交互来读取和修改模型数据
- 视图的 render() 方法使用underscore.js 渲染模型内容,并更新到视图
- 视图通过事件监听机制将交互委托给事件处理程序处理
-
Template 模板
- JS模板可以接收多种数据格式, 一般是一个字符串序列化格式, 以它来填充模板
-
Controller 控制器
- backbone中视图通常包含控制逻辑, 路由用于帮助管理应用程序状态
Model
- Backbone.Model
- 构造函数: initialize()
- 默认属性: defaults
- 属性集合: Model.attributes
- 通用方法:
- Model.get
- 监听模型变化:
- 任一属性变化: this.on('change', func)
- 指定属性变化: this.on('change:title', func)
- 模型验证:
- Model.validate() 有效则不返回, 否则返回错误消息, 触发 invalid 事件, 不再继续执行 save()
View
-
Backbone.View
-
el: 对Dom元素的一个引用
- 对于视图创建一个新元素, 可以设置 tagName, id or className
- 若要指定一个已有元素: 可以设置el, e.g. el: #footer, .$el == $(view.el)
-
setElement: 重新指定一个 dom 元素
- render() : 渲染模板
- events: eventName, selector: callbackFunction
-
Collection
- Backbone.Collection
- add
- remove
- get('id')
Restful persistence
- add url property
- fetch() to get models
- save() to save models
- destroy() to delete models
Event
- on: subscribe an event handler
- off: unsubscribe an event handler
- trigger: publish an event
- listenTo: subscribe an event handler of other object
- stopListening: unsubscribe an event handler of other object
Router
- 将 URL 路由映射到一个函数上
Books
- Developing Backbone.js Application -- Addy Osmani http://oreil.ly/dev_backbone_js_apps http://addyosmani.com
Tips
- MAC: mac+alt+i
- Win: ctrl+alt+i
Cases
- TodoMVC
- Disqus
- Khan Academy 可汗学院
- MetaLab Flow
- Walmart Mobile
- Airbnb
- Code School