본문 바로가기

Flutter-플러터/플러터 공부

Provider context.read와 context watch 의 차이점

반응형

context.watch<T>(), context.read<T>()

context.watch<T>(), context.read<T>()를 통해 Provider의 데이터를 사용할 수 있다.

이 둘은 비슷하지만 분명한 차이점이 존재한다. 

 

context.watch<T>()는 T의 데이터 값이 변경되었을 때 위젯을 재빌드한다.


반대로, context.read<T>()는 T의 데이터 값이 변경되었을 때 위젯을 재빌드하지 않는다.

 

context.watch<T>()의 경우, T의 데이터 값을 화면에 보여주는 용도로 사용한다. 


context.read<T>()의 경우, T의 데이터 값을 변경하는 등의 이벤트들을 위한 용도로 사용한다. 

 

 

class Example extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Provider Example'),
      ),
      body: Center(
        child: ElevatedButton(
          child: Text(
            '현재 숫자: ${context.watch<Counter>().count}', // watch 사용.
          ),
          onPressed: () {
            context.read<Counter>().increment(); // read 사용.
          },
        ),
      ),
    );
  }
}

 

출처 

https://terry1213.github.io/flutter/flutter-provider/#21-contextwatcht-contextreadt

 

[Flutter] Provider를 통해 상태 관리하기

Flutter를 통해 개발을 진행하다보면 상태(State) 관리가 매우 중요하다는 것을 느낄 수 있다.

terry1213.github.io

 

반응형

'Flutter-플러터 > 플러터 공부' 카테고리의 다른 글

Flutter http 간단 요약  (0) 2023.07.10
RestAPI - http 패키지  (0) 2023.07.04
코딩초보가 이해한 상태관리  (0) 2023.06.27
23.6.26 수업 정리 -Provider  (0) 2023.06.26
Provider - context.read  (0) 2023.06.21