溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

react是不是組件化開發(fā)

發(fā)布時間:2022-04-22 13:54:20 來源:億速云 閱讀:134 作者:zzz 欄目:web開發(fā)

本文小編為大家詳細(xì)介紹“react是不是組件化開發(fā)”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“react是不是組件化開發(fā)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

react是組件化開發(fā);組件化是React的核心思想,可以開發(fā)出一個個獨立可復(fù)用的小組件來構(gòu)造應(yīng)用,任何的應(yīng)用都會被抽象成一顆組件樹,組件化開發(fā)也就是將一個頁面拆分成一個個小的功能模塊,每個功能完成自己這部分獨立功能。

本教程操作環(huán)境:Windows10系統(tǒng)、react17.0.1版、Dell G3電腦。

react是組件化開發(fā)嗎

react是組件化開發(fā)

1.組件化思想

  • 當(dāng)人們面對復(fù)雜問題的處理方式:

    • 將復(fù)雜的問題進(jìn)行拆解, 拆分成很多個可以處理的小問題

    • 將其放在整體當(dāng)中,你會發(fā)現(xiàn)大的問題也會迎刃而解

  • 其實上面的思想就是分而治之的思想:

    • 分而治之是軟件工程的重要思想,是復(fù)雜系統(tǒng)開發(fā)和維護(hù)的基石

    • 而前端目前的模塊化和組件化都是基于分而治之的思想

    2.什么是組件化開發(fā)呢?

    • 組件化也是類似的思想:

      • 如果我們將一個頁面中全部邏輯放在一起, 處理起來會變得非常復(fù)雜, 不利于后續(xù)管理及擴(kuò)展

      • 但如果我們將一個頁面拆分成一個個小的功能模塊, 每個功能完成自己這部分獨立功能, 那么整個頁面的管理和維護(hù)變得非常容易

    react是不是組件化開發(fā)

    • 我們需要通過組件化的思想來思考整個應(yīng)用程序:

      • 我們將一個完整的頁面分成很多個組件

      • 每個組件都用于實現(xiàn)頁面的一個功能塊

    3.React的組件化

    • 組件化是 React 的核心思想,前面我們封裝的 App 本身就是一個組件

      • 組件化提供了一種抽象,讓我們可以開發(fā)出一個個獨立可復(fù)用的小組件來構(gòu)造我們的應(yīng)用

      • 任何的應(yīng)用都會被抽象成一顆組件樹

    react是不是組件化開發(fā)

    • 組件化思想的應(yīng)用:

      • 盡可能的將頁面拆分成一個個小的、可復(fù)用的組件

      • 這樣讓我們的代碼更加方便組織和管理,并且擴(kuò)展性也更強(qiáng)

    4.React組件分類

    • React的組件相對于 Vue 更加的靈活和多樣,按照不同的方式可以分成很多類組件:

      • 根據(jù)組件的定義方式,可以分為:函數(shù)組件(Functional Component)和類組件(Class Component)

      • 根據(jù)組件內(nèi)部是否有狀態(tài)需要維護(hù),可以分成:無狀態(tài)組件(Stateless Component)和有狀態(tài)組件(Stateful Component)

      • 根據(jù)組件的不同職責(zé),可以分成:展示型組件(Presentational Component)和容器型組件(Container Component)

    • 這些概念有很多重疊,但是它們最主要是關(guān)注數(shù)據(jù)邏輯UI展示的分離:

      • 函數(shù)組件、無狀態(tài)組件、展示型組件主要關(guān)注UI的展示

      • 類組件、有狀態(tài)組件、容器型組件主要關(guān)注數(shù)據(jù)邏輯

    React 創(chuàng)建組件

    1.類組件

    • 類組件的定義由如下要求:

      • 組件的名稱是大寫字符開頭 (無論類組件還是函數(shù)組件)

      • 類組件需要繼承自: React.Component

      • 類組件必須實現(xiàn) render 函數(shù)

    • 使用 class 定義一個組件:

      • constructor是可選的,我們通常在 constructor 中初始化一些數(shù)據(jù)

      • this.state中維護(hù)的就是我們組件內(nèi)部的數(shù)據(jù)

      • render() 方法是 class 組件中唯一必須實現(xiàn)的方法

    react是不是組件化開發(fā)

    2.render函數(shù)的返回值

    當(dāng)render函數(shù)被調(diào)用時, 它會檢查 this.propsthis.state 的變化并返回以下類型之一

    • React元素

      • 通常通過 JSX 創(chuàng)建

      • 例如:<p/> 會被 React 渲染為 DOM節(jié)點, \<MyComponent/>會被 React 渲染為自定義組件

      • 無論是 <p/> 還是 <MyComponent/> 均為 React 元素

    • 數(shù)組或 fragments: 使得 render 方法可以返回多個元素

    • Portals: 可以渲染子節(jié)點到不同的 DOM 子樹中

    • 字符串或數(shù)值類型: 他們在 DOM 中會被渲染為文本節(jié)點

    • 布爾類型或null: 什么都不渲染

    3.函數(shù)組件

    函數(shù)組件是使用 function 來進(jìn)行定義的函數(shù), 只是這個函數(shù)會返回和類組件中 render 函數(shù)一樣的內(nèi)容

    • 函數(shù)組件的特點 (后面會講hooks, 就不一樣了)

      • 沒有生命周期, 也會被更新并掛載, 但是沒有生命周期函數(shù)

      • 沒有 this (組件實例)

      • 沒有內(nèi)部狀態(tài) (state)

    react是不是組件化開發(fā)

    讀到這里,這篇“react是不是組件化開發(fā)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI