react高階組件的作用是什么

小編給大家分享一下react高階組件的作用是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

10余年的大邑縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整大邑縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“大邑縣網(wǎng)站設(shè)計(jì)”,“大邑縣網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

react高階組件深入理解、作用以及應(yīng)用

本文主要以通俗易懂的語言表達(dá)自己對(duì)高階組件的一些見解,希望大家多多提問

高階組件深入理解

高階組件就是一個(gè)函數(shù),傳給它一個(gè)組件,它返回一個(gè)新的組件。新的組件使用傳入的組件作為子組件。

首先根據(jù)定義我們明白它就是一個(gè)函數(shù),而且它必須有返回值,返回值是一個(gè)組件,當(dāng)然這里我們高階組件可以嵌套(這里是一篇入門的文章,之后我會(huì)更新高階組件多層嵌套)

高階組件的作用

一直以來我們都是看到新的知識(shí)都是一直學(xué)習(xí),一直看官方文檔,沒有靜下心來想一想到底為什么這個(gè)新知識(shí)能夠在這個(gè)時(shí)候出現(xiàn)?為什么它剛出現(xiàn)就這么火?它到底在什么情況下用?它能解決什么問題……等等這一系列的問題

我第一次見到這個(gè)詞是在redux中解讀connect組件時(shí),看到這個(gè)詞,官方文檔也有具體說明個(gè)人推薦到這里去看,比官方文檔,解釋的更好

其實(shí)高階組件就是把公用的一些部分提出來,把修改的部分以參數(shù)的形勢(shì)傳進(jìn)去,在這里可能有人會(huì)說這那需用什么高階組件,我自己封裝一個(gè)組件也可以達(dá)到同樣的效果,簡(jiǎn)單的組件在這里你可能通過封裝來實(shí)現(xiàn),但是我舉兩個(gè)例子大家在想一下怎么通過組建封裝來實(shí)現(xiàn):1、antd組件的form組件,2、我們?cè)趓edux中組件頂部寫一行代碼@connect之后就可以在組件中通過this.props訪問store中的數(shù)據(jù)和一些修改數(shù)據(jù)的方法

這里也許也會(huì)有一些大牛說我可以實(shí)現(xiàn),但是大牛畢竟比較少,可能許多程序員在心理都會(huì)覺得自己是大牛,在這里我可以告大家一個(gè)檢測(cè)自己實(shí)力的方法:就是沒事的時(shí)候把建立投一下阿里或者是京東,然后去面試一下,我敢保證許多人就會(huì)現(xiàn)行;

高階組件的用處

說了那么多廢話,說點(diǎn)有用的吧,高階組件一般用在那些地方呢

我們從一個(gè)實(shí)際問題來理解并學(xué)習(xí)高階組件:有類似的幾個(gè)組件但是組件內(nèi)部只有少部分是不同的,它們身上都還有一些公用的方法,并且這些少部分組件組件都還要調(diào)用大組件的方法或者訪問它的一些數(shù)據(jù)

我們來分一下:1,這幾個(gè)組件的大部分樣式和功能是相同的,我們可以可以思考能不能只寫一次;2、它們不同的地方還會(huì)觸發(fā)一些相同的方法;3、不同的地方只是內(nèi)部的一小部分

如果我們按照組件封裝的方法來實(shí)現(xiàn)的的話,我們封裝一個(gè)大組件,然后把不同的小組件傳進(jìn)去,然后通過props把方法傳到小組件,通過回調(diào)觸發(fā),但是這里有一個(gè)問題,我們寫這幾個(gè)組件的時(shí)候每次都要把大組件寫一遍然后把子組件嵌入進(jìn)去

加入這里我們采用高階組件來實(shí)現(xiàn)的話,我們只需要把公用的方法和數(shù)據(jù)寫到高階函數(shù)返回的組件中,然后把組件傳進(jìn)去就可以了,最后在每個(gè)調(diào)用這個(gè)大組件的地方直接調(diào)用這個(gè)函數(shù)就可以了。

react高階組件的作用是什么

在上圖中我們的代碼可以這樣來實(shí)現(xiàn)

//先寫高階組件
export default class HigherOrderComponent(InputComponent){
    return class NewComponent extends Component{
        constructor(){
            super()
            this.state={
                initalState:123
            }
        }
        commonFunc=()=>{
        }
        render(){
            return(
                <InputComponent data={this.state.initialSate} fun={this.commonFnn}/>
            )
        }
    }
}
//再來寫outerComponent
import HigherOrderComponent from 'HigherOrderComponent';
import MinComponent1 from 'MinComponent1';
import MinComponent2 from 'MinComponent2';
class OuterComponent extends Component{
    render(){
        return(
            <p>
                {HigherOrderComponent(minComponent1)}
                {HigherOrderComponent(minComponent2)}
            </p>
        )
    }
}
這樣這個(gè)outerComponent就寫完了,直接在這個(gè)編輯器里寫的,代碼可能會(huì)有以下小的錯(cuò)誤,大家諒解

以上是react高階組件的作用是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:react高階組件的作用是什么
URL網(wǎng)址:http://bm7419.com/article36/gegesg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航軟件開發(fā)靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站制作網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站