Haruskah Anda menggunakan this.setState () saat menggunakan redux?

111

Haruskah Anda menggunakan this.setState() saat menggunakan redux? Atau haruskah Anda selalu mengirimkan tindakan dan mengandalkan alat peraga?

Martol1ni
sumber
1
Tidak ada salahnya memiliki beberapa komponen dengan status.
zerkms
3
Itu sepenuhnya tergantung di mana negara digunakan. Pikirkan toko redux sebagai yang global. Apa pun yang tidak perlu bersifat global dapat tetap bersifat pribadi untuk suatu komponen dan turunannya.
azium

Jawaban:

139

Penggunaan yang jelas dari setStateakan untuk komponen UI yang memiliki status tampilan lokal, tetapi tidak relevan untuk aplikasi global. Misalnya boolean yang menyatakan apakah menu tarik-turun tertentu secara aktif ditampilkan tidak perlu dalam status global, jadi lebih mudah dikontrol oleh status komponen menu.

Contoh lain mungkin termasuk status tutup / luaskan garis dalam tampilan akordeon dari hierarki. Atau mungkin tab yang saat ini dipilih di navigasi tab. Namun dalam kedua contoh ini, Anda mungkin masih memilih untuk menangani status UI secara global. Misalnya, hal ini diperlukan jika Anda ingin mempertahankan status luaskan / ciutkan dalam penyimpanan browser sehingga akan dipertahankan dengan penyegaran halaman.

Dalam praktiknya, biasanya paling mudah untuk mengimplementasikan elemen UI tersebut dengan status lokal, dan memfaktorkan ulang elemen tersebut menjadi status global sesuai kebutuhan.

mjhm
sumber
23
Untuk menindaklanjuti ini, entri FAQ Redux yang relevan menekankan bahwa penggunaan setStatetidak masalah sama sekali : redux.js.org/docs/faq/…
markerikson
2
Jika Anda akan melakukan handoff atau menggunakan rendering sisi server, saya pikir Anda harus selalu menggunakan Redux
neaumusic
Tautan FAQ Redux telah diperbarui ke redux.js.org/faq/organizing-state
AnandShanbhag