美文网首页
MVVM学习总结

MVVM学习总结

作者: OwenKing | 来源:发表于2017-12-26 09:53 被阅读33次

    之前项目一直用的MVC框架,到这家公司以后因为项目业务比较繁重,各种页面状态,效果比较多,数据量也比较大,公司就要求用MVVM框架。临时抱佛脚学了好久,跟着公司前辈适应了一下,也算是把项目做完了。现在想总结一下自己对于这个模式的认知

    比如这个例子。sectionHeadView上面有三个按钮,对应不同的活动。点击的时候区头字体颜色改变,刷新下面单元格,出现新的产品。首页我们要分清各模块的职责。

    1.M层建立区头sectionHeadView和cell两个数据模型,然后使用MJExtenSion解析。

    2.V层创建视图层,我们可以创建一个继承与uiview的mainTabView,区头可以用colllectionView写出来,如果活动多的话增加左右滑动的功能也比较方便,cell这里自定义单元格就不必说了。

    3.viewMode层做的事情比较多(1)首先呢就是网络请求,获取数据。(2)对于view层视图显示的管理,ViewModel需要和View进行通信时,根据获取的数据确定何时隐藏或显示信息  (3)日期和数字等的格式化处理  (4)数据的本地化处理          可以总结为展示层逻辑(viewmodel中切不可存在view对象,更不该出现push或者present代码

    4。然后就回到VC了,有了viewMode,VC层就接触不到model层了。主要也就是(1)页面的布局  (2)动画效果的展示  (3)页面UI的加载展示,同事将viewmode的数据传输给V层。

    即viewmodel的数据随着view自动刷新,并且同步到model里去,ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定。也就是将viewModel中的方法在VC中实现对View的页面数据显示和布局刷新

    View层的初始化方法也可以这样写,获取到数据模型以后开始页面的布局展示

    在VC懒加载里面即进行了Viewmode与View数据的传值交互。这样就极大的简化了VC里面的代码,分离了代码层,更利于解读与维护

    不过前面说的ViewModel作为View与Model的连接器,View与Model通过ViewModel实现双向绑定,是需要RAC技术作为支持的,才能更方便的实现。

    相关文章

      网友评论

          本文标题:MVVM学习总结

          本文链接:https://www.haomeiwen.com/subject/wpddgxtx.html