Bloc vs Cubit공부방/Flutter2023. 3. 27. 17:13
Table of Contents
해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요.
Bloc 과 Cubit 둘중 어떤걸 사용하는게 좋을까요?
블록 공식 문서에 따르면
https://bloclibrary.dev/#/coreconcepts?id=cubit-vs-bloc
"무엇을 사용해야 할지 아직 확신이 서지 않는 경우 시작하여 Cubit나중에 필요에 따라 리팩터링하거나 확장할 수 있습니다 Bloc"
라고 설명이 되어 있어요.
요약하면 그냥 필요에 맞게 사용해라 정도가 될듯 해요.
그렇다면 Bloc 과 Cubit은 어떤 차이가 있을까요?
아래 그림을 보면 좀더 쉽게 이해가 될듯 해요.
그림 1 에서 보듯이 Cubit은 Bloc에 포함되어 있어요.
그럼 좀더 자세하게 Cubit에는 없고 Bloc에는 있는 기능에는 무엇이 있을까요?
1. onTransition 함수
@override
void onTransition(Transition<Event, State> transition) {
super.onTransition(transition);
}
기존 Cubit 과 Bloc 모두
onChange 라는 함수를 이용하여
현재 State값을 확인 할수 있지만, 정확하게 어떤 이벤트를 통해 값이 바뀌었는지는 알수 없어요.
하지만 Bloc 에는 onTransition 함수가 있어서
정확하게 어떤 이벤트를 통해 State값이 변경이 되었는지 알 수 있어요.
2. transformer (고급 이벤트 변환) 함수
on 함수에 각종 처리가 필요할때 사용하는 함수에요
예를 들어 아래와 같이 사용이 가능해요.
EventTransformer<T> debounceTime<T>(Duration duration) {
return (events, mapper) => events.debounceTime(duration).flatMap(mapper);
}
on<MainTabSelect>(_mainTabSelect, transformer: debounceTime(const Duration(microseconds: 1000)));
이외 추가 사항은 공식 문서에서 확인이 가능해요.
반응형
'공부방 > Flutter' 카테고리의 다른 글
Flutter 원으로 피라미드 그리기 (flutter Draw a Pyramid with Circles) (0) | 2023.06.23 |
---|---|
dart extends, implements, with, mixin, abstract 키워드 정리 (0) | 2023.03.28 |
Flutter Bloc 필수적으로 사용하는 위젯 (0) | 2023.03.23 |
플러터 상태관리 bloc (0) | 2023.03.23 |
Deploy Flutter Firebase App Distribution using Codemagic (Codemagic 을 이용한 Flutter Firebase App Distribution 배포) (0) | 2023.03.10 |
@soycrab :: 꿀맛코딩
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!