ReSwiftMiddleware
我已经使用了ReSwift框架,所以当我需要实现中间件时,我感觉使用起来有些混乱,因此我制作了这个工具来帮助其他人创建中间件。
关于
这个库中有两个重要的结构体MiddlewaresCollection
和MiddlewareExecutor
。
MiddlewaresCollection
是一个对象,您需要在其中添加自己的MiddlewareExecutor
。而MiddlewareExecutor
是一个协议,您可以用它来实现执行中间件实现。
实现方法
首先我们需要创建我们的中间件。
所有这些代码都位于项目的单元测试中。
import Foundation
import ReSwift
struct MiddlewareLogger : MiddlewareExecutor {
let logger: LogConsole
init(logger: LogConsole) {
self.logger = logger;
}
func execute(
action: Action,
getState: @escaping () -> StateType?,
dispatch: @escaping DispatchFunction) -> Action? {
if let counterAction = action as? CounterActions {
self.logger.register(value: counterAction.toString())
}
return action
}
}
如果您需要在执行流中中断,请在execute
方法中返回nil
。
MiddlewaresCollection
实现的示例。
let middlewaresCollection = MiddlewaresCollection<CounterState>()
let middlewareLogger = MiddlewareLogger(logger: logger)
middlewaresCollection.add(middlewareLogger);
现在是一个如何将此集合连接到[ReSwfit]的示例
let store = Store<CounterState>(
reducer: reducerCounterState,
state: CounterState(),
middleware: middlewaresCollection.middlewares)
安装
CocoaPods
您可以通过将ReSwift添加到Podfile
来使用CocoaPods安装它。
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'ReSwiftMiddleware'
然后运行pod install
。