国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript技巧中關于react-redux中connect()方法詳細解析

來源:懂視網 責編:小采 時間:2020-11-27 20:22:25
文檔

JavaScript技巧中關于react-redux中connect()方法詳細解析

JavaScript技巧中關于react-redux中connect()方法詳細解析:connect()是React-redux中的核心方法之一,它將react組件預redux中的Store真正連接在一起,下面這篇文章主要給大家介紹了react-redux中connect()方法的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。組件Re
推薦度:
導讀JavaScript技巧中關于react-redux中connect()方法詳細解析:connect()是React-redux中的核心方法之一,它將react組件預redux中的Store真正連接在一起,下面這篇文章主要給大家介紹了react-redux中connect()方法的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。組件Re
connect()是React-redux中的核心方法之一,它將react組件預redux中的Store真正連接在一起,下面這篇文章主要給大家介紹了react-redux中connect()方法的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

組件

React-Redux將所有組件分為兩大類:展示組件(UI組件),容器組件

展示組件有以下幾個特征:

  • 只負責 UI 的呈現,不帶有任何業務邏輯

  • 沒有狀態(即不使用this.state這個變量)

  • 所有數據都由參數(this.props)提供

  • 不使用任何 Redux 的 API

  • 容器組件有以下幾個特征:

  • 負責管理數據和業務邏輯,不負責 UI 的呈現

  • 帶有內部狀態

  • 使用 Redux 的 API

  • 總結為一點: 展示組件負責 UI 的呈現,容器組件負責管理數據和邏輯

    connect方法解析

    下圖是connect()的概念圖

    可以簡單歸納為以下幾點:

  • mapStateToProps必須是function,作為輸入邏輯,

  • mapDispatchToProps可以是funciton,也可以是對象,作為輸出,

  • connect()簽名

    connect([mapStateToProps], [mapDispatchToProps], [mergeProps], [options])

    連接 React 組件與 Redux store。

    連接操作不會改變原來的組件類,反而返回一個新的已與 Redux store 連接的組件類。

    參數

    1、 [mapStateToProps(state, [ownProps]): stateProps] (Function) : 如果定義該參數,組件將會監聽 Redux store 的變化。任何時候,只要 Redux store 發生改變,mapStateToProps 函數就會被調用。該回調函數必須返回一個純對象,這個對象會與組件的 props 合并。如果你省略了這個參數,你的組件將不會監聽 Redux store。如果指定了該回調函數中的第二個參數 ownProps,則該參數的值為傳遞到組件的 props,而且只要組件接收到新的 props,mapStateToProps 也會被調用。

    2、 [mapDispatchToProps(dispatch, [ownProps]): dispatchProps] (Object or Function) : 如果傳遞的是一個對象,那么每個定義在該對象的函數都將被當作 Redux action creator,而且這個對象會與 Redux store 綁定在一起,其中所定義的方法名將作為屬性名,合并到組件的 props 中。如果傳遞的是一個函數,該函數將接收一個 dispatch 函數,然后由你來決定如何返回一個對象,這個對象通過 dispatch 函數與 action creator 以某種方式綁定在一起(提示:你也許會用到 Redux 的輔助函數 bindActionCreators() )。如果你省略這個 mapDispatchToProps 參數,默認情況下,dispatch 會注入到你的組件 props 中。如果指定了該回調函數中第二個參數 ownProps,該參數的值為傳遞到組件的 props,而且只要組件接收到新 props,mapDispatchToProps 也會被調用。

    3、 [mergeProps(stateProps, dispatchProps, ownProps): props] (Function) : 如果指定了這個參數,mapStateToProps() 與 mapDispatchToProps() 的執行結果和組件自身的 props 將傳入到這個回調函數中。該回調函數返回的對象將作為 props 傳遞到被包裝的組件中。你也許可以用這個回調函數,根據組件的 props 來篩選部分的 state 數據,或者把 props 中的某個特定變量與 action creator 綁定在一起。如果你省略這個參數,默認情況下返回 Object.assign({}, ownProps, stateProps, dispatchProps) 的結果。

    4、 [options] (Object) 如果指定這個參數,可以定制 connector 的行為。

    [pure = true] (Boolean) : 如果為 true,connector 將執行 shouldComponentUpdate 并且淺對比 mergeProps 的結果,避免不必要的更新,前提是當前組件是一個“純”組件,它不依賴于任何的輸入或 state 而只依賴于 props 和 Redux store 的 state。默認值為 true。

    [withRef = false] (Boolean) : 如果為 true,connector 會保存一個對被包裝組件實例的引用,該引用通過 getWrappedInstance() 方法獲得。默認值為 false

    返回值

    根據配置信息,返回一個注入了 state 和 action creator 的 React 組件。

    容器組件使用 connect() 方法連接 Redux

    我們用 react-redux 提供的 connect() 方法將“笨拙”的 Counter 轉化成容器組件。connect() 允許你從 Redux store 中指定準確的 state 到你想要獲取的組件中。這讓你能獲取到任何級別顆粒度的數據。

    讓我們看下,我們擁有一個 的展示組件,它有一個通過 props 傳過來的值,和一個函數 onIncrement,當你點擊 “Increment” 按鈕時就會調用這個函數:

    containers/CounterContainer.js

    總結

    connect后面第二個括號是要添加prop的react組件,第一個括號中的參數是用來改變該組件prop的方法,第一個括號有兩個參數,第一個參數是一個函數,返回一個對象,對象的鍵是該組件的prop屬性,值是該prop的值;第二個參數也是一個函數,返回一個對象,對象的鍵同樣是prop的屬性名,值是一個redux的dispatch,當這個prop屬性被用于觸發時,dispatch會改變redux中state的值。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JavaScript技巧中關于react-redux中connect()方法詳細解析

    JavaScript技巧中關于react-redux中connect()方法詳細解析:connect()是React-redux中的核心方法之一,它將react組件預redux中的Store真正連接在一起,下面這篇文章主要給大家介紹了react-redux中connect()方法的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。組件Re
    推薦度:
    標簽: 技巧 解析 connect
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品免费视频播放 | 中文字幕三区 | 一本综合久久国产二区 | 亚洲欧美日韩在线2020 | 女人18毛片a级毛片一区②区 | 欧美gv在线 | 一区二区三区精品 | 欧美另类图片亚洲偷 | 日本亲与子乱ay中文 | 欧美日本日韩aⅴ在线视频 欧美日韩91 | 国产一区二区高清视频 | 精品国产一区二区三区香蕉 | 国产手机精品一区二区 | 国产精品福利一区二区久久 | 久久精品国产亚洲精品2020 | 日韩欧美在线观看 | 欧美日韩高清在线 | 伊人精品久久久大香线蕉99 | 国产真实乱人视频在线看 | 青青热久久国产久精品秒播 | 婷婷在线免费视频 | 国产成人精品.一二区 | 亚洲综合另类 | 国产乱淫a∨片免费视频 | 国产精品成人69xxx免费视频 | 国产日韩视频 | 日韩国产欧美一区二区三区 | 精品国产一区二区三区久久久蜜臀 | 亚洲v日韩v欧美在线观看 | 国产一区2区 | 日本国产一区二区三区 | 日韩欧美系列 | 在线不欧美 | 国产免费视屏 | 香港黄色 | 日韩电影免费在线观看网址 | 国产精品网站在线进入 | 欧美成人精品高清在线播放 | 日韩专区亚洲综合久久 | 视频一区久久 | 国产精品成人一区二区 |