Home Uncategorized Apa perbedaan antara Equatable vs Freezed di Flutter?

Apa perbedaan antara Equatable vs Freezed di Flutter?

0

Equatable dan Freezed keduanya merupakan perpustakaan di Dart yang membantu menerapkan kesetaraan nilai di kelas. Namun, keduanya memiliki implementasi dan kasus penggunaan yang berbeda.

Equatable adalah perpustakaan yang membantu mengimplementasikan kesetaraan nilai di kelas Dart dengan mengganti operator == dan metode kode hash . Ini menyederhanakan proses membandingkan objek berdasarkan propertinya.

Penggunaan: Untuk menggunakan Equatable , Anda perlu memperluas kelas Equatable dan mengganti metode props, yang mengembalikan daftar properti yang akan digunakan sebagai perbandingan. Operator == dan metode kode hash dibuat secara otomatis berdasarkan properti yang ditentukan dalam props.

Contoh :

import ‘paket:equatable/equatable.dart’ ;

kelas Person extends Equatable { nama String
akhir ; usia int terakhir ; Orang( ini .nama, ini .umur); @override Daftar < Objek? > dapatkan alat peraga => [nama, umur]; }

Freezed adalah pustaka pembuatan kode yang menyediakan cara ringkas untuk membuat kelas nilai yang tidak dapat diubah dengan kesetaraan nilai, pencocokan pola, dan metode penyalinan. Ini menghasilkan kode boilerplate untuk Anda berdasarkan definisi kelas.

Penggunaan: Untuk menggunakan Freezed , Anda perlu memberi anotasi pada kelas Anda dengan @freezed dan menentukan konstruktor dan propertinya. Dibekukan kemudian menghasilkan kode untuk kesetaraan nilai, pencocokan pola, dan metode penyalinan secara otomatis.

Contoh :

impor ‘paket:freezed_annotation/freezed_annotation.dart’ ;

bagian ‘orang.freezed.dart’ ;

@freezed
class Orang dengan _ $ Orang {
const pabrik Orang ({ diperlukan nama String , diperlukan int usia}) = _Person;
}

Perbedaan:

· Implementasi: Equatable adalah perpustakaan yang mengesampingkan operator == dan metode kode hash secara manual dengan menentukan properti yang akan digunakan untuk perbandingan. Freezed , di sisi lain, adalah pustaka pembuatan kode yang menghasilkan kode boilerplate yang diperlukan untuk kesetaraan nilai berdasarkan anotasi.

· Boilerplate: Equatable mengharuskan Anda mengganti metode secara manual untuk kesetaraan nilai, yang dapat menyebabkan kode boilerplate, terutama di kelas dengan banyak properti. Freezed mengurangi boilerplate dengan menghasilkan kode yang diperlukan secara otomatis berdasarkan anotasi.

· Fitur Tambahan: Freezed menyediakan fitur tambahan seperti pencocokan pola dan metode penyalinan, yang tidak tersedia di Equatable . Fitur-fitur ini dapat berguna untuk bekerja dengan kelas yang tidak dapat diubah dan pencocokan pola di Dart.

Singkatnya, meskipun Equatable dan Freezed membantu menerapkan kesetaraan nilai di kelas Dart, keduanya berbeda dalam implementasi dan fitur tambahan. Equatable adalah solusi sederhana untuk kelas yang memerlukan kesetaraan nilai khusus, sementara Freezed menyediakan fitur yang lebih canggih dan mengurangi kode boilerplate melalui pembuatan kode. Pilihan di antara keduanya bergantung pada kebutuhan spesifik dan kompleksitas proyek Anda.

https://medium.com/@chetan.akarte/what-is-difference-between-equatable-vs-freezed-in-flutter-612401ac80fa