- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
React高阶组件的使用浅析
目录高阶函数高阶组件react常见的高阶函数高阶组件形式在学习高阶组件前,首先我们了解一下高阶函数
高阶函数
把一个函数作为另一个函数的参数,那么这个函数就是高阶函数
高阶组件
一个组件的参数是组件,并且返回值是一个组件,我们称这类组件为高阶组件
react常见的高阶函数
withRouter()
memo()
react-redux中connect
高阶组件形式
React中的高阶组件主要有两种形式:属性代理和反向继承
属性代理:一个函数接收一个WrappedComponent组件作为参数传入,并返回一个继承React.Component组件的类,且在该类的render()方法中返回被传入的WrappedComponent组件
反向继承:是一个函数接收一个WrappedComponent组件作为参数传入,并返回一个继承了该传入的WrappedComponent组件的类,且在该类的render()方法中返回super.render()方法
注意:反向继承必须使用类组件,因为函数组件没有this指向
属性继承方式的代码
functionGoods(props){
console.log(props);
return(
divclassName=box1
h3#0088dd}
return(
WrapperComponent{...ps}{...obj}/
exportdefaultColor(Goods);
高阶组件我们也可以把他进行单独的剥离出来,然后把他在各个组件中使用
HOC.js文件
importReactfromreact;
//高阶组件的代码,属性代理的方式
exportdefaultfunctionMouse(WrapperComponent){
returnclassMouseextendsReact.Component{
constructor(props){
super(props);
this.state={
x:0,
y:0,
this.getMouse();
getMouse=()={
document.addEventListener(mousemove,(event)={
this.setState({
x:event.clientX,
y:event.clientY
render(){
//console.log(this.state);
return(
WrapperComponent{...ps}{...this.state}/
}
goods.js文件
importMousefrom../context/HOC;
functionGoods(props){
console.log(props);
let{x,y}=props;
return(
divclassName=box1
div
鼠标坐标:x:{x},y:{y}
/div
h3HelloJs/h3
/div
exportdefaultMouse(Goods);
您可能关注的文档
最近下载
- 山东省青岛市2024-2025学年七年级上学期11月期中英语试题.docx VIP
- 灼热丝试验规范.doc VIP
- 不动产登记实务培训教程课件.pptx VIP
- 高中语文统编版必修 下册(2019)_2022届高考语文二轮复习“科幻小说与魔幻现实主义小说”专练 .doc VIP
- 小学语文大阅读《奇妙的数王国》 指导课件.pptx
- 灼热丝试验及标准.docx VIP
- 新能源零基础知识培训课件.pptx VIP
- 2025年上海市时事政治考试试卷带解析(考试直接用).docx VIP
- 2025年上海市时事政治考试试卷带解析含答案(考试直接用).docx VIP
- 高等有机化学 周环反应.ppt VIP
文档评论(0)