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

  • 微信怎么修改聊天背景图(微信怎么修改聊天框)

    微信怎么修改聊天背景图(微信怎么修改聊天框)

  • 小米9无线充电怎么打开呢(小米9无线充电线圈能拆掉吗)

    小米9无线充电怎么打开呢(小米9无线充电线圈能拆掉吗)

  • 该程序可能导致微信变慢被终止(该程序可能导致的问题)

    该程序可能导致微信变慢被终止(该程序可能导致的问题)

  • 华为荣耀v20有语音唤醒功能吗(华为荣耀v20语音助手怎么设置快捷键)

    华为荣耀v20有语音唤醒功能吗(华为荣耀v20语音助手怎么设置快捷键)

  • 微信图片编辑文字大小怎么调整(微信图片编辑文字字体怎么调整)

    微信图片编辑文字大小怎么调整(微信图片编辑文字字体怎么调整)

  • 苹果平板没有电池健康(苹果平板没有电脑如何刷机)

    苹果平板没有电池健康(苹果平板没有电脑如何刷机)

  • 小米10充满电怎么没有提示(小米充满电怎么自动断电)

    小米10充满电怎么没有提示(小米充满电怎么自动断电)

  • p30可以当空调遥控器用吗(p30怎么当空调遥控器)

    p30可以当空调遥控器用吗(p30怎么当空调遥控器)

  • 手机如何剪辑视频不要的部分(手机如何剪辑视频中不好的片段)

    手机如何剪辑视频不要的部分(手机如何剪辑视频中不好的片段)

  • 苹果手机pp助手显示网络异常(苹果手机pp助手怎么卸载不了)

    苹果手机pp助手显示网络异常(苹果手机pp助手怎么卸载不了)

  • 小米10手机首次怎么充电(小米手机首次激活日期查询)

    小米10手机首次怎么充电(小米手机首次激活日期查询)

  • 苹果怎么应用分身QQ(苹果怎么应用分屏)

    苹果怎么应用分身QQ(苹果怎么应用分屏)

  • docker的真正作用(docker的作用)

    docker的真正作用(docker的作用)

  • 小爱同学怎么连接第二个手机(小爱同学怎么连接wifi)

    小爱同学怎么连接第二个手机(小爱同学怎么连接wifi)

  • 微信朋友圈视频号什么意思(微信朋友圈视频最多几秒)

    微信朋友圈视频号什么意思(微信朋友圈视频最多几秒)

  • ios13可以关闭横条吗(苹果13关闭横屏怎么设置方法)

    ios13可以关闭横条吗(苹果13关闭横屏怎么设置方法)

  • 拼多多我的现金在哪里(拼多多我的现金提现是真的吗)

    拼多多我的现金在哪里(拼多多我的现金提现是真的吗)

  • 奇异果能看电视频道吗(奇异果能看电视剧吗)

    奇异果能看电视频道吗(奇异果能看电视剧吗)

  • 蚂蚁森林怎么加好友(蚂蚁森林怎么加不了好友)

    蚂蚁森林怎么加好友(蚂蚁森林怎么加不了好友)

  • 滴滴行驶证照片怎么拍(滴滴车主注册总是行驶证图片不规范怎么办)

    滴滴行驶证照片怎么拍(滴滴车主注册总是行驶证图片不规范怎么办)

  • 失效的qq文件怎么恢复(qq失效的文件能找回吗)

    失效的qq文件怎么恢复(qq失效的文件能找回吗)

  • 如何用你喜欢的照片作为你的开机密码?(怎么利用喜欢自己的人)

    如何用你喜欢的照片作为你的开机密码?(怎么利用喜欢自己的人)

  • 口腔发炎怎么办(口腔发炎怎么办最快最有效的方法)

    口腔发炎怎么办(口腔发炎怎么办最快最有效的方法)

  • 帝国cms开源建站用授权吗(帝国cms视频教程)

    帝国cms开源建站用授权吗(帝国cms视频教程)

  • 出口货物备案单证目录在哪里
  • 一般纳税人增值税优惠政策2023
  • 定额的个体户需要汇算清缴吗
  • 打印的电子发票需要盖章么
  • 个税申报填写的工资是应发还是实发
  • 工商年报的应交税费包含哪些
  • 企业增加注册资本需要缴纳什么税
  • 复式记账法哪本书提到过?
  • 科技成果转化奖励
  • 公司向股东借款计入什么科目
  • 个体户要交国税和地税吗
  • 个人与个人之间转账有限额吗
  • 2018年老项目应该如何交税?
  • 纳税人为风险纳税人
  • 哪些发票可以抵扣成本
  • 会计经验要求怎么填
  • 国税发200931号文解读
  • 以公司名义办宽带怎么办
  • 高速公路通行费发票怎么开
  • 员工被单位罚款须要问单位要收据吗
  • 不适用研究开发费用税前加计扣除政策的有
  • 个人转账至公司要交税吗
  • 租赁收入账务处理
  • 在途物资期末借方
  • 个人转让怎么写
  • 负债清偿损益明细表可以0报么
  • 一寸照片尺寸是几乘几
  • win7不能进系统怎么办
  • 律师费能计入办公费用吗
  • 腾讯电脑管家中蓝牙在哪
  • 土建工程成本核算怎么做
  • 电脑每次开机都要选择系统怎么办
  • 建筑劳务公司计提工资怎么做账
  • php响应时间
  • vue可视化面板怎么打开
  • 股东退股怎么分钱
  • 纳税人转让旧房及建筑物
  • 房产前期开发
  • 在收付实现制下,预付的下季度报刊杂志订阅费
  • php代码提示
  • 建筑业红冲发票如何处理
  • php控制结构
  • printfi
  • 用盈余公积弥补亏损会影响所有者权益吗
  • 集团公司内部结算
  • 民营医疗机构是指哪些
  • 加计抵减退税的会计分录
  • 搜索站内内容
  • 购买债券的利息会计分录
  • 餐饮行业经营模式有哪些
  • 企业会计准则是属于什么
  • 分组 sql
  • 定期定额户不能用专票
  • 收据作为原始凭证的依据
  • 一次性医疗补助金怎么计算
  • 收到三代手续费如何入账
  • 物业费是否需要物价局备案
  • 小规模纳税人开具的农产品普通发票
  • 存货跌价准备冲减成本
  • 职工福利费的好处
  • windowsxp如何清理磁盘
  • ubuntu系统中如何安装WiFi驱动
  • 重装系统 xp
  • 修改虚拟机中的用户名
  • win7开机zyufs7
  • mount挂载文件系统
  • CCMoveBy与CCMoveTo
  • coco触控
  • Unity3D游戏开发培训课程大纲
  • 关于ie浏览器下面说法正确的是
  • jquery中的siblings方法
  • java urlencode如何使用
  • android客户端与服务器通信
  • javascript构造函数创建对象
  • 15个值得开发人是谁
  • 广东增值税电子普通发票怎么开
  • 百旺税控密码忘记了怎么找回
  • 税控盘开的电子票怎么发送给人
  • 煤炭限产是利好还是利空
  • 关于啤酒包装物押金,下列正确的是( )
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设