高階元件(2018 12 18)

2022-09-04 12:12:13 字數 1595 閱讀 5536

一、高階元件

①接收乙個元件返回乙個增強性的元件

高階元件其實是乙個函式,這個函式接收乙個引數,這個引數是乙個元件,返回值是乙個增強性的元件

component/list/header.js  //①這是新建乙個元件

import react, from 'react'

class header extends component

}export default header

component/list/list.js

import react, from 'react'

import header from "./header"   //② 在原有的元件中引入這個元件

let hoc =(com)=>

}return text

}let hi =hoc(header) 

//④ 再寫乙個函式,將模板hoc中的引數寫成想要的元件名

class list extends component

}export default list

②屬性**:實現元件的復用性    //就是我寫乙個元件,我想在什麼元件中使用就將這個元件引入到那個元件中去,利用高階元件的概念進行渲染

header.js  //這就相當於乙個元件模板,需要的時候引入就可以,資料可以在高階元件中進行修改

import react, from 'react'

class header extends component= this.props

return(

/>})}

)}}export default header

list.js

import react, from 'react'

import header from "./header"

let hoc =(com)=>

}render() = this.state

return()}

}return text

}let hi =hoc(header)

class list extends component

}export default list

③  反向整合 :渲染劫持

根據條件來渲染不同的元件或資料

list.js

import react, from 'react'

import header from "./header"

let hoc =(params)=>(com)=>

}render() = this.state

return(

params?:請登入

//這裡是乙個三目運算,根據條件的不同來渲染不同的元件)}

}return text

}let hi =hoc(false)(header) 

//這裡的第乙個引數是params中的值

class list extends component

}export default list

React元件通訊 高階元件

子父元件通訊 非父子元件通訊 跨元件通訊 在react沒有類似vue中的事件匯流排來解決這個問題,我們只能借助它們共同的父級元件來實現,將非父子關係裝換成多維度的父子關係。react提供了contextapi來實現跨元件通訊,react 16.3之後的contextapi較之前的好用。使用流程 im...

高階元件 高階函式 一

antd裡面的form表單方面,遇到乙個高階函式,以及高階元件,於是看了一下這方面內容,前輩們的文章寫得也非常詳細,這裡就稍微kobe一下 高階函式與高階元件 高階函式 高階函式,是一種特別的函式,接受的引數為函式,返回值也是函式 成立條件,二者兼一即可 1 一類特別的函式 a 接受函式型別的引數 ...

React高階元件

想想以前用原生和jquery的專案,上千行的code映入眼簾,瞬間有種昏死過去的衝動。難以維護,改乙個bug可能出現n個bug,真的是很痛苦。於是乎元件化成為了當前前端開發的主流技術。angular vue和react很好的幫我們實現了元件化。但是我們常常也會遇到一種情況,就是兩個元件往往有很多的重...