位置: 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)(阿尔卑斯山环保)

  • airpods pro能连安卓吗(AirPods pro能连安卓手机吗)

    airpods pro能连安卓吗(AirPods pro能连安卓手机吗)

  • 钉钉如何关闭自动入群(钉钉如何关闭自动更新)

    钉钉如何关闭自动入群(钉钉如何关闭自动更新)

  • 已经极速退款,但是卖家拒收有影响吗(已经极速退款,商家确认需要多久)

    已经极速退款,但是卖家拒收有影响吗(已经极速退款,商家确认需要多久)

  • 快手入团劵怎么领(快手里的入团卷怎么送)

    快手入团劵怎么领(快手里的入团卷怎么送)

  • 淘宝展现量什么意思(淘宝里展现量指什么)

    淘宝展现量什么意思(淘宝里展现量指什么)

  • windows7的桌面是指什么窗口(windows7的桌面是窗口吗)

    windows7的桌面是指什么窗口(windows7的桌面是窗口吗)

  • 抖音在线状态怎么设置(抖音在线状态怎么关闭)

    抖音在线状态怎么设置(抖音在线状态怎么关闭)

  • 滴滴被静默后多久会恢复(滴滴账号静默要多久才可以接到单)

    滴滴被静默后多久会恢复(滴滴账号静默要多久才可以接到单)

  • ps怎么把rgb改成cmyk(ps怎么把rgb改为cmyk)

    ps怎么把rgb改成cmyk(ps怎么把rgb改为cmyk)

  • 去实体店买手机要注意什么(去实体店买手机好还是网上买好)

    去实体店买手机要注意什么(去实体店买手机好还是网上买好)

  • QQ打开某个群就会闪退(qq打开某个群就退出)

    QQ打开某个群就会闪退(qq打开某个群就退出)

  • 爱奇艺怎么看自己的会员有几个人在用(爱奇艺怎么看自己的账号和密码)

    爱奇艺怎么看自己的会员有几个人在用(爱奇艺怎么看自己的账号和密码)

  • 傲腾增强型ssd和普通ssd区别(ssd加傲腾)

    傲腾增强型ssd和普通ssd区别(ssd加傲腾)

  • 小米6的耳机孔在哪里(小米6的耳机插口)

    小米6的耳机孔在哪里(小米6的耳机插口)

  • 淘宝淘气值怎么看(淘宝淘气值怎么提升到1000)

    淘宝淘气值怎么看(淘宝淘气值怎么提升到1000)

  • 抖音直播怎么关弹幕和礼物(抖音直播怎么关静音)

    抖音直播怎么关弹幕和礼物(抖音直播怎么关静音)

  • 小米 mde6s是什么型号(mde6s是小米什么型号)

    小米 mde6s是什么型号(mde6s是小米什么型号)

  • 微信群二维码如何不过期(微信群二维码如何更改)

    微信群二维码如何不过期(微信群二维码如何更改)

  • 硬盘上的扇区标志在什么时候建立(硬盘上的扇区标志是什么)

    硬盘上的扇区标志在什么时候建立(硬盘上的扇区标志是什么)

  • 苹果8如何边通话边用4g(苹果如何边通话边录音免费)

    苹果8如何边通话边用4g(苹果如何边通话边录音免费)

  • iwatch抬腕唤醒失灵(iwatch抬腕唤醒不灵敏)

    iwatch抬腕唤醒失灵(iwatch抬腕唤醒不灵敏)

  • 爱奇艺充值奇豆找不到账号怎么办(爱奇艺充值奇豆是什么)

    爱奇艺充值奇豆找不到账号怎么办(爱奇艺充值奇豆是什么)

  • 华为鸿蒙开发官方解答:HarmonyOS Connect“碰一碰”出现问题怎么解决(华为鸿蒙系统开发平台)

    华为鸿蒙开发官方解答:HarmonyOS Connect“碰一碰”出现问题怎么解决(华为鸿蒙系统开发平台)

  • 由浅入深介绍 Python Websocket 编程(由浅入深英语怎么说)

    由浅入深介绍 Python Websocket 编程(由浅入深英语怎么说)

  • 企业所得税税前扣除吗
  • 补提去年所得税会计分录怎么写
  • 运费增值税税率有5吗
  • 增值税一般纳税人和小规模纳税人的区别
  • 以前年度多计管账怎么做
  • 其他收益是什么类
  • 金税盘如何增加税率
  • 工会福利费列支范围
  • 动漫产业增值税优惠政策
  • 出口没做免税申报怎样补税?
  • 法人收到票据用什么抵扣
  • 现金账冲账怎么冲
  • 发票报销哪些能用专票
  • 审计调整tb
  • 企业所得税弥补亏损年限
  • 出口退税附加税什么时候缴纳
  • 牵引车需要交车船税吗
  • 印花税计税金额怎么算
  • 出口样品可以申请专票吗
  • 借库存商品贷生产成本这笔会计分录反映的经济业务是
  • 企业所得税资产总额怎么算出来的呢
  • 超市收取的返利的税收处理
  • 报销抵冲银行日记帐要怎么入帐?
  • 工资退税手续需要多久
  • 税务没有核定印花税
  • 劳务外包收入公式是什么
  • 新版edge浏览器文字不显示
  • 银行手续费填在汇算清缴的哪个表
  • macbook显示隐藏文件
  • 检验费用会计分录
  • win10资源管理器在哪里找
  • pc direct
  • 000.exe病毒
  • wordpress测试
  • 开发票金额少于付款金额差额怎么入账?
  • 实收资本与注册资本之间的关系
  • uniapp传值
  • 股东个人消费如何合理报销
  • javaweb学生信息管理系统idea
  • ValueError: The device should not be ‘gpu‘, since PaddlePaddle is not compiled with CUDA问题解决(Paddle)
  • php 面向对象
  • 企业所得税包含在税金及附加里面吗
  • 结转增值税的账务处理
  • 退货的会计处理分录
  • 扶贫资金入股问题
  • wordpress提示插件
  • 资产负债表不能有负数吗
  • 零申报年报需要哪些表格
  • 期初库存和期末库存可以修改吗
  • PostgreSQL中的OID和XID 说明
  • 劳务公司给包工头转账交税吗
  • 企业没有工会的需要计提嘛
  • 个人工资怎么合理避税有什么方法
  • 城建税教育费附加什么时候交
  • 开服务业发票要交印花税吗?
  • 是不是根据营业执照查询
  • 会计政策变更的追溯调整法和未来适用法
  • sql语句中截取字符串
  • macos sierra版本10.12.6升级
  • centos7关闭kdump
  • win7任务管理器快捷键ctrl+alt+
  • win xp怎么样
  • 在linux2.4.0版本中
  • xp事件管理器
  • macos的磁盘
  • windows xp系
  • win8删文件需要权限怎么弄
  • win10登陆背景修改器
  • 最新版win10版本号
  • linux ssh key登录
  • python 压缩gz
  • shell 字符串trim
  • python爬虫过程
  • unity mesh bounds
  • jquery移动div
  • javascriptcsdn
  • js div拖动
  • javascript基础
  • 软件和集成电路企业税收优惠
  • 税务系统绩效管理首要目标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设