重视ExtJs中model

一般来说,在extjs的MVC模式中,比较注重的是controller以及view,在model层面的重视程度是不够的(至少我是这样的),究其原因,主要有两点:

  一、将model层浅显的理解为定义store的URL与fields就可以了,然后通过controller事件就可以搞定数据的载入的问题,这样一来,实际上model这一层真正用到的东西并不多了

  二、个人习惯问题,有人习惯在定义组件的store的时候,连带store里面的内容一起定出来,包括proxy,fields,root....任务这样定义出来的话,方便进行查看,不需要在多个文件中翻来覆去的找

因为这两个问题(或者更多问题),实际上进行真正MVC模式开发的并不是那么容易,我在使用两年左右的extjs后,开始发现着一个问题,于是考虑了一下:model这一层包含了store与model两个部分,那我们是不是应该重视model层面的东西?结合之前在做PHP的一点经验,觉得在使用extjs的MVC模式上应该可以进行更大的改进。

  首先:view里面在定义的时候,只定义一个对象,不包含实际的内容

 1 {
 2     xtype: 'grid',
 3     columns: [{
 4         dataIndex: 'name',
 5         header: 'name',
 6         width: 200
 7     }, {
 8         dataIndex: 'age'
 9         header: 'age'
10         width: 200
11     }],
12     store: Ext.create('App.store.UserStore')
13 }

     然后在自定义的store里面编写需要定义的fields,proxy等属性,以及一些我们需要用到的自定义方法,这些方法可能包括字段数据格式的组合,验证,转换等。这样一来,我们就可以减轻controller的工作量,让controller只专注于事件层,而不用去干数据的转换、验证等活。  

     在经过这样一层转换的之后,将一个功能话划分成了三个部分:事件驱动,页面布局,数据对象,各个部分的功能明确,在其他的页面中进行view或者store的重用时,可以更加方便灵活~

posted @ 2015-05-25 10:25  Kaniel  阅读(1820)  评论(0编辑  收藏  举报