Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menetapkan Semula Redux Store dengan Berkesan semasa Log Keluar Pengguna?

Bagaimana untuk Menetapkan Semula Redux Store dengan Berkesan semasa Log Keluar Pengguna?

Barbara Streisand
Lepaskan: 2024-11-26 01:32:09
asal
857 orang telah melayarinya

How to Effectively Reset Redux Store State on User Logout?

Mengendalikan Tetapan Semula Keadaan dalam stor Redux

Redux menyediakan penyelesaian pengurusan keadaan yang berkuasa, membolehkan aplikasi mengurus data kompleks dengan cekap. Walau bagaimanapun, menetapkan semula stor Redux kepada keadaan asalnya mungkin diperlukan untuk senario tertentu, seperti log keluar pengguna atau permulaan aplikasi.

Pertimbangkan senario di mana berbilang pengguna berkongsi aplikasi yang sama dan setiap pengguna mempunyai data cache mereka sendiri dalam kedai itu. Selepas pengguna 1 log keluar, pengguna 2 log masuk tanpa memuat semula penyemak imbas. Ini meninggalkan pengguna 2 dengan data cache yang dikaitkan dengan pengguna 1.

Pengurang Akar Tersuai:

Untuk menangani isu ini, satu pendekatan ialah mencipta pengurang akar tersuai. Pengurangan akar mewakilkan tindakan kepada pengurang individu tetapi memintas tindakan USER_LOGOUT. Apabila USER_LOGOUT berlaku, pengurang akar mengembalikan keadaan asal, dengan berkesan mengosongkan keseluruhan stor.

Sebagai contoh, pengurang akar yang menggabungkan logik ini akan kelihatan seperti ini:

const appReducer = combineReducers({
  /* Your top-level application reducers */
});

const rootReducer = (state, action) => {
  if (action.type === 'USER_LOGOUT') {
    return appReducer(undefined, action);  // Reset store to initial state
  }

  return appReducer(state, action);
};
Salin selepas log masuk

Dengan pengurang akar tersuai ini, panggilan USER_LOGOUT dimulakan setiap pengurang dengan keadaan awalnya, membolehkan pengguna 2 bermula dengan senarai yang bersih.

Redux Persist Reset:

Jika anda menggunakan redux-persist , anda juga mungkin perlu mengendalikan pembersihan keadaan dalam storan, kerana redux-persist lazimnya mengekalkan salinan keadaan dalam enjin storan. Untuk menetapkan semula keadaan storan, anda boleh mengimport enjin storan yang sesuai dan membersihkan setiap kunci keadaan storan semasa log keluar:

const rootReducer = (state, action) => {
  if (action.type === 'SIGNOUT_REQUEST') {
    storage.removeItem('persist:root');
    // Remove other keys as needed

    return appReducer(undefined, action);  // Reset store to initial state
  }

  return appReducer(state, action);
};
Salin selepas log masuk

Pendekatan ini memastikan bahawa stor dan data storan yang berkaitan ditetapkan semula kepada keadaan asalnya apabila perlu, membenarkan pengguna log masuk ke aplikasi dan mengekalkan data bebas mereka sendiri.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Semula Redux Store dengan Berkesan semasa Log Keluar Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan