


Bagaimana untuk mengingati status halaman sebelum bertindak balas melompat
React melaksanakan kaedah mengingat status halaman sebelum melompat: 1. Pantau perubahan laluan, dan kemas kini lastPath dan currentPath ke stor redux apabila laluan berubah 2. Apabila meninggalkan halaman A, simpan status halaman ke Dalam stor redux; 3. Jika lastPath dalam stor redux adalah sama dengan laluan halaman B, ia dianggap bahawa A dikembalikan kepada keadaan yang dipulihkan oleh B, jika tidak, ia tidak akan dipulihkan.
Persekitaran pengendalian tutorial ini: Sistem Windows 10, bertindak balas versi 18.0.0, komputer Dell G3.
Bagaimana untuk mengingati status halaman sebelum tindak balas melompat?
Halaman reaksi dikembalikan untuk mengekalkan keadaan terakhir
Keperluan
Halaman A lompat Pergi ke halaman B dan kemudian kembali ke halaman A. Halaman A perlu memulihkan keadaan sebelum meninggalkan halaman; . Halaman A tidak memulihkan keadaan.
- Reka bentuk
Dengar perubahan laluan dan kemas kini lastPath dan currentPath ke stor redux apabila laluan berubah
Apabila meninggalkan halaman A, simpan status halaman ke stor redux; sama dengan laluan halaman B, adalah dianggap bahawa A dikembalikan kepada keadaan dipulihkan oleh B, jika tidak, ia tidak akan dipulihkan.
- Pelaksanaan
Projek menggunakan pustaka react-router + dva, dan bahagian pelaksanaan akan melibatkan teknologi berkaitan.
Pantau perubahan laluan, pantau perubahan laluan melalui sejarah dan rekod lastPath dan currentPath. Di sini, langganan dva digunakan untuk melanggan sejarah, dan apabila laluan berubah, maklumat laluan disegerakkan kepada keadaan.
Segerakkan status ke kedai redux apabila halaman dipunggah, contohnya:
Apabila halaman dimuat semula, contohnya:
pathToRegexp berasal dari perpustakaan laluan-ke-regexp, digunakan untuk padanan laluan Ia digunakan di sini untuk menentukan sama ada halaman sebelumnya ialah halaman B.const model = { namespace: "global", state: { pathName: { last: "", current: "" }, }, reducers: { setPathName(state: any, { pathName }: any) { state.pathName.last = state.pathName.current; state.pathName.current = pathName; }, effects: { }, subscriptions: { setup({ history, dispatch }: any) { return history.listen(({ pathName }: any) => { dispatch({ type: "global/setPathName", pathName }); }); } } };Penyelesaian lain
componentWillUnmount() { const { dispatch } = this.props; const { activeKey } = this.state; dispatch({ type: "projectInfo/setProjectInfoPage", payload: { activeKey } }); }Nilai sama ada halaman A dikembalikan oleh halaman B: tambah keadaan apabila halaman B kembali, history.push({ nama laluan: laluan, keadaan: {daripada } });, masukkan halaman A dan nilai sama ada untuk kembali dari halaman B mengikut keadaan. Tetapi apabila B mempunyai berbilang entri, anda perlu mengetahui sumber halaman apabila kembali, jika tidak, anda tidak boleh kembali, dan logiknya agak rumit dan terdedah kepada ralat.
state = { activeKey: pathToRegexp(PagePath.B).exec(pathName.last) ? activeKey : "" };Ringkasan
Artikel ini mencadangkan penyelesaian untuk pengembalian halaman untuk mengekalkan keadaan terakhir, yang sesuai untuk situasi di mana halaman mempunyai berbilang pintu masuk dan keluar. Penyelesaian ini menggunakan kaedah memantau perubahan sejarah dan merekodkan alamat halaman terakhir, sekali gus menyediakan asas untuk sama ada memulihkan keadaan.
Pembelajaran yang disyorkan: "
tutorial video bertindak balas"
Atas ialah kandungan terperinci Bagaimana untuk mengingati status halaman sebelum bertindak balas melompat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

useState () isareacthookusedtomanagestateinfunctionalcomponents.1) itinitializesandupdatesstate, 2) harusbecalledatthetoplevelofcomponents, 3) canleadto'stalestate'ifnotusedCorrecly, dan4)

Reactispopularduetoitscomponent-berasaskan-berasaskan, virtualdom, richecosystem, anddeclarativenature.1) komponen-berasaskan komponen yang tidak dapat dipisahkan.

TODEBUGREACTAPPLICATIONSEFECTIVELY, USETHESESTRATION

useState () inreactallowsstatemanagementInfunctionalcomponents.1) itimplifiesstatemanagement, makeCodeMoreconcise.2) usetheprevcountfunctionToupdatestateBasedonitsPreviousValue, elesteringStalestateSsues.3)

PILISEUSESTATE () Forsimple, IndependentStateVariables; useUsereducer () forComplexStateLogicorWhenStededededSonPreviousState.1) useState () isIdealForsimpleupdatesliketogglingabooleanorupdatingAcounter.2)

UseState lebih tinggi daripada komponen kelas dan penyelesaian pengurusan negeri yang lain kerana ia memudahkan pengurusan negeri, menjadikan kod lebih jelas, lebih mudah dibaca, dan selaras dengan sifat deklaratif React. 1) UseState membolehkan pemboleh ubah negeri diisytiharkan secara langsung dalam komponen fungsi, 2) ia mengingati negara semasa membuat semula melalui mekanisme cangkuk, 3) menggunakan useState untuk menggunakan pengoptimuman reaksi seperti menghafal untuk meningkatkan prestasi,

UseUsestate () forlocalComponentStatemanagement; pertimbangan yang tidak dapat dipertahankan, kompleksLogic, orperformanceissues.1) useState () isidealforsimple, localstate.2) useglobalStatesolutionsLikereduxorcontextForShorSharsharedState.3)

ReusablecomponentsinreactenhanceCodeMaintainabilityandficiencybylowingdevelperstousethesamecomponentacrossdifferentpartsofanapplicationorprojects.1) merekaReduceredundancyandsimplifyupdates.2) mereka


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.
