Flutter - ChangeNotifier with ListenableBuilder

Routine·2023년 7월 24일
0

Flutter

목록 보기
3/7

ChangeNotifier

상태관리에 주로 사용되며, ValueNotifier 의 상위 호환 class 라고 이해하면 된다.
ChangeNotifier 는 notifyListeners() 메서드를 호출하여 상태가 변경되었음을 알린다.
또한 하나의 상태를 관리하는것이 아닌, 여러 상태를 관리할 수 있다.

ListenableBuilder

Listenable 가 리스너로 등록되어, 값이 변경 될때마다 업데이트 된 값으로 builder 를 호출하는 위젯이다.
ValueListenableBuilder 와 비슷하지만 리스너로 사용하는 인터페이스가 다르다.

작고, 복잡하지 않은 상태관리를 할 경우 ValueNotifier 와 ValueListenableBuilder 를 이용했다면,
그 반대로 크고 복잡할 경우 ChangeNotifier 와 ListenableBuilder 를 이용하여 상태 관리를 할 수 있다.


위의 예제와 같이 간단하게 구현한 코드이다.
아래는 간략하게 ChangeNotifier 를 사용하는 방법이다.

// ChangeNotifier 구현
class ChangeNotifierTest with ChangeNotifier {
  double _testValue = 0;
  double get testValue => _testValue;

  randomChange() {
    _testValue = (Random().nextDouble());
    
    // 변경되었음을 알림.
    notifyListeners();
  }
}

Widget build(BuildContext context) {
	final ChangeNotifierTest test = ChangeNotifierTest();
	return 
    	...
    	ListenableBuilder(
        	listenable: test,
            builder: (BuildContext context, Widget? child) {
            	// 알림을 수신하면 re-build.
                return Text('Current TestValue : ${test.testValue}');
			},
		),
        ...
}
 

0개의 댓글