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

  • 年度应纳税所得额计算公式
  • 一般纳税人改成小规模纳税人
  • 六税两费减半征收政策
  • 年终奖1月发放能算上一年吗
  • 窗帘属于固定资产
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 退所得税的分录
  • 车船税不开发票怎么做账?
  • 可供出售金融资产和交易性金融资产
  • 银行小额贷款是怎么还款的
  • 分配的股息 要交所得税吗
  • 查定征收方式适用于什么
  • 进项转出再差额征收待抵扣
  • 兼营免税业务,如何才能享受免税的优惠政策?
  • 行邮税税率表2023
  • 未开票的销售要交增值税吗
  • 财务内账外账的优缺点
  • 一般纳税人怎么查询
  • 个人所得税适合月度税率表有哪些
  • 出租房电费怎么结算
  • 劳务派遣发票备注栏要求
  • 教育培训行业收入
  • 预缴的税款科目怎么做
  • 人工费没有发票年度汇算调增需要进行调帐处理吗
  • 企业所得税汇算清缴操作流程
  • win11怎么用win10界面
  • w10关闭远程
  • 远程桌面连接的用户名和密码在哪里看
  • 制作flash动画步骤
  • 如何把电脑上锁屏密码
  • 建筑业成本核算表格百度网盘
  • 根据新企业所得税法的规定,企业购买并实际使用
  • umi ts
  • 存货按实际成本计价是指每种存货的收发结存
  • 保险公司经营外汇保险业务
  • 永久性差异会计分录
  • php strtr
  • vuecli websocket
  • php each list
  • laravel实战教程
  • php 访问数据库
  • php soap wsdl
  • jquery弹出层插件
  • 引导式申报带出来的开票额与金税盘显示的不一致
  • mysql写日志机制
  • 网络贷款需要缴费吗
  • 进口报关费入什么科目
  • 政府补助冲减成本
  • 会计的三个结转是什么
  • 单利率和复利率公式
  • 工程没钱也没有工资
  • 所有者权益的概念和特征
  • 什么叫先打后补
  • 员工的车是否可以抵税
  • 无形资产什么时候开始计提折旧
  • 公司的私账
  • mysql优化配置文件
  • sqlserver 触发器 redis
  • mysql嵌套查询联表查询
  • windows 注册表命令
  • mac上itunes
  • awtk linux
  • linux用yum
  • 在linux中使用v2ray
  • opengl教程48讲
  • bootstrap怎么引用
  • JavaScript程序设计形考答案
  • unity碰撞得分代码
  • android工程目录
  • firefox怎样调整为中文
  • js怎样删除数组中的某个值
  • js怎么输出文字
  • js模拟实现new
  • jquery方法查询api
  • jquery教程chm
  • 如何在js中实现输入
  • python中的类怎样理解
  • 客货两用车应如何运输
  • 国家税务认证平台是什么
  • 上海小规模纳税人企业所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设