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

  • 锁屏快捷键电脑(锁屏快捷键)(小米锁屏快捷键怎么设置)

    锁屏快捷键电脑(锁屏快捷键)(小米锁屏快捷键怎么设置)

  • 怎样查出qq匿名提问是谁发的(怎样查出qq匿名提问)

    怎样查出qq匿名提问是谁发的(怎样查出qq匿名提问)

  • 如何彻底关闭qq看点(如何彻底关闭qq音乐)

    如何彻底关闭qq看点(如何彻底关闭qq音乐)

  • cpu中间的贴纸要拿掉吗(cpu中间的贴纸要贴吗)

    cpu中间的贴纸要拿掉吗(cpu中间的贴纸要贴吗)

  • 苹果7p发烫和电池有关系吗(苹果7发热跟电池有关系吗)

    苹果7p发烫和电池有关系吗(苹果7发热跟电池有关系吗)

  • 固态硬盘写入速度慢(固态硬盘写入速度不稳定怎么回事)

    固态硬盘写入速度慢(固态硬盘写入速度不稳定怎么回事)

  • 微信被对方删除了还能不能收钱(微信被对方删除为什么还能发消息)

    微信被对方删除了还能不能收钱(微信被对方删除为什么还能发消息)

  • 申请第二个微信号不用手机号可以吗(同一台手机怎么申请第二个微信)

    申请第二个微信号不用手机号可以吗(同一台手机怎么申请第二个微信)

  • 京东优选和京东的区别(京东优选和京东云选的区别)

    京东优选和京东的区别(京东优选和京东云选的区别)

  • 华为荣耀8c怎么隐藏应用(华为荣耀8c怎么升级鸿蒙系统)

    华为荣耀8c怎么隐藏应用(华为荣耀8c怎么升级鸿蒙系统)

  • 流量校准失败怎么办(手机卡流量校准失败)

    流量校准失败怎么办(手机卡流量校准失败)

  • 为什么点情侣空间没反应(为什么情侣空间的标识不显示)

    为什么点情侣空间没反应(为什么情侣空间的标识不显示)

  • 三星s8支持控制空调吗(三星s8支持控制面板吗)

    三星s8支持控制空调吗(三星s8支持控制面板吗)

  • 天气冷苹果手机耗电快怎么办(天气冷苹果手机耗电快)

    天气冷苹果手机耗电快怎么办(天气冷苹果手机耗电快)

  • 怎么把百度视频保存到相册(怎么把百度视频里的音乐提取出来)

    怎么把百度视频保存到相册(怎么把百度视频里的音乐提取出来)

  • 手机相册怎么不显示照片(手机相册怎么不显示视频)

    手机相册怎么不显示照片(手机相册怎么不显示视频)

  • 滴滴投诉司机他知道吗(滴滴投诉司机他能知道吗)

    滴滴投诉司机他知道吗(滴滴投诉司机他能知道吗)

  • 拼多多怎么下单留言(拼多多怎么下单多件商品)

    拼多多怎么下单留言(拼多多怎么下单多件商品)

  • 操作系统是一组什么程序(一个操作系统都应该有哪些基本组成?)

    操作系统是一组什么程序(一个操作系统都应该有哪些基本组成?)

  • 怎么把视频里的声音去掉(怎么把视频里的音乐提取成mp3)

    怎么把视频里的声音去掉(怎么把视频里的音乐提取成mp3)

  • 华为p30怎么用视频(华为p30怎么用视频做壁纸)

    华为p30怎么用视频(华为p30怎么用视频做壁纸)

  • mac系统怎么设置搜狗输入法为默认输入法?(mac系统怎么设置字体大小)

    mac系统怎么设置搜狗输入法为默认输入法?(mac系统怎么设置字体大小)

  • ipados16新功能详细介绍(ipad os 16)

    ipados16新功能详细介绍(ipad os 16)

  • 仙岩寺中的升仙桥,韩国曹溪山道立公园 (© Aaron Choi/Getty Images)(仙岩寺庙)

    仙岩寺中的升仙桥,韩国曹溪山道立公园 (© Aaron Choi/Getty Images)(仙岩寺庙)

  • 福建国税网上办税平台登录
  • 财税新闻稿
  • 增值税是什么意思
  • 工程施工的间接费用怎么结转
  • 未分配利润为负数可以提取盈余公积吗
  • 固定资产怎么确定是否减值
  • 汽车装饰属于什么服务
  • 商家为什么要做广告?
  • 个税申报初始化密码
  • 出口退税发票未稽核可以申报退税吗
  • 能从科目余额表入账吗
  • 接受捐赠的固定资产计入什么科目
  • 房屋出租需要缴纳个人所得税吗
  • 出纳日常工作内容总结
  • 个体户如何做零申报
  • 嵌入式软件收入算制造业收入吗
  • 平销返利怎么开票入账
  • 一般纳税人附加税减免
  • 进口原木的增值税率
  • 员工赔偿款需要交个税么
  • 已知不含税金额和增值税如何计算税率
  • 文化公司发展战略
  • 利润表中的销售收入
  • 计提本月城市维护建设税,教育费附加500元
  • 为职工缴纳的意外保险费用
  • 小规模纳税企业在应交增值税明细科目
  • 研发费用的归集范围
  • 对于目标文件系统文件过大无法删除
  • php使用js
  • 酒店开业请吃饭敬酒怎么说
  • vpengine.exe进程
  • php后端技术栈
  • 苹果a1530是什么
  • 如何直接访问ip地址
  • PHP:realpath_cache_size()的用法_Filesystem函数
  • 如何增加税务稽查信息
  • 短期借款帐务处理
  • 国家规定发票多久之内可以开
  • laravel 5.4中实现无限级分类的方法示例
  • 应收账款的账期是什么意思
  • 悬崖徒步
  • vue-introjs
  • chattr i
  • linux部署tomcat的war包
  • 成品油发票如何下载库存
  • 固定资产原值怎么确定
  • 发票查询密码区空白怎么回事
  • 资产负债表的负债项目显示了企业所负担债务的
  • mongodb主键
  • 增值税无票收入负数预警值
  • 银行汇票用什么会计分录
  • 哪些合同不用计提印花税
  • 中小企业财务核算的重要性
  • 自产产品对外捐赠为什么不确认收入
  • 销售收入怎么入账
  • 幼儿园账务处理实务
  • 过期产品进项税用转出吗
  • 进口产品内销如何交税
  • 管家婆进货单科目名称怎么录入?
  • 如果找国外客户
  • 营业外支出可以抵扣进项税吗
  • 记账凭证的项目有哪些
  • 存货期末报表列示
  • 材料报废 开什么发票
  • sql存储过程实例详解
  • windows sfc命令
  • 品牌笔记本电脑排行
  • win7修改sid
  • xp硬盘安装win7系统教程
  • sqlmangr.exe - sqlmangr是什么进程 有什么用
  • 重装win7系统后鼠标键盘不能用
  • Windows Server 8 ADDS轻松几步搞定密码个性化设置
  • nodejs的require
  • 实现原生的ajax
  • 用python做冒泡排序
  • js 浮点数运算
  • 怎么优化项目
  • unity入门教学
  • 怎么在移动官网上复机
  • 境外取得收入申报期限
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设