位置: 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)

  • 惠普打印机怎么联网连接wifi(惠普打印机怎么打印)

    惠普打印机怎么联网连接wifi(惠普打印机怎么打印)

  • 荣耀30s怎么开空调(荣耀30怎么用手机开空调)

    荣耀30s怎么开空调(荣耀30怎么用手机开空调)

  • 计算器的日期键是什么(计算器日期键是什么字母)

    计算器的日期键是什么(计算器日期键是什么字母)

  • 启动项命令是什么(启动项 运行)

    启动项命令是什么(启动项 运行)

  • 拼多多商品下架重新上架销量还在吗(拼多多商品下架了可以申请退款吗)

    拼多多商品下架重新上架销量还在吗(拼多多商品下架了可以申请退款吗)

  • 美颜相机拍视频怎么没有声音(美颜相机拍视频会外泄吗)

    美颜相机拍视频怎么没有声音(美颜相机拍视频会外泄吗)

  • 给拉黑的人发消息他能收到吗(给拉黑的人发消息怎么发)

    给拉黑的人发消息他能收到吗(给拉黑的人发消息怎么发)

  • 开启悬浮窗为什么没出来(开启悬浮窗为什么打不开)

    开启悬浮窗为什么没出来(开启悬浮窗为什么打不开)

  • 路由器上的wps按钮在哪里(路由器上的wps按了会怎么样)

    路由器上的wps按钮在哪里(路由器上的wps按了会怎么样)

  • 小红书能看到访客记录吗(小红书能看到访客足迹吗)

    小红书能看到访客记录吗(小红书能看到访客足迹吗)

  • 5g的下载速度是多少(5g的下载速度是多少兆)

    5g的下载速度是多少(5g的下载速度是多少兆)

  • oppo关闭通话黑屏(oppo通话黑名单怎么解除)

    oppo关闭通话黑屏(oppo通话黑名单怎么解除)

  • 美团为什么不能切换定位城市(美团为什么不能找人代付)

    美团为什么不能切换定位城市(美团为什么不能找人代付)

  • 微信与手机号如何解绑(微信与手机号如何绑定)

    微信与手机号如何解绑(微信与手机号如何绑定)

  • i51035g4性能(i51035g4是低端处理器吗)

    i51035g4性能(i51035g4是低端处理器吗)

  • 小米e32c和e32a啥区别(小米e32c和e32s有什么区别哪个好)

    小米e32c和e32a啥区别(小米e32c和e32s有什么区别哪个好)

  • 外接显示器分辨率调不上去(外接显示器分辨率调不了)

    外接显示器分辨率调不上去(外接显示器分辨率调不了)

  • 苹果相机怎么关闭反向(苹果相机怎么关闭夜间模式)

    苹果相机怎么关闭反向(苹果相机怎么关闭夜间模式)

  • vsco色温在哪(vsco色温在哪里调)

    vsco色温在哪(vsco色温在哪里调)

  • 苹果可以隐藏软件吗(苹果可以隐藏软件的计算器)

    苹果可以隐藏软件吗(苹果可以隐藏软件的计算器)

  • 如何让b站锁屏也能播放(如何让b站锁屏也能播放视频)

    如何让b站锁屏也能播放(如何让b站锁屏也能播放视频)

  • 快手买衣服怎么退货(快手买衣服怎么查订单)

    快手买衣服怎么退货(快手买衣服怎么查订单)

  • 什么是真无线(什么是真无线蓝牙耳机主动降噪)

    什么是真无线(什么是真无线蓝牙耳机主动降噪)

  • 代销和委托代销区别
  • 什么是企业的应纳税额
  • 与企业日常无关的政府补服属于利得吗
  • 审计的基本流程是什么
  • 计提所得税是在结转损益之前还是之后
  • 企业递延所得税费用的计算公式
  • 开票服务费全额抵扣分录
  • 手撕定额发票不是免税怎么还报税
  • 公共部门管理中具有哪些作用
  • 单位和职工个人缴费基数如何确定的规定
  • 预收款项增值税
  • 车间领用材料应填制什么凭证
  • 银行汇票使用流程举例
  • 应付账款是负数怎么回事
  • 企业所得税弥补亏损怎么算
  • 医院收到卫生局补助会计分录怎么写
  • 增值税普通发票需要交税吗
  • 民营医院增值税政策
  • 缴纳的住房公积金计入什么科目
  • 药品底价高开票什么意思
  • 应付职工薪酬借方和贷方
  • 固定资产已入库款项已付次月开发票何时记提折旧
  • 钢材增值税发票
  • 货代发票税率是多少
  • 小规模纳税人应交增值税怎么算
  • 评估的房产如何入账
  • 未开票的货款记什么科目
  • 维护费抵减增值税的记账凭证
  • 基准收益率是
  • 代理公司变更地址多少钱
  • 扩展组件可以删除吗
  • 收到提供劳务的收入
  • 数据库管理框架
  • 卡拉公路
  • thinkphp update方法
  • 发放工资时扣除的保险怎么做
  • orb特征点匹配
  • 前端开发配置
  • Selenium.Webdriver最新语法教程(附Chrome实例演示)
  • 蓝桥杯大赛2021
  • 电商后台管理系统简介
  • 企业计提的医疗保险属于企业设定提存计划的内容
  • 公司购入车辆的增值税怎么算
  • 发票验真伪需要盖章吗
  • 加计扣除进项税额是什么意思
  • 银行承兑汇票包括支票吗
  • 上年度没有计提企业所得税,今年怎么做分录
  • 联营单位投入的款项
  • 现金存入银行的会计凭证
  • 计提个人所得税会计分录怎么做账
  • 税务突然查账
  • 未开票收入下月开票会计分录
  • 税控盘的会计分录怎么做
  • 公司活动费用分录
  • 回收锯末木屑价格
  • mysql 更改密码
  • mysql数据库备份方法
  • ubuntu20设置wifi
  • win10怎么关闭securboot
  • 地图是英语如何改为中文
  • macbook imessage
  • linux windows转linux
  • 你将会收藏
  • 判断输入的日期是一年中第几天
  • jquery width
  • 手机背光面板
  • 究竟什么是幸福
  • js校验姓名
  • js 函数写法
  • javascript的
  • ListView.setOnItemClickListener不起作用的原因
  • 套接字java
  • python解译器
  • js从数组中选出最大的三个数
  • 吉林省残疾人保障金减免政策
  • 专票怎么查询已开记录
  • 税务蓝和电信蓝一样吗
  • 小规模开票税金怎么算
  • 智能财税证书含金量
  • 河南省纳税服务平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设