最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

記React connect的幾種寫法(小結)

 更新時間:2018年09月18日 11:11:27   作者:哥哦狗子  
這篇文章主要介紹了記React connect的幾種寫法(小結),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

連接 React 組件與 Redux store。

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

參數(shù)

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

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

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

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

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

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

返回值

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

第一種

最普通,最常見,delllee和官網(wǎng)第寫法。

import React, { Component } from 'react';
import {connect} from 'react-redux';
import { Button } from 'antd-mobile';
import { addGunAction , removeGunAction , removeGunAsync}from './store/actionCreators'
class App extends Component {
 render() {
  console.log();
  return (
   <div className="App">
    <p>{this.props.gun}</p>
    <Button type="ghost" size="small" inline onClick={this.props.handeladd}>+</Button>
    <Button type="ghost" size="small" inline onClick={this.props.handeljian}>-</Button>
    <Button type="ghost" size="small" inline onClick={this.props.handelmanjian}>慢-</Button>
   </div>
  );
 }
}
const mapStateToProps=(state)=>({
  gun:state.gun
})
const mapDispachToProps=(dispatch)=>({
  handeladd(){
   dispatch(addGunAction())
  },
  handeljian(){
   dispatch(removeGunAction())
  },
  handelmanjian(){
   dispatch(removeGunAsync())
  }
})
export default connect(mapStateToProps,mapDispachToProps)(App);

第二種

初次接觸,感覺有點繞,不太好理解,為什么點擊了,直接就派發(fā)action了?

import React, { Component } from 'react';
import {connect} from 'react-redux';
import { Button } from 'antd-mobile';
import { addGunAction , removeGunAction , removeGunAsync}from './store/actionCreators'
class App extends Component {
 render() {
  console.log();
  return (
   <div className="App">
    <p>{this.props.gun}</p>
    {/*不用像第一種那樣,點擊調用一個方法,方法里再派發(fā)action
    這種直接點擊派發(fā)action就可以*/}
    <Button type="ghost" size="small" inline onClick={this.props.addGunAction}>+</Button>
    <Button type="ghost" size="small" inline onClick={this.props.removeGunAction}>-</Button>
    <Button type="ghost" size="small" inline onClick={this.props.removeGunAsync}>慢-</Button>
   </div>
  );
 }
}
const mapStateToProps=(state,ownProps)=>({
  gun:state.gun
})
//這些action已經(jīng)自動有了dispatch的功能
const actionCreators={ addGunAction , removeGunAction , removeGunAsync}
export default connect(mapStateToProps,actionCreators)(App);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • React和Vue實現(xiàn)文件下載進度條

    React和Vue實現(xiàn)文件下載進度條

    本文主要介紹了React和Vue實現(xiàn)文件下載進度條,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • react native之ScrollView下拉刷新效果

    react native之ScrollView下拉刷新效果

    這篇文章主要為大家詳細介紹了react native之ScrollView下拉刷新效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 高性能React開發(fā)React Server Components詳解

    高性能React開發(fā)React Server Components詳解

    ReactServerComponents通過服務器端渲染、自動代碼分割等技術,實現(xiàn)了高性能的React開發(fā),它解決了客戶端數(shù)據(jù)請求鏈式延遲、敏感數(shù)據(jù)暴露風險等問題,提供了更好的用戶體驗和安全性,本文介紹高性能React開發(fā)React Server Components詳解,感興趣的朋友一起看看吧
    2025-03-03
  • react中的DOM操作實現(xiàn)

    react中的DOM操作實現(xiàn)

    某些情況下需要在典型數(shù)據(jù)流外強制修改子代。要修改的子代可以是 React 組件實例,也可以是 DOM 元素。這時就要用到refs來操作DOM,本文詳細的介紹一下使用,感興趣的可以了解一下
    2021-06-06
  • React Native中導航組件react-navigation跨tab路由處理詳解

    React Native中導航組件react-navigation跨tab路由處理詳解

    這篇文章主要給大家介紹了關于React Native中導航組件react-navigation跨tab路由處理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • React函數(shù)式組件Hook中的useEffect函數(shù)的詳細解析

    React函數(shù)式組件Hook中的useEffect函數(shù)的詳細解析

    useEffect是react v16.8新引入的特性。我們可以把useEffect hook看作是componentDidMount、componentDidUpdate、componentWillUnmounrt三個函數(shù)的組合
    2022-10-10
  • React + Node.js實現(xiàn)圖片上傳功能

    React + Node.js實現(xiàn)圖片上傳功能

    最近筆者在開發(fā)個人博客的后臺管理系統(tǒng),里面用到了圖片上傳相關的功能,在這里記錄并分享一下,希望可以幫到大家,話不多說直接開始吧,感興趣的朋友可以參考下
    2024-01-01
  • ReactNative列表ListView的用法

    ReactNative列表ListView的用法

    本篇文章主要介紹了ReactNative列表ListView的用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • React Native功能豐富的Toast通知庫

    React Native功能豐富的Toast通知庫

    這篇文章主要為大家介紹了React Native功能豐富的Toast通知庫使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • React如何利用相對于根目錄進行引用組件詳解

    React如何利用相對于根目錄進行引用組件詳解

    這篇文章主要給大家介紹了關于React如何使用相對于根目錄進行引用組件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10

最新評論

无锡市| 西安市| 佛教| 民丰县| 迁西县| 图片| 泸水县| 蒙阴县| 正镶白旗| 衢州市| 罗源县| 镇赉县| 扶沟县| 家居| 宝应县| 灵川县| 吉安县| 绥德县| 舒城县| 蓝山县| 阿鲁科尔沁旗| 余干县| 涪陵区| 舒兰市| 宁波市| 黄山市| 永泰县| 南靖县| 安仁县| 仙游县| 福州市| 句容市| 安国市| 旅游| 邓州市| 安丘市| 静安区| 黑河市| 柞水县| 永城市| 阜新市|