Freezed 를 사용하는 이유
Freezed 는 immutable 객체 방법에서 썼던 코드의 길이를 획기적으로 줄여 에러 발생을 최대한 억제 하고 가독성을 높이기 위해 사용을 하는것이다.
Freezed 특징
immutable : 불변의 , 변경할 수 없는 이라는 뜻의 하나의 객체이다
import 'package:freezed_annotation/freezed_annotation.dart';
part 'post_data.freezed.dart';
part 'post_data.g.dart'; // 추가
(explicitToJson: true) // 추가
class PostData with _$PostData {
const factory PostData({
required String title,
required String content,
required String author,
String? postId,
}) = _PostData;
factory PostData.fromJson(Map<String, dynamic> json) => _$PostDataFromJson(json);
Map<String, dynamic> toJson() => _$PostDataToJson(this);
}
이렇게 freezed 데이터 관리를 한다.
Freezed는 실제로 toJson 메서드를 자동으로 생성해주기 위해 json_serializable과 함께 작동합니다. 이를 사용하면 별도로 toMap을 구현하지 않고도 객체를 JSON으로 변환할 수 있습니다.
Freezed 의 역할 Json 과 직렬화 이다