flutter架构设计MVVM之provider方案
Flutter架构设计MVVM-Provider
Flutter中,MVVM架构的实现,可以通过使用ChangeNotifierProvider或者Consumer、Selector等其他与Provider包相关的Widget来实现。
这些Widget可以帮助你在页面级别管理状态,而不需要将状态提升到整个应用级别。
下面一个简单的例子,展示如何在一个普通的页面中使用MVVM架构; 目录结构如下
user
–model
—–user.dart
–page_route
—–user_page_route.dart
–view
—–user_page.dart
–view_models
—–user_view_model.dart
1.Model
- user.dart
|
|
2.ViewModel
- user_view_model.dart
|
|
3.View
- user_page.dart
我们创建user_page页面视图,它的主要操作如下
- 当用户点击加载用户数据按钮时,它会通过UserViewModel加载User中的姓名和年龄的数据,并通知视图更新显示。
- 当点击年龄增加1岁的按钮时,它会通过UserViewModel将User中的年龄加1,并通知视图更新显示。
- 当点击年龄减小1岁的按钮时,它会通过UserViewModel将User中的年龄减1,并通知视图更新显示。
|
|
4.页面中绑定 ViewModel
- user_page_route.dart
使用ChangeNotifierProvider来在页面级别提供UserViewModel的实例,这样页面的View就可以直接访问和修改ViewModel中的数据了
|
|
这样UserPageRoute可以在任意合适的时间进行展示,可以实现状态管理在单个页面内部就可以完成;保持代码模块化,清晰性。