Redux學習筆記

2022-03-06 18:34:47 字數 2426 閱讀 3706

redux 對於通訊工程專業的來說可以這麼理解

在不用redux的時候,元件中的資訊傳遞就好像我通過用嘴巴說的方式向你傳遞資訊,但是當周圍環境比較嘈雜資訊比較多或者我距離你比較遠的時候,資訊的傳遞就比較費勁了,一句兩句還好,多了肯定會很累。

那麼redux是個什麼存在呢?他就像乙個基站,我和大家的所有資料傳遞都用手機打給你的手機,然而手機與手機之間的資訊傳遞不是  手機 <-----> 手機這樣的。

而是  手機 <---->  基站  <----> 手機  這樣的關係。

而 redux對於整個單頁來說就有點像基站的存在,所有資料統一通過redux來進行管理。

redux的出現是為了讓應用當中所有動作和狀態統一管理,讓一切有據可循。

store與state的區別,state是應用的乙個狀態,本質上來說他是乙個普通物件。

而store是state物件的乙個管理者,包含下面四個函式

getstate() # 獲取整個 state

dispatch(action) # ※ 觸發 state 改變的【唯一途徑】※

subscribe(listener) # 您可以理解成是 dom 中的 addeventlistener

replacereducer(nextreducer) # 一般在 webpack code-splitting 按需載入的時候用

state和store存在這種關係:     

var state = store.getstate();

在redux當中規定,乙個應用只有單一的store,並且不能直接修改store當中的state

var state =store.getstate()

state.counter = state.counter + 1

//禁止在業務邏輯中直接修改 state

改變store當中的state只能通過dispatch乙個action來進行,這個是修改應用狀態的唯一方法

就好像你不能直接和基站說你要發簡訊,發qq訊息,打**給誰誰誰,這個肯定是行不通的。

這些具體的動作就是action,你需要選擇乙個具體的動作然後傳送資訊,然後基站才能通過這些具體的動作來執行,達到目的。

那麼store是怎麼來的呢?

你需要乙個基站,那麼基站如何知道怎麼處理你傳送過來的各種不同的資訊,並且做出正確的處理呢?

這個就需要你在設計製造這個「基站」的時候根據你的需求來設計出乙個具體的處理方案。

這個時候就需要乙個  createstore ,這個就是製造「基站」的工廠。

呼叫createstore傳入乙個reducer來生成乙個store.

reducer就好像是你的設計圖,你把這個設計圖給乙個叫 reducer 的代工廠,這個代工廠就會根據你的設計圖來給你製作出乙個特製的基站,用來處理你的各種資料操作。

import  from

'redux

'...

const store = createstore(reducer, initialstate) //

store 是靠傳入 reducer 生成的哦!

reducer是乙個 函式,負責更新並返回乙個新的state

實質上是乙個包含type屬性的普通物件,這個type是store這個基站用來識別使用者行為的關鍵。

}

action當中的資訊只用type是必須要的,其他的資料可以是任意的。

action creator 是action的創造者,本質上就是乙個函式,返回值是乙個action(物件)

var id = 1

function addtodo(content)

}}

這樣就不需要每次有新的相同行為的時候都重新定義乙個了,直接使用action creator來生成傳入變數即可

使用者每次dispatch(action)後,都會觸發reducer的執行

reducer的實質是乙個函式,根據action.type來更新state並返回nextstate

最後會用reducer的返回值nextstate完全替換掉原來的state

var initstate =

function reducer(state, action)

}

通俗點講,就是reducer返回啥,state就被替換成啥

redux學習筆記

流程如下 在redux中使用者的操作並不會直接導致view層的更新,而是view層發出actions通知出發store裡的reducer從而來更新state state的改變會將更新反饋給我們的view層,從而讓我們的view層發生相應的反應給使用者。redux中有三個基本概念,action,red...

redux 學習筆記

學習資料 英文文件 中文文件 github redux是乙個專門用於做狀態管理的js庫 不是react外掛程式庫 它可以用在react,angular,vue等專案中,但基本與react配合使用。作用 集中式管理react應用中多個元件共享的狀態。某個元件的狀態,需要讓其他元件可以隨時拿到 共享 乙...

Redux學習筆記 Redux簡易開發步驟

該文章不介紹redux基礎,也不解釋各種亂亂的概念,網上一搜一大堆。只講使用redux開發乙個功能的步驟,希望可以類我的小白們,拜託它眾多概念的毒害,大牛請繞道!本文例項源 參考 react redux primary demo const render reactdom.render class ...