1. 程式人生 > >React-Redux過程解析

React-Redux過程解析

React-Redux過程解析

1.react專案中,使用到redux的地方,也是跟vue中使用vuex一樣,一般是用於管理 多個地方都可以對其改變,或者受其影響的state(狀態)。
2.在redux的組成:
(1).stroe : 倉庫儲存管理state,只能有一個。
(2).state:狀態值
(3).action: 狀態請求觸發的媒介,是一個物件,必須有type屬性,用於匹配action的名稱
(4).reducer:當store接收到一個,會根據action物件內的屬性值,做相應的操作(對state),並且最終會返回一個新的state,state變化之後就會觸發頁面的重新渲染。reducer是一個函式,第一個引數為state(預設自動傳入),第二個引數為action(需要手動傳入)。

3.狀態更改需要通過store.dispatch(action);方法將狀態更改請求傳送給reducer。並且這是唯一的方法,dispatch方法一執行,就會自動觸發reducer方法自執行。

4.具體流程:
使用者(view)操作----觸發store的dispatch方法,將狀態更改請求傳送至,reducer,-----reducer進行相應的操作-----返回一個新的state-----檢視重新渲染

5.store怎麼獲取reducer函式?
只需要建立store時,傳入reducer函式即可。如下程式碼

import  {createStore}  from 'redux';    //引入建立store的方法
import  reducer   from  '你reducer檔案所在的目錄';     //引入編寫的reducer函式

const  Store=createStroe(reducer);     //建立store物件

完成

6.專案中所有子元件需要使用store內的狀態值,還需要使用‘react-redux’ 中的Provider 元件,將store物件傳入所有的子元件props中。

import   {Provider}  from  'react-redux'  ;

ReactDOM.render(
	<Provider   store={Store} >
	...
	</Provider>,
	document.getElementById('app')
);

這樣專案中所有子元件都能使用store了。
注意上述所有操作均在index.js(入口檔案中)。