位置: IT常识 - 正文

react @connect的作用简单理解(dva @connect)(react connect用法)

编辑:rootadmin
react @connect的作用简单理解(dva @connect) 一、前言

推荐整理分享react @connect的作用简单理解(dva @connect)(react connect用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react connect方法,react connect原理,react usecontent,react connect原理,react-rewired,react中connect的作用,react connect用法,react connect原理,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在自学react,发现项目中用到了@connect这个方法,但是不知道是什么意思;

网上百度,发现有这样解释的:

connect的作用是将组件和models结合在一起。将models中的state绑定到组件的props中。并提供一些额外的功能,譬如dispatch

还有这样解释的:

connect用来链接组件和状态管理器。你可以通过dispath调用对应仓库中的方法,也可以通过在this.props下找到仓库的数据进行操作。

还有这样的:

connect 方法返回的也是一个 React 组件,通常称为容器组件。因为它是原始 UI 组件的容器,即在外面包了一层 State。connect 方法传入的第一个参数是 mapStateToProps 函数,mapStateToProps 函数会返回一个对象,用于建立 State 到 Props 的映射关系。

这种东西初学者看了也不明白是什么意思,感觉不够通俗易懂。(反正本人是没看懂)

后来,终于自己琢磨明白了,在此总结下。

二、@connect的作用个人理解

1.首先,是react项目里用到了@connect注解,点击这个注解进入源码,发现路径是node_modules\dva\index.d.ts,因此也可以说是dva中的@connect。

react @connect的作用简单理解(dva @connect)(react connect用法)

2.本人的项目中,是这样使用的:

@connect(({ loading, OnlineTrainSet, codeselect }) => ({ OnlineTrainSet, codeselect, loading: loading.models.OnlineTrainSet,}))

(1)@connect的意思是,将models中的状态(state)装到组件的props里。

(2)具体到这里,就是会把OnlineTrainSet,codeselect,loading装入this.props里面,后续使用this.props.OnlineTrainSet,this.props.codeselect,this.props.loading就可以使用了。

(3)OnlineTrainSet,是本人的项目中有一个文件项目名\src\pages\MyOnlineTrainSet\models\OnlineTrainSet.js ,内容有:

export default { namespace: 'OnlineTrainSet', state: { currView: 'home', currData: {},......

注意,这个文件里namespace: 'OnlineTrainSet',上方@connect里用OnlineTrainSet就可以装入了; state,就是装入this.props里的内容;

这个文件的位置在models文件夹里,所以能用@connect装入;

使用了@connect后,后续页面就可以使用this.props.OnlineTrainSet.currView、获取到的值就是home。

(4)codeselect,这个也类似,只不过是位于本人的项目中的项目名\src\models\codeselect.js(也是自己写的js,注意位置是另一个models文件夹,总之也可以),其中也用到了namespace: 'codeselect'与state,所以也可以用@connect装入。

(5)loading,这个搜索namespace: 'loading'没有找到,应该是框架里实现的,也类似; 这里是把loading.models.OnlineTrainSet装入了this.props里面; 获取时,使用this.props.loading,取到的值就是loading.models.OnlineTrainSet的值; loading.models里,有各个文件的加载情况,如果正在加载中、就是true,如果不是、就是false; 所以,当this.props.loading为true时,就说明OnlineTrainSet.js文件正在加载中;(当this.props.loading为false时,就说明OnlineTrainSet.js文件加载完了;如果为null,就说明没有值、没有加载这个文件)

3.后续代码中,是这样使用的:

const { OnlineTrainSet } = this.props;//和这个一样//const OnlineTrainSet = this.props.OnlineTrainSet;console.log(OnlineTrainSet.treeData);

这个的意思是,

本文链接地址:https://www.jiuchutong.com/zhishi/290827.html 转载请保留说明!

上一篇:费尔南迪纳岛海岸的加拉帕戈斯海狮,厄瓜多尔科隆群岛 (© Tui De Roy/Minden Pictures)(费尔南迪纳岛气候类型)

下一篇:被阿尔卑斯山环抱的辛特湖,德国贝希特斯加登 (© Offset by Shutterstock)(阿尔卑斯山环保)

  • ps怎么添加填充图案素材(ps怎么添加填充材质)

    ps怎么添加填充图案素材(ps怎么添加填充材质)

  • 红米10x有红线功能吗(红米10x有红外线和nfc功能吗)

    红米10x有红线功能吗(红米10x有红外线和nfc功能吗)

  • 淘宝一颗黄钻代表什么呢(淘宝一颗黄钻代表什么)

    淘宝一颗黄钻代表什么呢(淘宝一颗黄钻代表什么)

  • 抖音镜像模式怎么调(抖音镜像设置)

    抖音镜像模式怎么调(抖音镜像设置)

  • 拼多多退货包运费是谁出运费(拼多多退货包运费服务费是怎么收的)

    拼多多退货包运费是谁出运费(拼多多退货包运费服务费是怎么收的)

  • 遥控器指示灯一直亮 用不了怎么办(遥控器指示灯一直闪烁 按键没反应)

    遥控器指示灯一直亮 用不了怎么办(遥控器指示灯一直闪烁 按键没反应)

  • pca是啥

    pca是啥

  • win10耳机和音响怎么同时使用(w10系统耳机和音响能一起播放吗)

    win10耳机和音响怎么同时使用(w10系统耳机和音响能一起播放吗)

  • 支付宝单车怎么还车(支付宝单车怎么关锁)

    支付宝单车怎么还车(支付宝单车怎么关锁)

  • 支付宝怎么注销账号(支付宝怎么注销另外一个手机号)

    支付宝怎么注销账号(支付宝怎么注销另外一个手机号)

  • 苹果6怎么清理后台(苹果6怎么清理运行程序)

    苹果6怎么清理后台(苹果6怎么清理运行程序)

  • ie8浏览器有手机版么(ie8浏览器有手机模式吗)

    ie8浏览器有手机版么(ie8浏览器有手机模式吗)

  • 微信两万步是多少公里(微信两万步多远)

    微信两万步是多少公里(微信两万步多远)

  • 陌陌注销后90天才能注册吗(陌陌注销90天才可以注册)

    陌陌注销后90天才能注册吗(陌陌注销90天才可以注册)

  • asmr什么意思(孔雀鱼asmr什么意思)

    asmr什么意思(孔雀鱼asmr什么意思)

  • 小米8是快充吗(小米8是快充吗还是慢充)

    小米8是快充吗(小米8是快充吗还是慢充)

  • 苹果11上市了吗(苹果手机11上市了吗)

    苹果11上市了吗(苹果手机11上市了吗)

  • 电话号码删了还能找回来吗(电话号码删了还会爆通讯录吗)

    电话号码删了还能找回来吗(电话号码删了还会爆通讯录吗)

  • vivox27pro有没有红外线功能(vivox27pro有没有红外线遥控)

    vivox27pro有没有红外线功能(vivox27pro有没有红外线遥控)

  • 苹果x怎么拉黑联系人(苹果X怎么拉黑00开头的号码)

    苹果x怎么拉黑联系人(苹果X怎么拉黑00开头的号码)

  • wifi出现感叹号是什么原因(wifi出现感叹号是什么意思怎么解决)

    wifi出现感叹号是什么原因(wifi出现感叹号是什么意思怎么解决)

  • 电脑移动上网卡(移动电脑无线上网卡)

    电脑移动上网卡(移动电脑无线上网卡)

  • wps复制粘贴文字乱行(wps复制粘贴文字有背景颜色)

    wps复制粘贴文字乱行(wps复制粘贴文字有背景颜色)

  • 将MS-DOS 6.22装入U盘和硬盘的方法(ms-dos安装)

    将MS-DOS 6.22装入U盘和硬盘的方法(ms-dos安装)

  • 个人所得税查询工资与实际工资不符是为何
  • 单位收到已交个税的劳务发票还需要申报个税吗
  • 预缴企业所得税计税依据
  • 当月开的票必须当月交税吗
  • 营业外收支计入哪里
  • 猪肉是否免税
  • 两家公司实际控制人为一个人
  • 资产负债表中其他流动资产包括哪些科目
  • 如何去办理小型微利企业资格每年都需要认证吗?
  • 小规模纳税人如何开电子发票
  • 价外费用纳税义务发生时间
  • 收款未发货需要纳税吗
  • 暂估进项税额
  • 二手车公司怎么开发票
  • 未开票收入怎么写分录
  • 契税和车辆购置税的异同
  • 企业境外收入税率
  • 财产租赁合同印花税申报期限
  • 外经证是先开票还是先预缴税款
  • 分公司注销总公司会计分录
  • 历史成本重置成本属于会计是什么
  • 存货相关的会计科目
  • 建筑业调试费进什么科目?
  • 进货价加多少卖不亏增值税
  • 原材料因管理不善被盗的会计分录
  • 企业为员工购买社保缴费标准
  • 即征即退申报表如何填写
  • 其他货币资金期末处理
  • macbookpro鼠标滚轮是反的
  • kcleaner.exe是什么
  • 不是第三方的贷款app
  • 实收资本可以大于注册资本嘛
  • mac系统怎么清除数据
  • 增值税普通发票怎么开
  • 小程序在线反编译网页版
  • 失控发票进项转出后要补企业所得税吗
  • 栖息在树林中
  • 安装人员食宿费谁承担
  • 去年买的设备今年入固定资产如何做账
  • php图片加水印实例分析
  • 共轭梯度法matlab代码
  • 金税盘发票数据导出不完整
  • 应付利息和利息支出什么时候用
  • centos乱码,怎么修改成英文
  • 企业资产盘亏的定性依据
  • 标签显示内容怎么设置
  • 占地面积法如何分摊土地成本
  • 外购固定资产入账
  • 营业收入净额是利润表的哪个数
  • mysql修改表结构的关键字
  • 无追索权保理的例外
  • 税前减免
  • 工程未完工开了发票怎么做账
  • 业务招待费税前列支
  • 应付职工薪酬的工资是实发工资还是应发工资
  • 民间非盈利组织使用什么会计准则
  • 小规模季报成功后怎么缴费
  • 快递公司的主营业务范围
  • 代开的专票作废了怎么做账?
  • 公司转让无形资产开什么票
  • 会计凭证发票粘贴
  • 企业建帐的基本要求
  • 商业批发企业有哪些
  • mysql连接查询的几种方式
  • sql server 数据
  • task host windows解决
  • win7登录密码怎么改
  • Mac OS X Mavericks的Finder打开不同标签的操作步骤
  • 获取windows的最新信息
  • win10更新后出现windows.old
  • [置顶]电影名字《收件人不详》
  • Cocos2d-x 3.x lua绑定
  • cocos2d android 游戏开发学习——CCAction(一)
  • python中字符串类型和元组类型均不可变
  • AJAX和jQuery动态加载数据的实现方法
  • Node.js中的事件循环是什么
  • JQuery绑定事件的函数是
  • 自然人扣缴端初始密码
  • 四川企业退休人员80岁高龄补贴
  • 低收入个人所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设