React高阶组件的使用浅析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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);

文档评论(0)

159****6192 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档