[Flutter] (MVVM 활용) 게시글 생성 화면의 뷰 모델(PosCreateViewModel) 만들어 보자

2024. 11. 22. 16:53·Flutter/MVVM 활용
게시글 생성 화면
lib/view/post/post_create_page
import 'package:flutter/material.dart';


class PostCreatePage extends StatefulWidget {
  const PostCreatePage({super.key});

  @override
  State<PostCreatePage> createState() => _PostCreatePageState();
}

class _PostCreatePageState extends State<PostCreatePage> {
  @override
  Widget build(BuildContext context) {
    return const Placeholder();
  }
}

 

ConsumerStatefulWidget 활용
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';


class PostCreatePage extends ConsumerStatefulWidget {
  const PostCreatePage({super.key});

  @override
  ConsumerState<PostCreatePage> createState() => _PostCreatePageState();
}

class _PostCreatePageState extends ConsumerState<PostCreatePage> {
  @override
  Widget build(BuildContext context) {
    return const Placeholder();
  }
}

 

1. ConsumerWidget vs ConsumerStatefulWidget

  • ConsumerWidget은 기본적으로 불변 상태의 위젯에서 사용되며, 해당 위젯이 리버팟 Provider로부터 상태를 구독하여 반응형 업데이트를 할 때 사용됩니다.
  • ConsumerStatefulWidget은 상태가 변하는 동적 화면을 다룰 때 사용됩니다. 즉, 사용자가 폼을 작성하는 동안 입력값이 계속 변하는 상태(예: 텍스트 필드의 입력 값, 폼의 유효성 검사 등)를 처리할 수 있어야 하기 때문에 상태가 변하는 위젯을 다룰 수 있는 StatefulWidget의 기능이 필요합니다.

2. 폼 관련 작업에서의 상태 관리

게시글 생성 페이지는 다음과 같은 상황에서 상태 관리가 필요할 수 있습니다:

  • 사용자가 제목이나 본문을 입력하면서 폼의 값이 계속해서 변함.
  • 입력 중 오류가 발생하거나 입력이 유효하지 않은 경우 에러 메시지를 사용자에게 보여줄 필요가 있음.
  • 사용자가 입력을 마치고 게시글을 제출했을 때, 로딩 상태나 성공/실패 상태를 보여줄 필요가 있음.

이러한 상황에서는 상태의 지속적인 변화가 필요하므로, StatefulWidget을 사용하고 여기에 Riverpod의 상태 관리 기능을 추가하기 위해 ConsumerStatefulWidget을 사용하는 것이 적합합니다.

 

+ 버튼 클릭하면 create 화면으로 이동

'Flutter > MVVM 활용' 카테고리의 다른 글

[Flutter] (MVVM 활용) PostDetailView 화면 완성 하기 - 11  (0) 2024.11.22
[Flutter] (MVVM 활용) PostDetailViewModel을 Provider 통해서 관리 해보자. - 10  (0) 2024.11.22
[Flutter] (MVVM 활용) PostDetailViewModel 만들기(상세보기 화면 데이터 관리) - 9  (0) 2024.11.19
[Flutter] (MVVM 활용) PostListPage 화면을 만들어 보자 그런데 뷰 모델은 어떻게 가지고 올까? - 8  (0) 2024.11.19
[Flutter] (MVMM 활용) viewModel 을 관리하는 Provider 계열을 만들어 보자 - 7  (0) 2024.11.19
'Flutter/MVVM 활용' 카테고리의 다른 글
  • [Flutter] (MVVM 활용) PostDetailView 화면 완성 하기 - 11
  • [Flutter] (MVVM 활용) PostDetailViewModel을 Provider 통해서 관리 해보자. - 10
  • [Flutter] (MVVM 활용) PostDetailViewModel 만들기(상세보기 화면 데이터 관리) - 9
  • [Flutter] (MVVM 활용) PostListPage 화면을 만들어 보자 그런데 뷰 모델은 어떻게 가지고 올까? - 8
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[Flutter] (MVVM 활용) 게시글 생성 화면의 뷰 모델(PosCreateViewModel) 만들어 보자
상단으로

티스토리툴바