Reactor

Action → Reactor, Reactor에서 방출된 State → View단방향 흐름⭐️

View는 Reactor로 받는 State를 통해 UI를 보여준다.
View는 사용자 인터렉션을 추상화하고, Reactor로 전달한다.
Reactor는 View로부터 Action Stream을 전달받아, mutate() & reduce() 과정을 거쳐 State Stream으로 다시 View에 방출한다.
View → Reactor (Action 방출)
View Protocol을 준수해야 한다.
import ReactorKit
import RxGesture
import RxSwift
extension ViewController: View {
func bind(reactor: MyReactor) {
self.numButton.rx.tap.asObservable()
.map { _ in Reactor.Action.loadImage(url: URL(string: "<https://picsum.photos/300/200>")!) }
.bind(to: reactor.action)
.disposed(by: self.disposeBag)
reactor.state
.map { $0.currentNumber }
.distinctUntilChanged()
.map { String($0) }
.bind(to: self.numLabel.rx.text)
.disposed(by: self.disposeBag)
reactor.state
.map { $0.image }
.bind(to: self.imageView.rx.image)
.disposed(by: self.disposeBag)
}
}