- Agar lebih memahami, kita lihat studi kasus berikut.
- Komponen CommentList mengambil initial data comments dari DataSource.getComments
- Menambahkan subscription
- Menghapus subscription
- Dan mengupdate state comments setiap ada perubahan
- Komponen BlogPost mengambil initial data blogPost dari DataSource.getBlogPost
- Menambahkan subscription
- Menghapus subscription
- Dan mengupdate state blogPost setiap ada perubahan
Higher-Order Components
Kesimpulan
- Kedua komponen memiliki pola logika yang sama, tapi tidak identik
- Kedua komponen ini memanggil metode yang berbeda pada DataSource dan me-render komponen yang berbeda juga
- Pada aplikasi berskala besar, pola logika ini akan digunakan berulang-ulang.
- Pada kasus ini, HOC dapat berperan untuk mendefinisikan logika pada satu tempat dan dapat digunakan oleh banyak komponen.
- Kita dapat membuat sebuah HOC yang melakukan subscribe ke DataSource
- Komponen ini menerima argument komponen child dan data yang di-subscribe
- HOC withSubscription mengambil initial data sesuai dengan argument yang diterima
- Menambahkan subscription
- Menghapus subscription
- Dan mengupdate statenya untuk setiap perubahan yang terjadi
HOC dapat menjadi abstrak dari komponen yang memiliki logika serupa