본문 바로가기
개발/Flutter

[상태관리#3]Provider

by devshw 2023. 11. 22.

개인적으로 공부하면서 공식문서에 대해 증오심이 생길정도였다.......

나만 그런걸수도 있겠지만 문서가 너무 그지같았다.ㅡㅡ

 

provider로 구현한 counter 코드는 아래와 같다.

import 'package:flutter/material.dart';

class CountProvider with ChangeNotifier {
  int _count = 0;
  int get count => _count;

  void increase() {
    _count++;
    notifyListeners();
  }

  void decrease() {
    _count--;
    notifyListeners();
  }
}
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:shw_test/components/button.dart';
import 'package:shw_test/provider/controller.dart';

class ProviderScreen extends StatelessWidget {
  const ProviderScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Counter"),
      ),
      body: Center(
        child: Column(
          children: [
            Text(
              context.watch<CountProvider>().count.toString(),
              style: const TextStyle(fontSize: 50),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Button(
                  text: "+",
                  fontSize: 30,
                  onPressed: () {
                    context.read<CountProvider>().increase();
                  },
                ),
                const SizedBox(
                  width: 20,
                ),
                Button(
                  text: "-",
                  fontSize: 30,
                  onPressed: () {
                    context.read<CountProvider>().decrease();
                  },
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

 

 

공부하고 사용하고 느낀점은 getx보다는 러닝커브가 있지만 bloc보다는 심플하다가 느낀점이었다.

 

'개발 > Flutter' 카테고리의 다른 글

[상태관리#5] mobX  (0) 2023.11.22
[상태관리#4]RiverPod  (1) 2023.11.22
[상태관리#2]Bloc  (2) 2023.11.22
[상태관리#1] GetX  (1) 2023.11.22
[상태관리#0] 상태관리 공부에 앞서..  (0) 2023.11.21