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

  • ios15小圆点在哪设置(ios小圆点在哪设置里面的大小)

    ios15小圆点在哪设置(ios小圆点在哪设置里面的大小)

  • 手机知乎怎么发帖子(手机知乎怎么发视频文章)

    手机知乎怎么发帖子(手机知乎怎么发视频文章)

  • Redmi K30 Pro有环绕天线吗(redmi k30 pro自带贴膜吗)

    Redmi K30 Pro有环绕天线吗(redmi k30 pro自带贴膜吗)

  • 华为手机是什么系统呢(华为手机是什么处理器哪款最好用)

    华为手机是什么系统呢(华为手机是什么处理器哪款最好用)

  • 小米长按翻译怎么设置(小米 长按翻译)

    小米长按翻译怎么设置(小米 长按翻译)

  • ipadmini5长和宽(ipadmini5长和宽多少)

    ipadmini5长和宽(ipadmini5长和宽多少)

  • 美团超值换购什么意思(美团的超值换购是添加东西吗)

    美团超值换购什么意思(美团的超值换购是添加东西吗)

  • 华为mate30pro热点在哪里(华为mate30Pro热点怎么设置一人)

    华为mate30pro热点在哪里(华为mate30Pro热点怎么设置一人)

  • iphonese2是高通基带吗(iphonese2什么芯片)

    iphonese2是高通基带吗(iphonese2什么芯片)

  • 华为p20红外线功能怎么开启(华为p20红外线功能)

    华为p20红外线功能怎么开启(华为p20红外线功能)

  • cpu虚焊有什么表现(cpu虚焊问题大吗)

    cpu虚焊有什么表现(cpu虚焊问题大吗)

  • 网卡实现的主要功能在哪一层(网卡实现的主要功能包括)

    网卡实现的主要功能在哪一层(网卡实现的主要功能包括)

  • 怎么查防伪码扫一扫(怎么查防伪码扫过的东西)

    怎么查防伪码扫一扫(怎么查防伪码扫过的东西)

  • 华为手机桌面显示一半怎么办(华为手机桌面显示圆圈如何取消)

    华为手机桌面显示一半怎么办(华为手机桌面显示圆圈如何取消)

  • 超视网膜和liquid区别(超视网膜和liquid视网膜)

    超视网膜和liquid区别(超视网膜和liquid视网膜)

  • 华为nova5i如何分屏(华为nova5i如何分身)

    华为nova5i如何分屏(华为nova5i如何分身)

  • 误卸载了微信怎么恢复(不小心卸载了微信)

    误卸载了微信怎么恢复(不小心卸载了微信)

  • 微信横屏模式干嘛的(微信的横屏模式是干嘛的)

    微信横屏模式干嘛的(微信的横屏模式是干嘛的)

  • 抖音收到的小礼物怎么对换(抖音收到小礼物多少钱)

    抖音收到的小礼物怎么对换(抖音收到小礼物多少钱)

  • ps把图片变成黑白线条(ps图片变成黑白了怎么恢复)

    ps把图片变成黑白线条(ps图片变成黑白了怎么恢复)

  • 耳机软塞掉了怎么补救(耳机软塞掉了怎么装回去)

    耳机软塞掉了怎么补救(耳机软塞掉了怎么装回去)

  • 为什么qq搜索不到账号(为什么QQ搜索不到)

    为什么qq搜索不到账号(为什么QQ搜索不到)

  • 微信设置消息免打扰对方知道吗(微信设置消息免打扰还能收到消息吗)

    微信设置消息免打扰对方知道吗(微信设置消息免打扰还能收到消息吗)

  • 苹果xsm功能介绍(苹果xs max功能介绍)

    苹果xsm功能介绍(苹果xs max功能介绍)

  • mcu是什么意思的缩写(mcu是干什么的)

    mcu是什么意思的缩写(mcu是干什么的)

  • 递延所得税资产借贷方向
  • 月末存款余额
  • 外商投资的企业是民营企业吗
  • 小微企业季度平均资产看每季度吗
  • 赠送商品如何做账
  • 差旅费处理会计分录
  • 报销差旅费的进项税怎么申报
  • 未取得发票的费用
  • 土地出让要不要交印花税吗
  • 签订合同未履行属于什么行为
  • 当月销项税大于进项税怎么办
  • 社平工资调整补差什么意思
  • 年报怎么看
  • 个人所得税如何做会计分录
  • 税号里面有字母吗
  • 获赠或继承来的房屋以后再转让
  • 转增股本是股票股利吗
  • 清理费用影响当期损益吗
  • 上月未计提税费,本月可以补计提吗
  • win10 20h1 bug
  • 注销库存股的会计分录怎么理解
  • 文竹浇白糖水的正确方法
  • php使用内置函数的过程
  • 出口信用保险补贴算不算政府补助
  • PHP:mcrypt_generic_init()的用法_Mcrypt函数
  • 处置二手固定资产
  • 一般纳税企业增值税计算
  • 为什么结转各项支出时本年利润在借方
  • 收到证券公司异常交易
  • js怎么实现倒计时
  • 发票必须在什么时候开
  • 固定资产转为投资性房地产公允价值
  • 查账征收的纳税人能否简易注销
  • 职工教育经费和职工福利费扣除比例
  • 总账和明细账期间相同吗
  • 应税货物销售额含税吗
  • 进项税额的作用
  • 税控盘维护费全额抵扣分录
  • 无进项可以开票么
  • 处置固定资产亏损,增值税所得税申报不一至情况说明
  • 什么叫政府补贴学位生
  • 盈余公积转增资本对会计要素的影响
  • 小规模企业收到普通发票如何做账
  • 家电销售范围包括哪些
  • 安置用房视同销售,怎么确认扣除费用?
  • 外币资本金入账汇率怎样选择
  • 发行股票手续费计入哪里
  • 小规模纳税人发票可以抵扣吗
  • 持有待售的非流动资产减值能转回吗
  • 会计科目的设置原则包括( )
  • 企业列支非本单位费用
  • 事业单位打款多久到账
  • 贴发票要按时间顺序吗
  • 微信的业务
  • 现金日记账的日期栏是指记账凭证的日期
  • mysql实现分页查询
  • Sqlserver timestamp数据类使用介绍
  • 怎么用ubuntu
  • 如何使用xp
  • ubuntu20.10
  • .exe是什么意思
  • Windows(win7/win8/xp/2003)进入安全模式方法详细汇总
  • win7开始菜单找不到启动项
  • win10文件资源
  • linux如何加载动态库
  • 笔记本win8为什么不能连无线
  • win8无线连接不可用怎么办
  • 微软补丁发布时间
  • Immutable 在 JavaScript 中的应用
  • jquery.parsejson
  • css文本框怎么对齐
  • jquery添加id属性
  • jquery 点击按钮
  • jquery使用教程
  • javascript程序设计教程
  • 国税云厅官网
  • 税务如何稽查
  • 耕地占用税是土地增值税开发成本吗
  • 地税局上班时间是几点
  • 蓬溪房价2020最新消息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设