공부방/Flutter

Flutter Bloc 필수적으로 사용하는 위젯

soycrab 2023. 3. 23. 18:33

해당 포스팅은 인프런 플러터 상태관리 블락 마스터 코드 강의를 들으며 내용을 정리 한거에요.

 

1. BlocProvider

Bloc + Provider , 블럭을 제공하는 위젯

 

특징 :

  • 지연생성 옵션(lazy)
  • 하위 계층 위젯들에서 접근 가능
  • Bloc 생성후 메모리 반환의 경우 자동으로  해준다. 

 

2. MultiBlocProvider

blocProvider 다중 등록 

 

3. BlocBuilder

BlocProvider로 생성된 bloc을 사용할때 쓰는 Widget

  • bloc 옵션을 사용하지 않고 사용시 현 context로 부터 bloc을 찾아 변화 감지를 한다.
  • bloc을 지정하는 케이스의 경우 특별한 케이스에서 사용하라고 권장한다.

  • buildWhen 옵션을 통해 필요한 조건일때만 변화를 줄 수 있다. 

 

4. RepositoryProvider, MultiRepositoryProvider

Repository + Provider, Repository(저장소)를 제공하는 위젯.

  • 지연생성 옵션(lazy)통해 관리 할 수 있다.
  • 저장소 데이터를 가공할 수 있는 데이터베이스 or 외부 api 통신등 관리할때 사용. 

 

5. BlocSelector

Bloc의 상태중 필요한 부분만 선택적으로 필터링하여 변경에 도움을 주는 Widget 

 

6. BlocListener, MultiBlocListener 

상태변화에 따른 이벤트만 처리가 필요할때 사용되는 Widget 

*child 위젯의 경우 rebuild가 발생되지 않는다. 

사용되는 예)

  • 특정 상태가 변경되었을때 메세지 팝업을 띄워야 하는 상황 
  • Bloc간 통신이 필요할때 

 

7. BlocConsumer

BlocBuilder와 BlocListener를 합쳐 놓은 위젯

  •  이벤트도 처리하면서 동시에 화면도 변경을 해줘야 할때 사용
  • buildwhen과 listenWhen 조건을 통해 적절한 때에만 변경 및 이벤트 처리를 할 수 있다. 

 

출처 : https://www.inflearn.com/course/lecture?courseSlug=%ED%94%8C%EB%9F%AC%ED%84%B0-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%B8%94%EB%9D%BD-%EB%A7%88%EC%8A%A4%ED%84%B0%EC%BD%94%EC%8A%A4&unitId=146719&category=chatDetail

반응형