Birisi bana Redux'un her ikisi de bir kapsayıcıya sahne ekleyen iki işlevi olan mapStateToProps
ve mapDispatchToProps
'un nedenleri olduğunu açıklayabilir mi?Neden mapStateToProps ve mapDispatchToProps, Redux'da sadece bir işlev değil mi?
Tanımlar:
mapStateToProps sizin bileşen
mapDispatchToProps sizin bileşeni yardımcı olacak bir yardımcı programdır (diğer bazı bileşenleri tarafından güncellenir) devlet güncellenmelerini yardımcı bir araçtır bir eylem olayı ( başvuru durumunun değişmesine neden olabilecek gönderme eylemi) tetikleme
Neden Redux takımı bunu iki eşleme işlevine ayırmayı tercih etti - yani neden her ikisini birden gerçekleştiren bir mapToProps (durum, gönderme, sahne) özelliği yok?
- Sadece endişelerin ayrımı/anlaşılması kolay neden mi?
mapDispatchToProps
'da yeniden bağlama ile ilgili her sorun için yeni işlevler oluşturan performans sorunları nedeniyle mi? Aksiyon yaratımları için ayrı işlevlere sahip olmak, bu fazladan işten kaçınmanıza yardımcı olur mu? Her durum değişikliğindemapStateToProps
'un çağrılması düşünüldüğünde.
Örnek:
const increaseAction = { type: 'increase' }
class Counter extends Component {
render() {
const { value, onIncreaseClick } = this.props
return (
<div>
<span>{value}</span>
<button onClick={onIncreaseClick}>Increase</button>
</div>
)
}
}
function mapDispatchToProps(dispatch) {
return {
onIncreaseClick:() => dispatch(increaseAction)
}
}
bu Redux example on codesandbox
Redux Dan Abramov yazarı (https://www.youtube.com/watch?v=VJ38wSFbM3A&feature=youtu.be&t=2455) mapDispatchToProps' her eylem yaratıcısı için fonksiyonlarını ayırır 'O olmasıdır [buradan] açıklıyor Çok fazla bileşeniniz olduğunda yeniden yapmak çok maliyetli bir işlemdir. Redux'un durumu ve eylem yaratıcısı bağlayıcılarını güncellemeye ihtiyaç duyduğunu tespit eden iki farklı mekanizma var gibi görünüyor - bu nedenle iki farklı işlev var: mapStateToProps ve mapDispatchToProps. Cevap bu mu? –