首頁  >  文章  >  web前端  >  Redux Action Creators 中的狀態存取何時適合您?

Redux Action Creators 中的狀態存取何時適合您?

Patricia Arquette
Patricia Arquette原創
2024-10-21 18:45:29245瀏覽

When is State Access in Redux Action Creators Right for You?

在 Action Creators 中存取 Redux 狀態:選項和注意事項

在 Redux 中,存取 Action Creators 中的全域儲存狀態可能是一個有爭議的話題。在這裡,我們將深入研究動作創建者中狀態存取的兩種方法,並探討它們的優缺點。

靜態方法

import store from '../store';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}

此方法直接導入商店,依賴它是一個從模組導出的單例。雖然功能強大,但由於伺服器渲染限制,每個請求通常需要單獨的存儲,因此不鼓勵使用。

函數方法

export function someAction() {
  return (dispatch, getState) => {
    const {items} = getState().otherReducer;

    dispatch(anotherAction(items));
  }
}

此方法利用 Redux Thunk 中介軟體(建議的技術)。 Thunk 允許操作創建者分派函數而不是普通的操作對象,從而提供對分派和 getState 函數的存取。雖然它需要中間件,但它可以無縫地用於客戶端和伺服器端渲染。

注意事項

  • Redux Creator 的意見: Dan Abramov 不鼓勵實際的狀態存取創建者,提倡在快取資料檢查或條件調度等特定場景中選擇性使用。
  • Redux 維護者的觀點: Mark Erikson 認為在 thunk 中訪問狀態是可以接受和鼓勵的,承認其預期目的。

最終,最佳方法取決於個人應用程式的要求。理想情況下,操作應包含最少的資訊;但是,必要時在操作建立器中使用 getState 是可以接受的。考慮這兩種方法的優缺點,然後選擇最適合您的專案的一種。

以上是Redux Action Creators 中的狀態存取何時適合您?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn