use*_*232 5 javascript templating displaylist backbone.js
我敢称自己为骨干黑客.我知道框架可以做什么,以及它的局限性.我也有一些模板框架的经验.
我已经看过许多教程,其中人们解释了如何创建复杂和嵌套的视图,并且大多数教程构建它有点使用模板,然后在父视图的render方法中,以组合模板化的子视图
对我来说,为什么人们应该在声明性代码中处理布局渲染是没有意义的.来自Flex,我被教导永远不会这样做.我总是将布局描述和变量绑定留给标记,然后将事件处理留给使用此标记的声明性(View实例)代码.
但是,我测试的模板框架都没有允许使用嵌套视图创建复杂标记.实际上无法从模板调用模板,因此实例化View对象.这似乎在技术上是可行的,特别是使用数据属性,我们可以在其中指定类型名称.
然后,根级View类的所有渲染方法都要将此模板转换为HTML标记,然后找出子对象的类型应该是什么,为它们中的任何一个创建子视图实例,并进一步保持,如果这些子对象本身应该有子对象.每个视图都有一个模型上下文.基本上我们一直处理的所有样板步骤,但在Backbone.View级别自动化.
有人在想这个吗?为什么似乎没有人使用这个?
需要注意的是,根本没有必要使用渲染,它主要是为代码更改后重新渲染而保留的。您可以直接基于 CSS 选择器绑定视图(请参阅文档)。
此外,Backbone 还有一个模型绑定扩展,它极大地简化了数据绑定并减少了所需的“手动”劳动。您可能想检查一下。
http://github.com/derickbailey/backbone.modelbinding
最后说一下关于渲染亲子关系的事情。 不要在循环中调用 DOM。这是极其低效的,并且至少是人们仅在父母渲染方法中建立父子关系的原因之一。让每个子元素使用 jQuery 来渲染自身将会给浏览器带来大量工作(如果您在现代浏览器中没有注意到这一点,请在 IE8 中尝试一下)。
| 归档时间: |
|
| 查看次数: |
1387 次 |
| 最近记录: |