Saya akan memberikan argumen yang mendukung Tindakan "bodoh".
Dengan menempatkan tanggung jawab untuk mengumpulkan data tampilan di Tindakan Anda, Anda menghubungkan Tindakan Anda dengan persyaratan data tampilan Anda.
Sebaliknya, Actions generik, yang secara deklaratif mendeskripsikan maksud pengguna, atau beberapa transisi status dalam aplikasi Anda, memungkinkan Store apa pun yang merespons Action tersebut untuk mengubah maksud, menjadi status yang disesuaikan secara khusus untuk tampilan yang dilanggani.
Ini cocok untuk lebih banyak, tetapi lebih kecil, Toko yang lebih khusus. Saya memperdebatkan gaya ini karena
- ini memberi Anda lebih banyak fleksibilitas dalam cara tampilan menggunakan data Store
- Toko "pintar", yang dikhususkan untuk tampilan yang mengonsumsinya, akan lebih kecil dan kurang digabungkan untuk aplikasi yang kompleks, daripada Tindakan "cerdas", yang berpotensi menjadi tempat bergantung banyak tampilan
Tujuan Store adalah untuk menyediakan data ke tampilan. Nama "Tindakan" menunjukkan kepada saya bahwa tujuannya adalah untuk menjelaskan perubahan dalam Aplikasi saya.
Misalkan Anda harus menambahkan widget ke tampilan Dasbor yang ada, yang menunjukkan beberapa data agregat baru yang mewah yang baru saja diluncurkan oleh tim backend Anda.
Dengan Tindakan "cerdas", Anda mungkin perlu mengubah Tindakan "segarkan dasbor" Anda, untuk menggunakan API baru. Namun, "Menyegarkan dasbor" dalam arti abstrak tidak berubah. Persyaratan data dari pandangan Anda adalah apa yang telah berubah.
Dengan Tindakan "dumb", Anda dapat menambahkan Store baru untuk digunakan widget baru, dan mengaturnya sehingga ketika menerima jenis Tindakan "refresh-dashboard", ia mengirim permintaan untuk data baru, dan memaparkannya ke widget baru setelah siap. Masuk akal bagi saya bahwa saat lapisan tampilan membutuhkan lebih banyak atau berbagai data, hal-hal yang saya ubah adalah sumber datanya: Toko.