월루를 꿈꾸는 대학생

[Flutter]Provider 본문

Programing/플러터

[Flutter]Provider

하즈시 2022. 12. 12. 01:02
728x90

setState 

- build 메서드를 호출해서 새로 랜더링함 

- 하단 전체 위젯을 다 리빌드하기에 비효율적!! 

- 동시에 다른 위젯의 state를 업데이트 시키지 못함 

 

Provider 

- create 파라미터에서 모델을 받고 이를 하위 child 밑에 위젯들이 참조해서 사용이가능 

- 하나의 데이터를 하위 위젯에서 바로 바로 사용이 가능하기 때문에 편리 

- 쉽게 위젯이 데이터에 접근이 가능 

 

with ChangeNotifier

- mixin - within -> 상속과 별개로 사용 다트에서 다중상속을 허용하지 않기 때문에 결속력은 약하지만 여러개 붙여서 사용할 수 있도록 사용 

- 모델이 변화하면 ChangeNotifier의 notifyListeneres를 통해서 ChangeNotifiter를 Listen하는 모든 위젯에게 변경사항을 알려줄 수 있다 

-수동으로 addListener에 콜백 등록해서 사용 가능 다만 자동 dispose되지 않기 때문에 removeListener 사용이 필요 

- UI 자동 빌드 불가 

 

ChangeNotifyerProvider

- addListner , removeListener같이 수동으로 생성 삭제 필요없이 ChangeNotifier 생성해서 위젯이 listen하고 자동삭제도 가능 

- UI리빌드 가능 

- Provider.of 으로 위젯이 쉽게 ChangeNotifier 인스턴스 접근도 가능하게 만들어줌 

 

MultiProvider

- 다중으로 privder 접근할 때 사용 

 

728x90