1. 程式人生 > >react-redux (react)

react-redux (react)

一、Redux與元件

 

react-redux是一個第三方外掛使我們在react上更方便的來使用redux這個資料架構

 

React-Redux提供connect方法,用於從UI元件生成容器元件,connect的意思就是將兩種元件連起來

 

參考文章:https://github.com/reduxjs/react-redux

 

二、react-redux的基本用法

(1)、引入

import {Provider} from "react-redux";

 

在根元件外層巢狀一個Provider.   Provider的作用就是將store傳遞給每一個子元件,每一個子元件就都可以使用store了,不需要重複的在元件中引入store

(2)、connect進行連線

(1)、在子元件中引入connect

import { connect } from "react-redux";

 

 

(2)進行連線

export default connect(mapStateToProps)(元件名稱)

 

 

connect()():

第一個括號裡面有三個引數

第一個引數:mapStateToProps

解釋:

mapStateToProps其實就是一個規則,把store裡面的state對映到當前元件的 props中

 

 

第二個引數:mapDispatchToProps

解釋:

(1)、mapDispatcherToProps 這個方法用來修改資料,這個方法中有一個引數為dispatch. 

(2)、如果說mapStateToProps是將store的資料拿到當前元件使用,那麼mapDispatcherToProps就是提高了一些方法讓你如果進行資料的修改(方法需要自己去寫,依舊要把action返回給Store),這個方法被對映的this.props中。dispatch是用來發送action的

第二個括號:需要傳遞元件名稱

mapStateToProps這個函式的主要用途就是將state中的items資料對映到prop中的items中去,簡單來說就是我們呼叫公共的資料store。但是頻繁的在元件中引入store操作過於麻煩,因此我們將當前list元件進行了一個數據連線,這個資料就是從store中的state對映到props中

 

mapStateToProps

作用:

建立一個從(外部的)state物件到(UI 元件的)props物件的對映關係。

mapStateToProps會訂閱 Store,每當state更新的時候,就會自動執行,重新計算 UI 元件的引數,從而觸發 UI 元件的重新渲染

 

呼叫的時候this.props.【key值】

 

mapDispatchToProps

作用:

用來建立 UI 元件的引數到store.dispatch方法的對映。也就是說,它定義了哪些使用者的操作應該當作 Action,傳給 Store。它可以是一個函式,也可以是一個物件

mapDispatchProps的用法

 

const mapDispatchProps = (dispatch)=>({

函式名稱:function(){

dispatch(action)

}

})

mapDispatchProps函式需要返回出去一個函式 這個函式中用dispatch傳遞一個action

 

最終子元件變成了UI元件 connect返回最終的容器元件,react-redux建議我們把所有的資料都放在store中

 

呼叫:this.props.函式名稱()