位置: IT常识 - 正文

React 高阶组件(react高阶组件)

编辑:rootadmin
高阶组件(HOC) 高阶组件(Heigher Order Component)也被称之为高阶函数,容器组件,高阶组件是类组件编程中的一种重要代码逻辑复用技巧。 高阶组件的语法 接收一个React组件作为入参,经过修饰,最后返回一个新的React组件,所以这个入参的React组件被称之为“UI组件”; ... 高阶组件(HOC)

推荐整理分享React 高阶组件(react高阶组件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react 高阶组件相同逻辑复用,react 高阶组件hoc,react高阶组件,react 高阶组件应用场景,react 高阶组件hoc,react高阶组件和普通组件的区别,react高阶组件和普通组件的区别,react高阶组件,内容如对您有帮助,希望把文章链接给更多的朋友!

React 高阶组件(react高阶组件)

高阶组件(Heigher Order Component)也被称之为高阶函数,容器组件,高阶组件是类组件编程中的一种重要代码逻辑复用技巧。

高阶组件的语法

接收一个React组件作为入参,经过修饰,最后返回一个新的React组件,所以这个入参的React组件被称之为“UI组件”;这个高阶组件被称之为“容器组件”。注意:在高阶组件中无论怎么对UI组件进行修改都不能修改。所以高阶组件是一种纯函数。

什么是纯函数

入参不能被修改,并且相同入参返回的是相同结果的函数,都叫做纯函数。

解决高阶组件导致属性丢失

封装自定义高阶组件时,如果props属性丢失,可以使用属性穿透(属性继承)解决

如何使用高阶组件类组件可以使用Hoc(page)或者装饰器语法@page函数组件只能使用Hoc(page)组件和 高阶组件的区别组件和 高阶组件的区别组件是将props转换为UI高阶组件是将组件转换另一个组件高阶组件的使用场景在路由中withRounter(),在转台管理中content(),在Mobx中有inject()或者observer()使用高阶组件给页码添加公共的视图结构,比如水印等。使用高阶组件可以注入全局的公共方法,比如弹窗,校验等。使用高阶组件可以添加相同的业务功能,比如DOM功能,BON功能,订阅功能等。使用高阶组件可以实现权限设计。 import { PureComponent } from "react"; //高阶组件权限设计 function studay (WrappedComponent){ // return class extends PureComponent{ // render(){ // return( // <> // <nav>导航栏</nav> // <WrappedComponent {...this.props}></WrappedComponent> // <footer>底部导航栏</footer> // </> // ) // } // } return props =>( <> <nav>导航栏</nav> <WrappedComponent {...props}/> <footer>底部导航栏</footer> </> ) } // const page = (arr) =>{ console.log('权限',arr); //状态管理中的角色信息 const roles = ['user'] const flag = roles.some(ele=>arr.includes(ele)) return WrappedComponent =>{ return props =>( <> {flag ? <WrappedComponent {...props}></WrappedComponent>: <h1>你的权限不足</h1>} </> ) } } //封装浏览器窗口标题 const title = title =>{ return Men => class extends PureComponent{ componentDidMount(){ document.title = title || '沐沐5' } render(){ return( <Men {...this.props}></Men> ) } } } //只有在class上才能使用装饰器语法 @page(['admin',]) @studay class A extends PureComponent{ render(){ console.log(this.props); return ( <> <h1>高阶组件</h1> </> ) } } export default A
本文链接地址:https://www.jiuchutong.com/zhishi/311669.html 转载请保留说明!

上一篇:总结帝国cms安装在二级目录步骤(帝国cms下载)

下一篇:Java 中九种 Map 的遍历方式,你一般用的是哪种呢?(java中map.entry)

  • excel中出身日期怎么操作(出身日期怎么算excel)

    excel中出身日期怎么操作(出身日期怎么算excel)

  • 支付宝aa收款钱去哪了(支付宝aa收款是什么,付款方有关系吗)

    支付宝aa收款钱去哪了(支付宝aa收款是什么,付款方有关系吗)

  • 荣耀x10耳机孔在哪(荣耀x10耳机孔在哪个位置)

    荣耀x10耳机孔在哪(荣耀x10耳机孔在哪个位置)

  • 荣耀x10max如何隐藏相册(荣耀x10max应用怎么隐藏)

    荣耀x10max如何隐藏相册(荣耀x10max应用怎么隐藏)

  • 交换机有哪几种模式(交换机有哪几种型号)

    交换机有哪几种模式(交换机有哪几种型号)

  • WPS双线型边框线怎么设置(word双线型边框线)

    WPS双线型边框线怎么设置(word双线型边框线)

  • 电脑怎么把横着的照片竖过来(电脑怎么把横着打出来)

    电脑怎么把横着的照片竖过来(电脑怎么把横着打出来)

  • pdf能直接编辑吗(pdf上可以直接编辑吗)

    pdf能直接编辑吗(pdf上可以直接编辑吗)

  • 支付宝突然不计步数了(支付宝突然不计步数了小米手机)

    支付宝突然不计步数了(支付宝突然不计步数了小米手机)

  • 抖音设置黑名单对方知道吗(抖音设置黑名单后还可以看到我的视频吗)

    抖音设置黑名单对方知道吗(抖音设置黑名单后还可以看到我的视频吗)

  • 显示器ssusb接口是什么(显示器后面的ss usb)

    显示器ssusb接口是什么(显示器后面的ss usb)

  • 京东退货要先确认收货吗(京东退货要先确认收货会扣钱吗)

    京东退货要先确认收货吗(京东退货要先确认收货会扣钱吗)

  • 华为手机截图怎么截屏(华为手机截图怎么截)

    华为手机截图怎么截屏(华为手机截图怎么截)

  • 手机截图保存到哪里了(手机截图保存到哪了怎么查看)

    手机截图保存到哪里了(手机截图保存到哪了怎么查看)

  • 荣耀20青春版怎么显示网速(荣耀20青春版怎么连接u盘)

    荣耀20青春版怎么显示网速(荣耀20青春版怎么连接u盘)

  • 小米8se是锂电池吗(小米8se电池电压是几伏)

    小米8se是锂电池吗(小米8se电池电压是几伏)

  • 滴滴出行行程单在哪(滴滴出行行程单怎么找)

    滴滴出行行程单在哪(滴滴出行行程单怎么找)

  • 金立手机如何取消电话拦截(金立手机如何取消锁屏广告)

    金立手机如何取消电话拦截(金立手机如何取消锁屏广告)

  • 5g和4g有何不同(5g和4g的区别大吗)

    5g和4g有何不同(5g和4g的区别大吗)

  • 如何制作ps视频(怎么制作ps视频)

    如何制作ps视频(怎么制作ps视频)

  • 在快速启动中不再显示最近使用的文件(要求快速启动)

    在快速启动中不再显示最近使用的文件(要求快速启动)

  • Win7下6GB内存只显示3.25GB的解决办法(win76g内存只有3g可用)

    Win7下6GB内存只显示3.25GB的解决办法(win76g内存只有3g可用)

  • 使用c++onnxruntime部署yolov5模型并使用CUDA加速(超详细)(使用二氧化碳灭火器时人应该站在什么位置)

    使用c++onnxruntime部署yolov5模型并使用CUDA加速(超详细)(使用二氧化碳灭火器时人应该站在什么位置)

  • php中trim函数是什么?(php ltrim)

    php中trim函数是什么?(php ltrim)

  • 税务登记如何注销
  • 跨年增票能开红冲吗?
  • 受让应收账款的账务处理
  • 小规模纳税人加油发票可以抵扣吗
  • 员工辞退补偿金需要交个税吗
  • 劳务费计入职工薪酬吗
  • 增值税三级明细科目包括
  • 增值税进项加计扣除计入哪个科目
  • 增值税有留底怎么减少留底
  • 自然人税收管理系统换了电脑怎么恢复数据
  • 进口增值税可以抵税吗
  • 或有负债在报表附注哪里
  • 汇兑损益属于企业成本吗
  • 建筑施工企业会计制度
  • 外聘人员劳务费入什么科目
  • 偶然所得个税怎么计算公式
  • 原材料暂估少了如何调整
  • 多付银行承兑退回的会计分录怎么写?
  • 增值税专用发票抵扣期限
  • 农产品收购发票开错了
  • 自己生产的产品用于职工福利
  • 高新技术企业一定是先进制造业吗
  • 购入但未开始使用的房产
  • 个人可以开技术服务费发票税率多少
  • 企事业承包承租经营所得税率是多少
  • 发票过期一年可以用吗
  • 酒店服务行业电费发票怎么开
  • 以前年度多列的费用今年交回
  • 个体工商户做账可以做工资吗
  • 扶贫贷款主要指
  • 进料进口
  • 折旧可以计入主体成本吗
  • win10如何关闭windows安全中心图标
  • window10设置wifi热点
  • thinkphp yii
  • 销售补差是怎么算的
  • 利息费用可扣除什么
  • 期间费用的会计科目
  • 履约保证金和质保金可以一起收取吗
  • 无形资产处置计入哪里
  • 增值税常见账务处理方法
  • 董事费如何计算个人所得税
  • node与nodejs
  • webgl1.0
  • JavaScript数组(四):判断数组相等的4种方法
  • 代理业务怎么记账
  • 进项税可以跨年结转吗
  • 企业年报网上申报入口贵州
  • 认缴出资和注册资本
  • 有销项无进项怎么处理
  • 农产品增值税免税发票怎么抵扣
  • 如何在Access中设置有效性规则必须大于等于0
  • 平台的分销佣金是多少
  • 什么是销项税额转出
  • 处理废旧材料会计分录
  • 新成立公司如何报税
  • 砖厂会计账务处理流程图
  • 开办费的最新账务处理2021
  • 农产品投入产出法怎么计算
  • 红字更正法和红字冲销
  • 辞退福利什么时候确认
  • 新成立公司申报个税流程
  • 财经网课 app
  • 出纳怎么做账
  • mysql存储过程中调用存储过程
  • 联想Thinkpad怎么进入安全模式
  • xp桌面底部任务栏不见了
  • adb mac安装
  • linux系统文件在哪个目录
  • linux保存配置文件
  • jqueryon事件
  • 查看分区文件格式
  • javascript用处
  • jQuery Validation Plugin验证插件手动验证
  • jquery的实现原理
  • document对象的常用方法
  • js常用方法总结
  • 关注龙江医保
  • 在山东省一个月水费大概多少
  • 什么情况下要交印花税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设