Flutter

StateManagement(InheritedWidget, Provider)

flutter 개발하자 2021. 4. 15. 14:59

InheritedWidget

InheritedWidget은 flutter에서 Base class for widgets that efficiently propagate information down the tree라고 설명한다. 데이터를 트리 아래로 효율적으로 전파하는 위젯이라고 하는데, 잘 이해가 않간다. 

 

그래서 구글링을 통해 InheritedWidget에대해 조사해봤다.

등장배경 - 기존에 위젯 트리내에서 데이터를 공유하기 위해서는 코드가 지저분해졌다.

이랬던 구조를 InheritedWidget이 등장하면서 코드를 깔금하게 만들어줬다.

1. InheritedWidget을 상속받은 subclass를 생성한다.

2. data를 위한 filed를 추가한다.

3. of메서드를 추가한다.(of는 데이터를 참조하는 메서드라고 생각하자)

4.자식 위젯에서 InheritedWidget에 접근하기 위해서 of를 사용한다.

5. update를 정의한다.

6.위젯이 새로운 데이터를 받을때를 조절한다.

즉, InheritedWidget은 위젯들이 공유할 데이터를 관리해주는 애라고 생각하면 된다.

 

 

 

Provider

Provider 는 상속된 위젯을 보다 쉽게 사용하고, 재사용할 수 있도록 하기 위한 wrapper라고 정의돼 있다.

 

 

우선