位置: IT常识 - 正文

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

发布时间:2024-01-27
高阶组件(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)

  • wap是什么意思(rajwap是什么意思)

    wap是什么意思(rajwap是什么意思)

  • 快充和闪充的区别(快充和闪充的区别是线还是充电器)

    快充和闪充的区别(快充和闪充的区别是线还是充电器)

  • 华为P30打字手机振动怎么取消(华为p30打不了字)

    华为P30打字手机振动怎么取消(华为p30打不了字)

  • 苹果手表充电显示白苹果(苹果手表充电显示弯曲的线)

    苹果手表充电显示白苹果(苹果手表充电显示弯曲的线)

  • 1660和1660ti差多少(1660和1660ti的差距很大吗)

    1660和1660ti差多少(1660和1660ti的差距很大吗)

  • 苹果手机灯光提示在哪里设置(苹果手机灯光提示在哪里关)

    苹果手机灯光提示在哪里设置(苹果手机灯光提示在哪里关)

  • word一竖列怎么变成一行(word竖列怎么选中)

    word一竖列怎么变成一行(word竖列怎么选中)

  • iphone已请求更新没反应(iphone已请求更新是什么意思)

    iphone已请求更新没反应(iphone已请求更新是什么意思)

  • 抖音怎么取消点赞过的视频(抖音怎么取消点赞推荐)

    抖音怎么取消点赞过的视频(抖音怎么取消点赞推荐)

  • fbx格式用什么软件打开(fbx格式用什么软件生成)

    fbx格式用什么软件打开(fbx格式用什么软件生成)

  • 流量卡充值之后上不了网要怎么解决(流量卡充值之后不能用怎么办)

    流量卡充值之后上不了网要怎么解决(流量卡充值之后不能用怎么办)

  • 7p后盖氧化点可以去除嘛(iphone7p后壳氧化修复)

    7p后盖氧化点可以去除嘛(iphone7p后壳氧化修复)

  • 帮助别人解封微信有什么问题(帮助别人解封微信号输入卡号安全么)

    帮助别人解封微信有什么问题(帮助别人解封微信号输入卡号安全么)

  • 苹果qq音乐被别的程序中断(苹果qq音乐不受别的应用影响?)

    苹果qq音乐被别的程序中断(苹果qq音乐不受别的应用影响?)

  • 条件性呼叫转移已启动是什么意思(条件性呼叫转移已启动)

    条件性呼叫转移已启动是什么意思(条件性呼叫转移已启动)

  • 苹果手机照片没有备份可以找回吗?(苹果手机照片没有感叹号)

    苹果手机照片没有备份可以找回吗?(苹果手机照片没有感叹号)

  • 内存条插槽坏了怎么办(主板内存条插槽坏了)

    内存条插槽坏了怎么办(主板内存条插槽坏了)

  • 电脑上除以号怎么打(电脑除以号怎么弄)

    电脑上除以号怎么打(电脑除以号怎么弄)

  • 笔记本sd卡槽有什么用(笔记本sd卡槽有哪些)

    笔记本sd卡槽有什么用(笔记本sd卡槽有哪些)

  • 荣耀手环3怎么关机(荣耀手环3怎么连接手机)

    荣耀手环3怎么关机(荣耀手环3怎么连接手机)

  • 快手青少年模式怎么开(快手青少年模式忘记密码怎么解除)

    快手青少年模式怎么开(快手青少年模式忘记密码怎么解除)

  • 充电宝旗舰版和标准版的区别(充电宝旗舰版和升级版有什么区别)

    充电宝旗舰版和标准版的区别(充电宝旗舰版和升级版有什么区别)

  • 小米9如何无线充电(小米9如何无线投屏)

    小米9如何无线充电(小米9如何无线投屏)

  • 魅族16怎么强制关机(魅族16怎么强制重启手机)

    魅族16怎么强制关机(魅族16怎么强制重启手机)

  • 小米手环3怎么重启(小米手环3怎么绑定手机)

    小米手环3怎么重启(小米手环3怎么绑定手机)

  • 巴伐利亚阿尔卑斯山脉中的米滕瓦尔德小屋,德国 (© Sebastian Frölich/Offset by Shutterstock)(巴伐利亚知乎)

    巴伐利亚阿尔卑斯山脉中的米滕瓦尔德小屋,德国 (© Sebastian Frölich/Offset by Shutterstock)(巴伐利亚知乎)

  • Repvgg详解及其实现(pytorch)(rep p)

    Repvgg详解及其实现(pytorch)(rep p)

  • day14-HTTP01

    day14-HTTP01

  • 只有增值税专用发票才能抵扣进项吗
  • 什么是税收收入效应
  • 房产公司结转收入条件
  • 怎么恢复自然人个人信息
  • 暂估成本跨年后收到票汇算清缴
  • 买车哪些费用不该交
  • 企业所得税如何抵扣
  • 收据四联分别叫什么
  • 房租押金不退如何
  • 普通发票不能抵扣进项税额怎么做账
  • 民办非盈利企业注册
  • 收到运费发票的会计分录
  • 财务收入支出明细表模板
  • 产品检测费用计入什么科目
  • 建筑业分包抵扣
  • 民办非企业单位属于什么类型
  • 当月计提当月缴纳的增值税还用结转吗
  • 个体餐饮店交税吗
  • 政策性减免单位社保
  • 银行承兑汇票接收
  • 招标公司返回的钱怎么算
  • 公司设备租赁给客户怎么做科目
  • 公司费用高好还是低好
  • 计提税金怎么提
  • 打开浏览器时间长
  • deldir.exe是什么
  • windows11怎么设置锁屏时间
  • 固定资产抵债交不交增值税
  • 如何进行抵债资金管理
  • 银行的抵债资产有几种处置办法
  • 业务招待费有
  • 在建工程转无形资产 会计准则
  • 在收付实现制下,预付的下季度报刊杂志订阅费
  • php实现验证码
  • 分页显示怎么实现
  • centos php7.4
  • jquery还用吗2020
  • 文心一言 VS ChatGPT
  • 微信多开使用方法
  • 长期借款的核算分为哪三个阶段
  • 工资如何记账
  • 商业收入税收怎么收费
  • 移动平均加权法怎么算
  • 公司 股东 变更
  • 单位发放职工2000元慰问金申请怎么写
  • 企业注销留抵税额怎么处理 最新
  • 半成品是指正在各生产阶段加工的产品
  • 支付的劳务派遣服务费计入什么科目
  • 预付账款借方如何结转
  • 非流动资产处置利得计入什么科目
  • 商标是无形资产还是商誉
  • 不动产经营租赁属于什么服务
  • 搭赠商品如何开票
  • sql 清除日志
  • win8打开屏幕键盘
  • win8.1怎么升级到win11
  • WIN10系统怎么删除3Dmax
  • 深入解析linux内核
  • windows xp系
  • linux虚拟机怎么调出命令行
  • mxtask.exe - mxtask是什么进程文件 有什么用
  • win8电脑d盘不见了怎么恢复
  • win8找不到恢复环境怎么恢复出厂设置
  • win8图片查看器无法打开图片内存不足
  • win10无法安装无线显示器
  • linux进程的环境变量
  • win10 20h2怎么更新
  • win10正式版发布时间
  • cocos2dx怎么读
  • unity3d跑酷游戏推荐
  • 安全模式安卓
  • python制作gui
  • android动画种类
  • document对象常用方法
  • 服务端测试是什么意思
  • 落实落地是什么意思
  • 税控盘时钟异常去政务大厅那个窗口办理
  • 全电发票
  • 天津税务查询电话
  • 湖南耕地占用税标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号