marionetteJS是在backboneJS基础上进行更简洁的操作,平常开发主要用到几个涉及到view的概念:CollectionView、CompositeView、ItemView、LayoutView。这几个概念中,用的最广的当属ItemView。ItemView相对于backbone中view的概念方便之处在于:不用显式定义render方法,而是由ItemView本身完成将数据渲染到模板,并将视图追加到el,由此可见减少了很多流程化的操作。
同时marionetteJS还有很多事件和回调方法如:onBeforeRender、onRender、onBeforeDestroy、onDestroy、onShow等。这些回调函数,都在相应事前执行前或后,被调用执行,即帮助开发人员设定好了时序的通用方法,大大简化了业务逻辑实现。
当然本文并不是详细讲述marionetteJS的原理,而是针对使用marionetteJS实现todoMVC功能(点击下载)做讲解。由于公司根据具体业务需要,在marionetteJS上又进行了一些封装实现,不过基本功能marionetteJS没有太大出入,故如看到代码中Italent无需惊慌,只需做到理念上的理解即可。
首先让我们看一下,项目目录、view目录及templates目录:
从以上三个目录来看,相对于上一篇文章采用backbone实现todoMVC似乎没有太大差别,那么差别在哪呢?
上篇文章中提到每个view所提供的职能: