React 高階元件 原理

2022-10-11 02:48:08 字數 993 閱讀 2153

import react from "react" // 匯入react包

function

withmouse(components)

//滑鼠移動的時候更新初始資料

mousemoved = e =>)

}//元件渲染完成的時候監聽滑鼠的滾動事件

componentdidmount()

//元件登出的時候清除事件

componentwillunmount()

//呼叫render方法返回外部函式呼叫的時候出傳遞進來的元件

render() >) // 這裡的components是外部函式的形參, 也就是使用者傳遞過來的元件

// 返回元件的時候,把當前元件資料"嵌入"進去了

} }

return

mouse; // 相當於呼叫內部的元件, 同時內部元件的返回值會通過這個return ,返回給呼叫這個 withmouse 函式的元件}//

定義乙個簡單的元件,需要通過上面的函式,進行包裝

const title = props =>

// 這裡就能通過形參,使用上面高階函式傳遞過來的元件引數

當前滑鼠的y座標為: )}

const newtitle =withmouse(title) //這裡把元件當做形參傳遞給上面的高階元件, 返回的還是當前的元件, 只是內部多了高階元件裡面的共用元件的資料

// render() }//

**核心分析**

1. 建立乙個函式fn,假設形參為a  (a接收元件作為引數)

2. 函式內部建立乙個元件, 只寫公共邏輯, 返回的是傳遞進去的形參a,並且把內部邏輯的引數,攜帶進去

3. 外部的函式,return 的是內部的函式(相當於呼叫內部的元件)

4. 內部元件,返回的是呼叫函式fn傳遞進去的引數(元件),但是,返回的時候攜帶引數

4. 外部呼叫 fn,且傳遞元件進去, 返回值還是該元件(相比傳遞進去的時候,多了引數)

React高階元件

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

react高階元件

基本概念 函式可以作為引數被傳遞 函式可以作為返回值輸出 元件作為引數被傳遞,返回值是乙個元件 高階元件是乙個函式 案例 將a元件作為公共元件,bc元件作為a函式的引數,來共享顯示a元件 此處紅框是a元件,紅框裡左邊內容為b元件,右邊內容為c元件 1.建立公共的a元件 將元件a封裝成乙個函式,接收乙...

React 高階元件

高階元件 high order component,hoc 輸入 react 元件 輸出 react 元件 高階元件的作用主要是用來加強元件,通過把基礎元件拆分成很小的粒度,通過高階元件進行增強並返回,以此提高復用性。比如需要開發乙個訊息框,一開始只需要乙個模態框能夠顯示訊息就可以。後來需要多增加 ...