Package-level declarations
Types
Fetch.pluginImpls 本质是调用GenPluginLifecycleFn函数后保存的PluginLifecycle列表 ,这个函数的入参是Fetch实例与RequestOptions配置。
使用密封类或者密封接口,可以避免外部继承实现,但是不影响使用接口声明。
插件函数 useXXXPlugin
的返回值是真实的插件Plugin对象, 可以通过在useRequestPluginsImpl中调用onInit函数,用来初始化 Fetch.fetchState状态。 插件对象自身实现了协程作用域CoroutineScope,持有Fetch的实例、请求RequestOptions配置等内容。 按需实现IFetch对应Fetch中的各个函数调用,就可以在插件函数useXXXPlugin
中需要使用副作用函数时,间接回调Fetch实例。 具体用例可以参考:useAutoRunPlugin
插件的生命周期对象:这个对象是插件Plugin.invoke方法执行后的返回值, 用来让插件监听请求的生命周期,当执行异步请求时,会在不同的阶段调用插件的生命周期;
插件声明周期回调函数的类型定义
Functions
返回一个空插件,避免直接使用EmptyPlugin实例
性能优化版本,optionsOf 是一个普通的内联函数,他会在每次组件重组时调用,这回带来一些性能上的损耗,我们可以简单呢的通过 remember,进行优化。 在未来版本将会把原始的直接传递对象这类api转变为私有,只允许通过闭包方式使用。
Description: 一个用来管理网络状态的Hook,它可以非常方便的接入到传统的 retrofit 网络请求模式中。 你几乎不需要做任何额外工作,就可以简单高效的在 Compose 中使用网络请求,并将请求数据作为状态,直接驱动UI。