Rumah >hujung hadapan web >tutorial js >Bagaimanakah Pencipta Tindakan Redux Perlu Mengakses Keadaan: Dari Kedai atau Thunk?

Bagaimanakah Pencipta Tindakan Redux Perlu Mengakses Keadaan: Dari Kedai atau Thunk?

Barbara Streisand
Barbara Streisandasal
2024-10-21 18:48:29525semak imbas

How Should Redux Action Creators Access State: From Store or Thunk?

Mengakses Redux State Within Action Creators

Soalan:

Dalam aplikasi Redux, bagaimana bolehkah seseorang mengakses keadaan kedai global dari dalam pencipta tindakan? Adakah pendekatan berikut sesuai?

Pendekatan 1:

<code class="javascript">import store from '../store';

export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}</code>

Pendekatan 2:

<code class="javascript">export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return (dispatch, getState) => {
    const {items} = getState().otherReducer;

    dispatch(anotherAction(items));
  }
}</code>

Jawapan:

Kebolehterimaan untuk mengakses keadaan dalam pencipta tindakan ialah topik perdebatan dalam komuniti Redux.

Pendekatan 1:

Mengakses keadaan secara terus melalui store.getState() tidak digalakkan kerana ia bergantung pada kedai sebagai singleton global. Pada pelayan, di mana kedai berasingan mungkin wujud setiap permintaan, pendekatan ini bermasalah.

Pendekatan 2:

Pendekatan ini lebih disukai kerana ia menggunakan perisian tengah Redux Thunk, yang membenarkan tindakan tak segerak dan mendapatkan semula keadaan kedai melalui getState(). Thunk berfungsi dengan lancar pada kedua-dua pelanggan dan pelayan serta memastikan akses keadaan diasingkan kepada tindakan tertentu.

Pertimbangan:

  • Perspektif Redux Creator: Akses nyatakan dalam tindakan pencipta mungkin mengaburkan sejarah perubahan dan secara amnya tidak digalakkan.
  • Perspektif Redux Maintainer: Menggunakan getState dalam bentuk thunks adalah digalakkan kerana ia memanfaatkan ciri yang direka khusus untuk kes penggunaan sedemikian .

Akhirnya, kedua-dua pendekatan boleh membuahkan hasil yang diingini, tetapi Pendekatan 2 ialah amalan terbaik yang disyorkan untuk mengelakkan kemungkinan perangkap dan mengekalkan konsistensi merentas persekitaran.

Atas ialah kandungan terperinci Bagaimanakah Pencipta Tindakan Redux Perlu Mengakses Keadaan: Dari Kedai atau Thunk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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