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 元件 高階元件的作用主要是用來加強元件,通過把基礎元件拆分成很小的粒度,通過高階元件進行增強並返回,以此提高復用性。比如需要開發乙個訊息框,一開始只需要乙個模態框能夠顯示訊息就可以。後來需要多增加 ...