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

Day 元件和 Props - ReactJS

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

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]刪除
最新教學 更多>
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    答案: 在大多數現代編譯器中,while(1)和(1)和(;;)之間沒有性能差異。編譯器: perl: 1 輸入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    程式設計 發佈於2025-07-04
  • 如何在Java字符串中有效替換多個子字符串?
    如何在Java字符串中有效替換多個子字符串?
    在java 中有效地替換多個substring,需要在需要替換一個字符串中的多個substring的情況下,很容易求助於重複應用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    程式設計 發佈於2025-07-04
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩...
    程式設計 發佈於2025-07-04
  • 如何在無序集合中為元組實現通用哈希功能?
    如何在無序集合中為元組實現通用哈希功能?
    在未訂購的集合中的元素要糾正此問題,一種方法是手動為特定元組類型定義哈希函數,例如: template template template 。 struct std :: hash { size_t operator()(std :: tuple const&tuple)const {...
    程式設計 發佈於2025-07-04
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    postgresql:為每個唯一標識符在postgresql中提取最後一行,您可能需要遇到與數據集合中每個不同標識的信息相關的信息。考慮以下數據:[ 1 2014-02-01 kjkj 在數據集中的每個唯一ID中檢索最後一行的信息,您可以在操作員上使用Postgres的有效效率: id dat...
    程式設計 發佈於2025-07-04
  • MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    MySQL中如何高效地根據兩個條件INSERT或UPDATE行?
    在兩個條件下插入或更新或更新 solution:的答案在於mysql的插入中...在重複鍵更新語法上。如果不存在匹配行或更新現有行,則此功能強大的功能可以通過插入新行來進行有效的數據操作。如果違反了唯一的密鑰約束。 實現所需的行為,該表必須具有唯一的鍵定義(在這種情況下為'名稱'...
    程式設計 發佈於2025-07-04
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-07-04
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-07-04
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-07-04
  • 編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    錯誤:“ usr/bin/ld:找不到-l “ 此錯誤表明鏈接器在鏈接您的可執行文件時無法找到指定的庫。為了解決此問題,我們將深入研究如何指定庫路徑並將鏈接引導到正確位置的詳細信息。 添加庫搜索路徑的一個可能的原因是,此錯誤是您的makefile中缺少庫搜索路徑。要解決它,您可以在鏈接器命令中添...
    程式設計 發佈於2025-07-04
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-07-04
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    程式設計 發佈於2025-07-04
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-07-04
  • 如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    如何修復\“常規錯誤:2006 MySQL Server在插入數據時已經消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    程式設計 發佈於2025-07-04
  • 為什麼PYTZ最初顯示出意外的時區偏移?
    為什麼PYTZ最初顯示出意外的時區偏移?
    與pytz 最初從pytz獲得特定的偏移。例如,亞洲/hong_kong最初顯示一個七個小時37分鐘的偏移: 差異源利用本地化將時區分配給日期,使用了適當的時區名稱和偏移量。但是,直接使用DateTime構造器分配時區不允許進行正確的調整。 example pytz.timezone(&#...
    程式設計 發佈於2025-07-04

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

Copyright© 2022 湘ICP备2022001581号-3