![TOC]编程
一个常见的"评价列表页",点击"评价列表页"中的任意一项跳转进入"评价详情页"。在"评价详情页"咱们能够看到该评论完整的评价内容和评价大图,同时"评价列表页"和"评价详情页"都带有分享和点赞的功能。微信
外层网络
main.dart入口函数调起CommentApp.dart这个App的工程入口架构
widgetsmvc
comment_list_item.dart和comment_widget_pub.dart是封装的两个视图组件,一个是列表的每个item的样式,另外一个是"评价详情页"和"评价列表页"的底部操做栏(点赞,分享)样式封装app
screensiview
comment_detail.dart和comment_list.dart对应咱们的两个页面"评价详情页"和"评价列表页"异步
mvcide
MVC模式中的Control类和Model类函数
model
comment_item_model.dart对应的是评价列表页每个item背后的数据封装
以评论中的点赞操做为例
columnControl是comment_widget_pub.dart里面的一个方法,封装了一个底部操做栏的视图,包含了"点赞"和"分享"的功能。
箭头处的Con().praise1方法被View的onTap事件触发,是很是常见的一种从View到Control创建链接的调用方式
外层
同上
widgets
同上
screens
同上
mvp
以"评价列表页”为例,comment_list.dart实现了comment_list_iview.dart中的接口(如 onZanValueUpdate方法)而comment_list_presenter.dart实现了requestZan等异步方法。
model
同上
以评论中的点赞操做为例
外层
同上
actions
定义了各类操做类型,能够认为是一个状态变动的代号:PraiseAction(点赞操做),ShareAction(分享操做),FetchListAction(取列表数据)等
screens
同上
reducer
actions包下定义了状态变动的代号,而reducer里面就是描述了具体的状态是如何进行变动的,一个reducer一般对应一个或多个action。
middleware
middleware是在action触发后且reducer到达前被执行,这里主要是为了插入一个请求评价列表数据的异步方法。
model
比以前多了一个app_state.dart,它是Store所存储的状态描述。
以评论中的点赞操做为例
关注『Flutter编程指南』微信公众号,公众号消息界面回复『widget』『dart』『存储』『插件』等获取更多精准信息,也可回复『三种架构』获取本篇三种架构相关的demo源码。