iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >React中connect的有哪些写法
  • 560
分享到

React中connect的有哪些写法

2024-04-02 19:04:59 560人浏览 独家记忆
摘要

小编给大家分享一下React中connect的有哪些写法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!connect([mapS

小编给大家分享一下React中connect的有哪些写法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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

连接 React 组件与 Redux store。

连接操作不会改变原来的组件类,反而返回一个新的已与 Redux store 连接的组件类。

参数

[mapStateToProps(state, [ownProps]): stateProps] (Function): 如果定义该参数,组件将会监听 Redux store 的变化。任何时候,只要 Redux store 发生改变,mapStateToProps 函数就会被调用。该回调函数必须返回一个纯对象,这个对象会与组件的 props 合并。如果你省略了这个参数,你的组件将不会监听 Redux store。如果指定了该回调函数中的第二个参数 ownProps,则该参数的值为传递到组件的 props,而且只要组件接收到新的 props,mapStateToProps 也会被调用。

[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 也会被调用。

[mergeProps(stateProps, dispatchProps, ownProps): props] (Function): 如果指定了这个参数,mapStateToProps() 与 mapDispatchToProps() 的执行结果和组件自身的 props 将传入到这个回调函数中。该回调函数返回的对象将作为 props 传递到被包装的组件中。你也许可以用这个回调函数,根据组件的 props 来筛选部分的 state 数据,或者把 props 中的某个特定变量与 action creator 绑定在一起。如果你省略这个参数,默认情况下返回 Object.assign({}, ownProps, stateProps, dispatchProps) 的结果。

[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 组件。

第一种

最普通,最常见,delllee和官网第写法。

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);

第二种

初次接触,感觉有点绕,不太好理解,为什么点击了,直接就派发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>
    {}
    <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已经自动有了dispatch的功能
const actionCreators={ addGunAction , removeGunAction , removeGunAsync}
export default connect(mapStateToProps,actionCreators)(App);

以上是“React中connect的有哪些写法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: React中connect的有哪些写法

本文链接: https://www.lsjlt.com/news/76619.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • React中connect的有哪些写法
    小编给大家分享一下React中connect的有哪些写法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!connect([mapS...
    99+
    2024-04-02
  • React中事件的写法有哪些
    本篇内容主要讲解“React中事件的写法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React中事件的写法有哪些”吧!1、普通匿名函数的直接绑定<...
    99+
    2024-04-02
  • React组件的写法有哪些
    这篇文章给大家分享的是有关React组件的写法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。React 专注于 view 层,组件化则是 React 的基础,也是其核心理念...
    99+
    2024-04-02
  • react点击事件的写法有哪些
    这篇文章主要讲解了“react点击事件的写法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react点击事件的写法有哪些”吧! ...
    99+
    2024-04-02
  • JavaScript中switch的写法有哪些
    这篇文章主要介绍了JavaScript中switch的写法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript中switch的写法有哪些文章都会有所收获,下...
    99+
    2024-04-02
  • JS中switch的写法有哪些
    在JavaScript中,switch语句的基本写法如下所示: switch(expression) { case value1...
    99+
    2024-03-08
    JS
  • oracle中url的写法有哪些
    在Oracle中,可以使用如下格式来编写URL: 使用标准的URL格式:jdbc:oracle:thin:@//hostname...
    99+
    2024-04-09
    oracle
  • VUE中template的写法有哪些
    本文小编为大家详细介绍“VUE中template的写法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“VUE中template的写法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、直接写在构造器中&...
    99+
    2023-06-30
  • react-redux的connect用法详解
    目录一、UI组件和容器组件二、connect1、导入2、使用三、mapStateToProps四、mapDispatchToProps五、Provider一、UI组件和容器组件 Re...
    99+
    2023-01-31
    react-redux的connect用法 react-redux使用
  • JavaScript的简写写法有哪些
    JavaScript的简写写法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.三元操作符当想写if...else语句时,使用三元操作符...
    99+
    2024-04-02
  • python中路径的写法有哪些
    这篇文章主要介绍了python中路径的写法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中路径的写法有哪些文章都会有所收获,下面我们一起来看看吧。路径的三种写法+路径前符号含义os.path....
    99+
    2023-07-05
  • React中常用的Hook有哪些
    目录一、简介二、使用1、State Hook2、Effect Hook3、Ref Hook一、简介 Hook是React 16.8.0版本增加的新特性/新语法 可以在函数组件中使用 ...
    99+
    2023-01-10
    React Hook原理 React Hook有哪些
  • react有哪些遍历方法
    这篇文章主要讲解了“react有哪些遍历方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react有哪些遍历方法”吧! rea...
    99+
    2024-04-02
  • css有哪些写法
    这篇文章给大家分享的是有关css有哪些写法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 三种常用写法是:1、内联样式,语法“<标记名 styl...
    99+
    2024-04-02
  • iframe写法有哪些
    1. HTML标签方式:使用``标签,其中src属性指定要嵌入的页面地址。```html```2. JavaScript方式:使用J...
    99+
    2023-06-14
    iframe写法
  • JavaScript写法有哪些
    这篇文章主要讲解了“JavaScript写法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript写法有哪些”吧! 直接初始化法...
    99+
    2024-04-02
  • React中key的作用有哪些
    这篇文章将为大家详细讲解有关React中key的作用有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。要了解React中key的作用,可以从key的取值入手,key的取值可以分为三种,不定值、索引值、确...
    99+
    2023-06-14
  • react context优化的方法有哪些
    本篇内容介绍了“react context优化的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言我们在使用reac...
    99+
    2023-07-04
  • oracle中insert语句的写法有哪些
    在Oracle中,INSERT语句有以下几种写法:1. 基本的INSERT语句:```INSERT INTO table_name ...
    99+
    2023-09-05
    oracle
  • HTML值的写法有哪些
    今天小编给大家分享一下HTML值的写法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作