」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Day 元件和 Props - ReactJS

Day 元件和 Props - ReactJS

發佈於2024-11-05
瀏覽:707

Day Components and Props - ReactJS

歡迎來到「ReactJS 30 天」挑戰的第四天!今天,我們將探索 Components 和 Props——任何 React 應用程式的構建塊。了解這些概念將使您能夠將 UI 分解為可重複使用的獨立部分。

什麼是組件?

React 中的元件就像是食譜中的成分。就像您組合不同的成分來製作菜餚一樣,您也可以組合組件來建立 React 應用程式。元件是一個 JavaScript 函數或類,可以選擇接受輸入(稱為 props)並傳回一個描述畫面上應顯示內容的 React 元素。

React中有兩種主要類型的組件:

功能元件: 這些是傳回 JSX 的 JavaScript 函數。它們更簡單、更容易閱讀。

類別元件: 這些是從 React.Component 擴展的 ES6 類別。它們具有更多功能,例如狀態和生命週期方法,但在現代 React 開發中不太常見。

範例:按鈕組件

讓我們建立一個簡單的按鈕元件:

function Button() {
  return (
    
  );
}

此 Button 元件是一個功能元件,它傳回一個帶有文字「Click me!」的按鈕元素。

為什麼組件很重要

元件可讓您將 UI 分解為更小的、可管理的部分。這使您的程式碼更有組織性並且更易於維護。想像一下嘗試烹飪一道複雜的菜餚而不將其分解為多個步驟。那就太混亂了!同樣,建立沒有元件的 UI 可能會變得難以承受。

現實生活中的例子:樂高積木
想想看樂高積木這樣的組件。每個區塊(組件)都是應用程式的一部分,您可以將它們組合起來創建更大的東西。就像樂高積木一樣,組件可以在應用程式的不同部分中重複使用。

什麼是道具?
Props(「屬性」的縮寫)是將資料從一個元件傳遞到另一個元件的方式。它們與函數參數類似,可用於自訂元件。

例如,假設我們要建立一個 Button 元件,它可以根據收到的 props 顯示不同的文字:

function Button(props) {
  return (
    
  );
}

現在,當您使用 Button 元件時,您可以傳入 label 屬性來自訂其文字:

function App() {
  return (
    
); }

此處,Button 元件使用了兩次,但具有不同的標籤:「提交」和「取消」。

道具的重要性

Props 讓您的元件更加靈活可重複使用。您可以透過 props 傳入動態數據,而不是在元件內硬編碼值,從而允許您在不同的上下文中使用相同的元件。

使用Vite設定組件和道具

由於我們使用 Vite 作為開發環境,因此設定元件和 props 非常簡單。如果您一直在操作,那麼您的 Vite 專案已經配置完畢。您可以開始在單獨的檔案中建立元件並將它們匯入到您的主應用程式中。

以下是建構專案的方法:

1。建立新元件: 在 src 資料夾中建立一個新檔案 Button.jsx,並在其中定義 Button 元件。
2.在您的應用程式中使用該元件: 在您的 App.jsx 檔案中,匯入 Button 元件並將其與不同的 props 一起使用。

把它們放在一起

元件和 props 是 React 基於元件的架構的核心。透過將 UI 分解為更小的元件並使用 props 在它們之間傳遞數據,您可以建立可擴展且可維護的應用程式。

明天,我們將深入研究狀態和生命週期方法,這將使您的元件能夠管理動態資料並回應隨時間變化的變化。

版本聲明 本文轉載於:https://dev.to/haquedot/day-4-components-and-props-reactjs-5e8f?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 為什麼HTML無法打印頁碼及解決方案
    為什麼HTML無法打印頁碼及解決方案
    無法在html頁面上打印頁碼? @page規則在@Media內部和外部都無濟於事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: ...
    程式設計 發佈於2025-07-02
  • C++成員函數指針正確傳遞方法
    C++成員函數指針正確傳遞方法
    如何將成員函數置於c 的函數時,接受成員函數指針的函數時,必須同時提供對象的指針,並提供指針和指針到函數。需要具有一定簽名的功能指針。要通過成員函數,您需要同時提供對象指針(此)和成員函數指針。這可以通過修改Menubutton :: SetButton()(如下所示:[&& && && &&華)...
    程式設計 發佈於2025-07-02
  • 我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    我可以將加密從McRypt遷移到OpenSSL,並使用OpenSSL遷移MCRYPT加密數據?
    將我的加密庫從mcrypt升級到openssl 問題:是否可以將我的加密庫從McRypt升級到OpenSSL?如果是這樣,如何? 答案:是的,可以將您的Encryption庫從McRypt升級到OpenSSL。 可以使用openssl。 附加說明: [openssl_decrypt()函數要求...
    程式設計 發佈於2025-07-02
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    在使用GO MOD時,在GO MOD 中克服模塊路徑差異時,可能會遇到衝突,其中3個Party Package將另一個PAXPANCE帶有導入式套件之間的另一個軟件包,並在導入式套件之間導入另一個軟件包。如迴聲消息所證明的那樣: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    程式設計 發佈於2025-07-02
  • 如何使用Python的請求和假用戶代理繞過網站塊?
    如何使用Python的請求和假用戶代理繞過網站塊?
    如何使用Python的請求模擬瀏覽器行為,以及偽造的用戶代理提供了一個用戶 - 代理標頭一個有效方法是提供有效的用戶式header,以提供有效的用戶 - 設置,該標題可以通過browser和Acterner Systems the equestersystermery和操作系統。通過模仿像Chro...
    程式設計 發佈於2025-07-02
  • 為什麼PYTZ最初顯示出意外的時區偏移?
    為什麼PYTZ最初顯示出意外的時區偏移?
    與pytz 最初從pytz獲得特定的偏移。例如,亞洲/hong_kong最初顯示一個七個小時37分鐘的偏移: 差異源利用本地化將時區分配給日期,使用了適當的時區名稱和偏移量。但是,直接使用DateTime構造器分配時區不允許進行正確的調整。 example pytz.timezone(&#...
    程式設計 發佈於2025-07-02
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,以便更快地搜索這些前綴。 理解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-07-02
  • 如何使用不同數量列的聯合數據庫表?
    如何使用不同數量列的聯合數據庫表?
    合併列數不同的表 當嘗試合併列數不同的數據庫表時,可能會遇到挑戰。一種直接的方法是在列數較少的表中,為缺失的列追加空值。 例如,考慮兩個表,表 A 和表 B,其中表 A 的列數多於表 B。為了合併這些表,同時處理表 B 中缺失的列,請按照以下步驟操作: 確定表 B 中缺失的列,並將它們添加到表的...
    程式設計 發佈於2025-07-02
  • 為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    為什麼不````''{margin:0; }`始終刪除CSS中的最高邊距?
    在CSS 問題:不正確的代碼: 全球範圍將所有餘量重置為零,如提供的代碼所建議的,可能會導致意外的副作用。解決特定的保證金問題是更建議的。 例如,在提供的示例中,將以下代碼添加到CSS中,將解決餘量問題: body H1 { 保證金頂:-40px; } 此方法更精確,避免了由全局保證金重置...
    程式設計 發佈於2025-07-02
  • 將圖片浮動到底部右側並環繞文字的技巧
    將圖片浮動到底部右側並環繞文字的技巧
    在Web設計中圍繞在Web設計中,有時可以將圖像浮動到頁面右下角,從而使文本圍繞它纏繞。這可以在有效地展示圖像的同時創建一個吸引人的視覺效果。 css位置在右下角,使用css float and clear properties: img { 浮點:對; ...
    程式設計 發佈於2025-07-02
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式接口中實現垂直滾動元素的CSS高度限制問題:考慮一個佈局,其中我們具有與用戶垂直滾動一起移動的可滾動地圖div,同時與固定的固定sidebar保持一致。但是,地圖的滾動無限期擴展,超過了視口的高度,阻止用戶訪問頁面頁腳。 $("#map").css({ margin...
    程式設計 發佈於2025-07-02
  • MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    在兩個條件下插入或更新或更新 solution:的答案在於mysql的插入中...在重複鍵更新語法上。如果不存在匹配行或更新現有行,則此功能強大的功能可以通過插入新行來進行有效的數據操作。如果違反了唯一的密鑰約束。 實現所需的行為,該表必須具有唯一的鍵定義(在這種情況下為'名稱'...
    程式設計 發佈於2025-07-02
  • 如何處理PHP文件系統功能中的UTF-8文件名?
    如何處理PHP文件系統功能中的UTF-8文件名?
    在PHP的Filesystem functions中處理UTF-8 FileNames 在使用PHP的MKDIR函數中含有UTF-8字符的文件很多flusf-8字符時,您可能會在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    程式設計 發佈於2025-07-02
  • 在Pandas中如何將年份和季度列合併為一個週期列?
    在Pandas中如何將年份和季度列合併為一個週期列?
    pandas data frame thing commans date lay neal and pree pree'和pree pree pree”,季度 2000 q2 這個目標是通過組合“年度”和“季度”列來創建一個新列,以獲取以下結果: [python中的concate...
    程式設計 發佈於2025-07-02
  • 如何克服PHP的功能重新定義限制?
    如何克服PHP的功能重新定義限制?
    克服PHP的函數重新定義限制在PHP中,多次定義一個相同名稱的函數是一個no-no。嘗試這樣做,如提供的代碼段所示,將導致可怕的“不能重新列出”錯誤。 但是,PHP工具腰帶中有一個隱藏的寶石:runkit擴展。它使您能夠靈活地重新定義函數。 runkit_function_renction_...
    程式設計 發佈於2025-07-02

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3