fast_mvvm library Null safety

Classes

BaseEntity
基类Entity JSON数据实体
BaseListViewModel<M extends BaseModel, E extends BaseEntity, I>
基类 ListVM
BaseModel
基类Model 具体实现API
BaseViewModel<M extends BaseModel, E extends BaseEntity>
基类 VM
DataResponse<T>
接口数据 响应
EmptyIntactWidget
用于当 List 或者 Grid 空的时候生成完整的整页面 如果在ListView 里面用
FastMvvm
ListOrGridEmpty
内容容器 判断 List 或者 Grid 是否为空 显示内容或加载空视图
ViewConfig<VM extends BaseViewModel<BaseModel, BaseEntity>>
view层 配置用类 配置全局默认状态页
ViewStateBusyWidget
加载中
ViewStateButton
公用Button
ViewStateEmptyWidget
页面无数据
ViewStateNotifier
状态通知 跨页面通知数据需要变动
ViewStateUnAuthWidget
页面未授权
ViewStateWidget
基础Widget

Mixins

BaseRepo
基类的API 声明API
BaseView<VM extends BaseViewModel<BaseModel, BaseEntity>>
基类 view 扩展StatelessWidget
BaseViewOfState<T extends StatefulWidget, VM extends BaseViewModel<BaseModel, BaseEntity>>
基类 state 扩展StatefulWidgetState

Functions

addModel({required List<BaseModel> list}) → void
添加Model
availableCNP<T extends BaseViewModel<BaseModel, BaseEntity>>(BuildContext context, ViewConfig<T> changeNotifier, {required Widget? child}) ChangeNotifierProvider<ChangeNotifier?>
获取可用的监听 ChangeNotifierProvider.value 或者 ChangeNotifierProvider
changerStateCheck(int state) ViewStateNotifier
验证是否需要变化
changerStateGet(int state) → _ViewStateNotifier
获取状态配置
changerStateUpdate(int state, {bool notifier = true}) → void
更新页面状态
getModelGlobal<M extends BaseModel>() → M
全局Model
getVM<T extends ChangeNotifier>(BuildContext ctx, {bool listen = false}) → T
得到通知者
initMVVM<VM extends BaseViewModel<BaseModel, BaseEntity>>(List<BaseModel> models, {int initPage = 1, DataFromNetworkOrDatabase? dataOfHttpOrData, VSBuilder<VM>? busy, VSBuilder<VM>? empty, VSBuilder<VM>? error, VSBuilder<VM>? unAuthorized, VSBuilder<VM>? listDataEmpty, ResetRefreshState? resetRefreshState, FinishRefresh? finishRefresh, ResetLoadState? resetLoadState, FinishLoad? finishLoad, ControllerBuild? controllerBuild, num? height, num? width}) → void
初始化 配置初始页面全局状态页
initPageSize(double? width, double? height) → void
初始化页面大小 注意适配宽高 还有标题栏高度
statusOrViewDisplay({required Widget? state(), required Widget view()}) Widget
状态或视图显示
vmEmptyView<T extends BaseViewModel<BaseModel, BaseEntity>>({required dynamic builder(T vm), bool isEmpty(T vm)?, Widget? nullChild}) Widget

Enums

MaxIndex
ViewModelState
ViewModel的状态 控制页面基础显示
ViewSizeType
空Widget大小类型

Typedefs

ControllerBuild = dynamic Function()
上拉加载 下拉刷新的控制器
DataFromNetworkOrDatabase = bool Function(BaseViewModel<BaseModel, BaseEntity> vm)
数据来源 网络或者数据库 true : 网络 --- false :数据库 场景 网络无连接 页面数据缓存在数据库 切换数据来源,改从数据库取数据
FinishLoad = void Function(dynamic controller, {required bool noMore, required bool success})
上拉加载 下拉刷新 完成加载方法
FinishRefresh = void Function(dynamic controller, {required bool noMore, required bool success})
上拉加载 下拉刷新 完成刷新方法
ResetLoadState = void Function(dynamic controller)
上拉加载 下拉刷新 重置加载状态方法
ResetRefreshState = void Function(dynamic controller)
上拉加载 下拉刷新 重置刷新状态方法
VMBuilder<T extends BaseViewModel<BaseModel, BaseEntity>> = Widget Function(BuildContext context, T viewModel, Widget? child, Widget? state)
page build 的替换方法
VSBuilder<T extends BaseViewModel<BaseModel, BaseEntity>> = Widget Function(T vm)
page 状态页

Exceptions / Errors

UnAuthorizedException
用于未登录等权限不够,需要跳转授权页面