SwiftState状态机制
SwiftState 是用 Swift 编写的优雅的状态机制。
举例:
enum MyState: StateType { case state0, state1, state2 }
// setup state machine let machine = StateMachine<MyState, NoEvent>(state: .state0) { machine in machine.addRoute(.state0 => .state1) machine.addRoute(.any => .state2) { context in print("Any => 2, msg=\(context.userInfo)") } machine.addRoute(.state2 => .any) { context in print("2 => Any, msg=\(context.userInfo)") } // add handler (`context = (event, fromState, toState, userInfo)`) machine.addHandler(.state0 => .state1) { context in print("0 => 1") } // add errorHandler machine.addErrorHandler { event, fromState, toState, userInfo in print("[ERROR] \(fromState) => \(toState)") } } // initial XCTAssertEqual(machine.state, MyState.state0) // tryState 0 => 1 => 2 => 1 => 0 machine <- .state1 XCTAssertEqual(machine.state, MyState.state1) machine <- (.state2, "Hello") XCTAssertEqual(machine.state, MyState.state2) machine <- (.state1, "Bye") XCTAssertEqual(machine.state, MyState.state1) machine <- .state0 // fail: no 1 => 0 XCTAssertEqual(machine.state, MyState.state1)
评论
TeafulReact 状态管理工具
Teaful是一个强大易用且非常轻量的React状态管理工具。主要特性轻量:在React和Preact中实现状态管理只需要不到1kb的包体积易用:不需要actions、reducers、selecto
TeafulReact 状态管理工具
0
Flutter2.*_状态管理
Flutter以widget作为的基础,分为有状态和无状态两类,可以简单以是否存在交互为判断依据,不存在则为无状态组件Statelesswige,否则即有状态组件StatefulWidget,二者皆继承与父类Widget。今天我们来聊一下有状...
雲海垂钓
0