Rumah >hujung hadapan web >tutorial js >Cara Mengganti Redux Dengan Cangkuk React dan API Konteks React
Kelebihan utama:
Prasyarat:
kebiasaan dengan React, React cangkuk, dan pemahaman asas konsep Redux (pengurangan dan tindakan) diandaikan. Contoh -contoh menggunakan UI semantik bertindak balas untuk gaya, tetapi ini adalah pilihan. Kod projek lengkap boleh didapati di GitHub [pautan ke repo github].
Strategi Pengurusan Negeri:
kami akan menangani dua jenis negara asas:
keadaan tempatan: khusus untuk komponen individu, diuruskan menggunakan untuk nilai mudah (nombor, rentetan) atau useState
untuk struktur yang lebih kompleks. useReducer
menyediakan fungsi useState
mudah, manakala setValue()
memerlukan fungsi menentukan untuk mengubah suai nilai keadaan tertentu dalam objek yang lebih besar. useReducer
Global State: Dikongsi dalam pelbagai komponen, dilaksanakan menggunakan API Konteks. Ini melibatkan mewujudkan objek konteks () dan komponen penyedia untuk membungkus komponen pengguna. Komponen kanak -kanak mengakses konteks menggunakan cangkuk createContext
. useContext
Contoh 1: Kaunter mudah dengan useState
context/counter-context.js
: CounterContext
memaparkan nilai kaunter menggunakan CounterContextProvider
.
components/counter-display.js
: mengandungi butang untuk kenaikan/penurunan, menggunakan useContext
untuk mengemas kini keadaan.
components/counter-buttons.js
: Bungkus komponen paparan dan butang dengan useContext
.
App.js
Contoh 2: Pengurusan Hubungi dengan CounterView
untuk pengurusan yang cekap.
useReducer
useReducer
:
untuk mengendalikan tindakan yang berbeza (tambah, padam).
context/contact-context.js
ContactContext
initialState
reducer
:
views/contact-view.js
ContactContextProvider
:
components/contact-table.js
useContext
:
3
components/contact-form.js
useContext
useFormInput
redux vs cangkuk & konteks:
App.js
Soalan Lazim (Soalan Lazim): ContactView
Atas ialah kandungan terperinci Cara Mengganti Redux Dengan Cangkuk React dan API Konteks React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!