在Backbone项目中使用backbone.layoutmanager来组织页面布局
bbb 的 init
命令生成的初始化模板工程中包含有 backbone.layoutmanager 插件, 该插件提供了一种页面的结构化组织方式, 将 Backbone Views
组装成页面布局 Layout
.
backbone.layoutmanager 主要的目的是提供一种规则来管理 Backbone.View
的渲染, 程序员只需要遵循这套规则, 就能简化页面渲染的实现.
backbone.layoutmanager 主页已经很详细地介绍了使用方法, 这里就不再赘述. 下面是个人感觉在学习使用过程中感觉应当注意的几点:
完全受管理的 render
Backbone.LayoutView
仅仅是一个将 manage
属性设置成 true
的 Backbone.View
.
1 2 3 |
|
只有当 manage
属性被设置为 true
, LayoutManager
才会接管 Backbone.View
的渲染.
数据和模板
视图的渲染需要 template
和 serialize
属性, 分别对应HTML模板和数据模型. LayoutManager
缺省使用 underscore 的 template
函数进行页面的渲染.
嵌套视图
可以通过 setView
, setViews
, insertView
, insertViews
等函数在视图中嵌套多个其他的子视图.
BeforeRender 和 AfterRender
render
完全处在 LayoutManager
的管理下, 因此, 如果你想在每次视图渲染前后做一些特殊的处理, 必须定义 beforeRender
和 afterRender
函数.
由于 LayoutManager
内部会在渲染视图前移除所有附加模式的子视图, 因此, 通常在 beforeRender
函数中调用 setView
和 insertView
来增加和设置子视图.
如果你不想在每次渲染时移除子视图, 自己控制子视图的增删, 可以设置子视图的 keep
属性为 true
.
Cleanup 函数
很多视图(View)都有数据模型(model)的事件绑定函数, 因此, 必须在视图被删除后解除绑定. 可以通过定义视图的 cleanup
函数来完成这个解绑操作:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
自定义获取模版
LayoutManager
缺省只支持 script
标签的模版, 但是在实际软件项目中, 通常会将不同的模版放置在不同的单独的 html 文件中, 这样便于模版文件的管理.
LayoutManager
提供了 fetch
配置项让我们有机会来自己获得模版文件:
1 2 3 4 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
下面是作者的教学视频, 初学者一定要看看.
backbone.layoutmanager from tbranyen on Vimeo.