반응형
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-플러터 > 플러터 공부' 카테고리의 다른 글
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 |