provider_base_tools

Creator: coderz1093

Last updated:

0 purchases

provider_base_tools Image
provider_base_tools Images
Add to Cart

Description:

provider base tools

provider_base_tools #
provider_base_tools 是一个基于provider的封装,主要是为了简化provider的使用,提高开发效率。


安装 (推荐 git 方式集成, 方便更新. 配合provider_temp_gen模板生成器使用提升开发效率) #
provider_tem_gen 使用文档
dependencies:
provider_base_tools: ^0.1.6

copied to clipboard


使用 #
2.1. 创建一个model类,继承BaseArgmentModel (用户页面直接传递参数)
class TestBaseArgemnt extends BaseArgementModel {
TestBaseArgemnt.getInstance(super.initial) : super.getInstance();
}
copied to clipboard
2.2. runApp方法中使用
void main() {
runApp(
ChangeNotifierProvider<TestBaseArgemnt>.value(
value: TestBaseArgemnt.getInstance(
BaseNoneState(),
),
builder: (context, child) => const MyApp(),
),
);
}
copied to clipboard
2.3. 页面中使用
2.3.1. 创建一个state类 用于存储数据,与view,model进行交互
class DemoState {
DemoState();
}
copied to clipboard
2.3.2. 创建一个model类, 继承BaseModel
class DemoModel extends BaseModel<DemoState> {
DemoModel.getInstance(super.initial) : super.getInstance();

@override
bool get dataIsEmpty => false; // 页面显示状态根据此值判断

@override
List<VoidAsyncFunction> initFutures() { // 所有的初始化异步方法 (例如:第一次进来的网络请求)
return [];
}
}
copied to clipboard
2.3.3. 创建一个view类,继承InitBaseStatelessWidget<T,S> 绑定model与state类
class DemoPage extends InitBaseStatelessWidget<DemoModel, DemoState> {
const DemoPage({super.key});

@override
void finish() {}

@override
DemoModel getModel() {
return DemoModel.getInstance(DemoState());
}

@override
Widget successedBuilder(BuildContext context) {
return const Center(
child: Text('successedBuilder'),
);
}
}
copied to clipboard


说明 #



类名
说明




BaseArgementModel
用于页面传递参数


BaseModel
用于存储数据,与view,model进行交互


BaseNoneModel
提供页面不需要model交互的公共类


BaseNoneState
提供页面不需要state交互的公共类


InitBaseStatelessWidget
用于创建页面


BaseWidget
用于定义默认布局


GetLefeCycleMixin
自定义生命周期 (暂未完善)


ProviderSingleTickerProviderStateMixin
自定义单个TickerProvider (方便model使用TickerProviderStateMixin,初始化ticker对象)


ProviderTickerProviderStateMixin
自定义多个个TickerProvider (方便model使用TickerProviderStateMixin,初始化ticker对象)


CustomFloatingActionButtonLocation
自定义FloatingActionButtonLocation位置


KeepAliveWarpperWidget
状态保活页面


WillPopScopeWidget
对于WillPopScope的封装


ContextList
Context的栈堆管理 (一般适用于框架,开发中用不到这个类,可无视)


OneContext
用于获取context



OneContext #



方法名
说明




context
返回当前页面的全局context


childContext
返回当前Provider的context



BaseModel #



方法名
说明




dataIsEmpty
页面显示状态根据此值判断


exception
捕获的异常信息


state
返回State对象


viewState
页面显示状态


setState()
通知页面刷新


initFutures
所有的初始化异步方法 (例如:第一次进来的网络请求)


refresh()
刷新页面


setLoading()
设置页面状态为加载中


setSuccess()
设置页面状态为加载成功


setError()
设置页面状态为加载失败


setEmpty()
设置页面状态为加载空



InitBaseStatelessWidget #



方法名
说明




getModel()
返回Model对象 (调用此方法会重新走model构造方法)


childContext
返回当前Provider的context


context
返回当前页面的全局context


model
返回Model对象


state
返回State对象


onReady()
进入build之前的回调 (已移除)


finish()
页面销毁


successedBuilder()
页面加载成功的布局


loadingBuilder()
页面加载中的布局


errorBuilder()
页面加载失败的布局


emptyBuilder()
页面加载空的布局


getScaffold()
返回一个Scaffold对象 (自定Scaffold,可根据参数注释自定义)


showScaffold
是否需要Scaffold (默认true)



BaseWidget #



方法名
说明




loadingWidget
默认加载中的布局 (可自定义)


errorWidget
默认加载失败的布局 (可自定义)


emptyWidget
默认加载空的布局 (可自定义)

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.