BLoC
BLoC으로 Counter 만들기

- UI와 Business Logic을 분리하여 만드는 방식을 의미
- State 관리
- 사용자의 행동에 따라 바뀌게 되는 데이터들을 의미
- 기존의 SetState를 사용하게 되면 한 페이지에서 사용하던 데이터를 다른페이지에서 사용할 때 코드가 꼬여 버릴 가능성이 커지게 된다.
- 장점
- UI코드 쪽에서는 UI만 건들면 되고, BLoC쪽에서 대부분의 Logic을 생각할 수 있다.
- 협업 시 다른사람이 만들어 놓은 BLoC를 새로이 만들필요없이 재사용이 가능하다
- setState()를 사용하는 것보다 코드를 더 단수하게 만들 수 있다.
Events
- Event란 BLoC의 input이다.
- 특정한 input을 알리는 역할을 Event가 하는 것이다
class IncrementBtnPressed extends CouterEvent {
@override
String toString() {
return 'IncrementBtnPressed';
}
}
class DecrementBtnPressed extends CouterEvent {
@override
String toString() {
return 'DecrementBtnPressed';
}
}
States
- BLoC의 연산 결과
- input에 대해 처리한 결과를 의미
- 항상 초기 State 값이 설정되어 있어야 함
Transitions
- State의 변화를 의미
- current state, the event, next state로 이루어져 있다
Stream
- BLoC를 사용할 때 Stream이 어떻게 작동하느지 아는것이 중요하다
- Stream을 물이 흐르는 파이프라고 생각하면, 그곳에 흐르는 데이터들이 비동기 data이다