Untuk menyambungkan komponen React ke kedai Redux menggunakan fungsi connect()
dari perpustakaan react-redux
, anda mengikuti langkah-langkah ini:
Import connect
: Pertama, anda perlu mengimport fungsi connect
dari react-redux
:
<code class="javascript">import { connect } from 'react-redux';</code>
Tentukan mapStateToProps
dan mapDispatchToProps
: Fungsi -fungsi ini adalah pilihan tetapi biasa digunakan. mapStateToProps
mengambil keadaan kedai dan mengembalikan objek prop untuk komponen anda. mapDispatchToProps
mengambil fungsi dispatch
dan mengembalikan objek pencipta tindakan yang terikat untuk dispatch
.
<code class="javascript">const mapStateToProps = (state) => { return { // Example props todos: state.todos, }; }; const mapDispatchToProps = (dispatch) => { return { // Example action addTodo: (text) => dispatch(addTodo(text)), }; };</code>
Gunakan connect
untuk membungkus komponen anda : Anda menggunakan connect
untuk membungkus komponen anda, melewati mapStateToProps
dan mapDispatchToProps
sebagai argumennya. Ini mewujudkan komponen baru yang disambungkan ke kedai Redux.
<code class="javascript">const ConnectedComponent = connect( mapStateToProps, mapDispatchToProps )(YourComponent);</code>
Eksport komponen yang disambungkan : Akhirnya, anda boleh mengeksport komponen yang disambungkan baru ini untuk digunakan di bahagian lain aplikasi anda.
<code class="javascript">export default ConnectedComponent;</code>
Dengan mengikuti langkah -langkah ini, komponen React anda akan dapat menerima data dari kedai Redux dan menghantar tindakan ke kedai, membolehkan aliran data unidirectional yang tipikal dalam aplikasi Redux.
Menggunakan connect()
untuk menghubungkan komponen React dengan kedai Redux memberikan beberapa faedah utama:
connect()
, anda boleh menentukan secara mendekati data apa yang diperlukan komponen anda dari kedai, memudahkan proses menguruskan keadaan di seluruh aplikasi anda.connect()
Latihan shouldComponentUpdate
di bawah tudung, yang dapat membantu mengoptimumkan prestasi permohonan anda dengan menghalang pengendali semula yang tidak perlu apabila keadaan berubah tetapi alat peraga yang relevan tidak.connect()
memudahkan bagaimana keadaan dilalui melalui komponen, mengurangkan penggerudian prop dan menjadikannya lebih mudah untuk menguruskan interaksi keadaan kompleks.connect()
lebih mudah untuk diuji kerana anda boleh mengejek kedai Redux dan menguji komponen secara berasingan, dengan keadaan dan tindakan yang telah ditetapkan. mapStateToProps
dan mapDispatchToProps
adalah fungsi penting dalam fungsi connect()
yang melayani tujuan tertentu:
MapStateToProps : Fungsi ini mengambil keseluruhan keadaan kedai Redux sebagai hujah pertama dan mengembalikan objek. Kekunci dalam objek ini menjadi alat yang diserahkan kepada komponen anda. Pada asasnya, ia memetakan bahagian -bahagian keadaan Redux kepada alat komponen anda, yang membolehkan komponen anda melanggan perubahan keadaan. Contohnya:
<code class="javascript">const mapStateToProps = (state) => { return { todos: state.todos, }; };</code>
Dalam contoh ini, apabila keadaan di Redux Store berubah, mapStateToProps
berjalan, dan jika keadaan todos
telah berubah, ia akan lulus data todos
baru ini sebagai prop ke komponen yang disambungkan.
Mapdispatchtoprops : Fungsi ini mengambil fungsi dispatch
dari kedai Redux sebagai hujahnya dan mengembalikan objek dengan pencipta tindakan sebagai nilai. Pencipta tindakan ini, apabila dipanggil, menghantar tindakan ke kedai Redux. Kekunci objek menjadi alat untuk komponen anda. Contohnya:
<code class="javascript">const mapDispatchToProps = (dispatch) => { return { addTodo: (text) => dispatch(addTodo(text)), }; };</code>
Di sini, addTodo
menjadi prop pada komponen yang disambungkan, yang boleh dipanggil sebagai this.props.addTodo(text)
dalam komponen, menghantar tindakan addTodo
ke kedai.
Menggunakan connect()
dengan Redux boleh memberi kesan kepada prestasi aplikasi React dalam kedua -dua cara positif dan negatif:
Impak positif :
connect()
shouldComponentUpdate
Secara automatik. Ini bermakna bahawa komponen yang disambungkan hanya diperuntukkan semula apabila bahagian-bahagian yang berkaitan dengan negeri (seperti yang ditentukan oleh mapStateToProps
) sebenarnya telah berubah, berpotensi meningkatkan prestasi dengan mengurangkan pemberi semula yang tidak perlu.connect()
dapat memudahkan aliran data melalui aplikasi anda, mengurangkan keperluan untuk meluluskan prop secara mendalam melalui pokok komponen dan dengan itu mungkin meningkatkan kecekapan komponen komponen.Potensi kesan negatif :
mapStateToProps
dioptimumkan dan tidak secara tidak sengaja mencetuskan semula pelaku boleh menjadi mencabar, berpotensi mempengaruhi prestasi jika tidak dikendalikan dengan betul. Untuk mengurangkan kesan ini, pemaju boleh menggunakan teknik seperti memoisasi dengan reselect
untuk mapStateToProps
, atau mempertimbangkan menggunakan React.memo
untuk komponen yang disambungkan untuk mengawal semula semula berdasarkan perubahan prop. Di samping itu, reka bentuk yang teliti struktur negeri dan penggunaan kedai dapat membantu menguruskan prestasi dengan berkesan dalam aplikasi yang lebih besar.
Atas ialah kandungan terperinci Bagaimana anda menyambungkan komponen React ke kedai Redux menggunakan Connect ()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!