React入門學習——指北指南(第三節)

React 組件

在前面的內容中,我們了解了 React 的基礎知識和入門案例。本節將深入探討 React 中最核心的概念之一 —— 組件。組件是構建 React 應用的基礎,理解組件的工作原理和使用方法,對于掌握 React 開發至關重要。

什么是組件?

在 React 中,組件是具有獨立功能和 UI 的可復用代碼塊。可以將組件看作是構建用戶界面的 “積木”,通過組合不同的組件,能夠搭建出復雜的頁面。

組件就像一個函數,它可以接收輸入(稱為 “props”),并返回 React 元素,用于描述頁面應該呈現的內容。例如,一個按鈕、一個表單或者一個完整的頁面,都可以封裝成組件。

組件的類型

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

函數組件

函數組件是用 JavaScript 函數定義的組件。它是最簡單的組件形式,接收 props 作為參數,并返回 React 元素。

function Welcome(props) {return <h1>Hello, {props.name}</h1>;
}

在 React 16.8 引入 Hooks 之后,函數組件具備了與類組件相同的功能,并且寫法更加簡潔,因此成為了推薦的組件定義方式。

類組件

類組件是基于 ES6 類定義的組件,它需要繼承 React.Component,并且必須實現 render() 方法,該方法返回 React 元素。

class Welcome extends React.Component {render() {return <h1>Hello, {this.props.name}</h1>;}
}

類組件在 Hooks 出現之前是實現復雜功能的主要方式,雖然現在函數組件更受青睞,但在一些舊項目中仍然會遇到類組件。

組件的屬性(Props)

Props 是組件的輸入參數,用于在組件之間傳遞數據。Props 是只讀的,組件不能修改自身接收的 props,這保證了組件的純函數特性。

傳遞 Props

父組件可以通過在子組件標簽上添加屬性的方式,向子組件傳遞 props。

function App() {return <Welcome name="Alice" age={25} />;
}

接收 Props

子組件通過參數接收父組件傳遞的 props。對于函數組件,props 是函數的參數;對于類組件,props 通過 this.props 訪問。

// 函數組件接收props
function Welcome(props) {return (<div><h1>Hello, {props.name}</h1><p>Age: {props.age}</p></div>);
}// 類組件接收props
class Welcome extends React.Component {render() {return (<div><h1>Hello, {this.props.name}</h1><p>Age: {this.props.age}</p></div>);}
}

Props 的默認值

可以為組件的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90791.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90791.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90791.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

容器化環境下的服務器性能瓶頸與優化策略

更多云服務器知識&#xff0c;盡在hostol.com在容器化環境中&#xff0c;性能優化并不是一個簡單的“加硬件”或“增加資源”就能解決的問題。隨著技術的進步&#xff0c;越來越多的公司選擇使用容器技術&#xff08;如Docker、Kubernetes&#xff09;來提高應用的靈活性、可移…

GaussDB 數據庫架構師修煉(八) 等待事件(2)-ASP報告分析

1 ASP報告簡介ASP-Active Sesion Profile &#xff08;活躍會話檔案信息&#xff09;&#xff0c;ASP每秒獲取活躍會話事件&#xff0c;放到內存中&#xff0c;內存中的數據達閾值&#xff0c;會落盤gs_asp表中。ASP Report根據輸入的時間段與slot個數&#xff0c;從內存和磁盤…

CentOS7 安裝 Redis

在 CentOS 7 上配置 Redis 服務器需要完成安裝、配置和服務管理。以下是詳細步驟&#xff1a;安裝 Redis安裝依賴&#xff1a;yum install -y gcc tcl下載并解壓 Redis&#xff1a;cd /usr/local/wget https://download.redis.io/releases/redis-6.2.6.tar.gztar -zxvf redis-6…

《C++ list 完全指南:從基礎到高效使用》

《C list 完全指南&#xff1a;從基礎到高效使用》 文章目錄《C list 完全指南&#xff1a;從基礎到高效使用》一、forward_list和list比較二、list的接口介紹1.list的構造2.list iterator的使用3.list的容量操作4.list的訪問操作5.list的其他操作接口三、list的迭代器失效四、…

CIU32L051 DMA+Lwrb環形隊列實現串口無阻塞性數據的收發 + 數據百分百不丟失的實現

1.Lwrb的介紹&#xff08;博主功能的實現是基于RT-thread系統實現&#xff09; Lwrb是由Tilen Majerle編寫的一個線程安全的環形隊列&#xff0c;通常與DMA配合實現數據的無阻塞性收發&#xff0c;同時&#xff0c;配合DMA的傳輸過半中斷&#xff0c;傳輸完成中斷&#xff0c;以…

【C++】C++ 的入門知識2

本篇文章主要講解 C 的入門語法知識引用、inline 關鍵字與 nullptr 關鍵字。 目錄 1 引用 1&#xff09; 引用的概念與定義 &#xff08;1&#xff09; 引用的概念 &#xff08;2&#xff09; 引用的定義 2&#xff09; 引用的特性 3&#xff09; 引用的使用場…

基于Kafka實現動態監聽topic功能

生命無罪&#xff0c;健康萬歲&#xff0c;我是laity。 我曾七次鄙視自己的靈魂&#xff1a; 第一次&#xff0c;當它本可進取時&#xff0c;卻故作謙卑&#xff1b; 第二次&#xff0c;當它在空虛時&#xff0c;用愛欲來填充&#xff1b; 第三次&#xff0c;在困難和容易之間&…

機械學習初識--什么是機械學習--機械學習有什么重要算法

一、什么是機械學習機器學習&#xff08;Machine Learning&#xff09;是人工智能&#xff08;AI&#xff09;的一個重要分支&#xff0c;它使計算機能夠通過數據自動學習規律、改進性能&#xff0c;并在沒有明確編程的情況下完成特定任務。其核心思想是讓機器從數據中 “學習”…

普通大學生大三這一年的想法

目錄 大三期間的經歷與反思 公益活動&#xff1a;社會責任感的體現 比賽&#xff1a;個人成長的助推器 培訓與思想提升 大學教育的本質與人才培養 構建自我的道與未來規劃 大學教育的未來與個人定位 結語 大三期間的經歷與反思 大三&#xff0c;大學生活的分水嶺&#…

Python——入門

目錄 變量 變量類型 動態類型 注釋 輸出輸入 運算符 算術運算符 關系運算符 邏輯運算符 賦值運算符 條件語句 循環語句 函數 函數作用域 函數嵌套調用 函數默認參數 關鍵字參數 列表 切片 列表遍歷 新增元素 查找元素 刪除元素 列表拼接 元組…

華為榮耀部分機型從鴻蒙降回EMUI的一種方法

一、準備說明 1、這里介紹使用華為手機助手、海外代理軟件結合固件將部分華為榮耀手機鴻蒙系統降級回EMUI系 統的一種方式&#xff1b; 2、需要降級的手機需要再出廠時內置系統為EMUI&#xff0c;出廠時為鴻蒙系統的無法進行降級操作&#xff1b; 3、降級有風險&#xff0…

maven <dependencyManagement>標簽的作用

作用 dependencyManagement標簽的作用&#xff1a;在父工程pom文件中聲明依賴&#xff0c;但不引入&#xff1b;在子工程中用到聲明的依賴時&#xff0c;可以不加依賴的版本號&#xff0c;這樣可以統一管理工程中用到的依賴版本。 示例 先創建一個項目 dependencyManagement-de…

JSON格式化與結構對比

說明 功能格式化json字符串為最簡格式&#xff0c;并標識值類型&#xff1b;比對json字符串結構。第三方依賴fastjson: 用于解析json、判斷json值類型&#xff1b;springframework自帶的字符串判斷&#xff0c;可以不依賴該方法&#xff0c;改為自行實現&#xff1b;slf4j: 用于…

編程與數學 03-002 計算機網絡 03_物理層基礎

編程與數學 03-002 計算機網絡 03_物理層基礎一、物理層的作用與任務&#xff08;一&#xff09;傳輸媒體的類型&#xff08;二&#xff09;信號的傳輸方式二、數據編碼技術&#xff08;一&#xff09;數字數據的數字信號編碼&#xff08;二&#xff09;模擬數據的數字信號編碼…

c語言--文件操作

思維導圖:1. 為什么使用文件&#xff1f; 如果沒有文件&#xff0c;我們寫的程序的數據是存儲在電腦的內存中&#xff0c;如果程序退出&#xff0c;內存回收&#xff0c;數據就丟失了&#xff0c;等再次運?程序&#xff0c;是看不到上次程序的數據的&#xff0c;如果要將數據進…

SQL中的占位符、@Param注解和方法參數

代碼中出現的多個 username 和 password 代表不同層面的變量&#xff0c;具體含義如下&#xff08;按執行順序&#xff09;&#xff1a;### 1. Param("username") String username - 位置 &#xff1a;方法參數前的注解 - 作用 &#xff1a;- Param("username&q…

【SpringAI實戰】FunctionCalling實現企業級自定義智能客服

一、前言 二、實現效果 三、代碼實現 3.1 后端實現 3.2 前端實現 一、前言 Spring AI詳解&#xff1a;【Spring AI詳解】開啟Java生態的智能應用開發新時代(附不同功能的Spring AI實戰項目)-CSDN博客 二、實現效果 一個24小時在線的AI智能客服&#xff0c;可以給用戶提供培…

kotlin基礎【2】

變量類型var 和 val 的核心區別&#xff1a;關鍵字含義能否重新賦值類似概念&#xff08;Java&#xff09;varvariable&#xff08;可變變量&#xff09;可以普通變量&#xff08;無 final&#xff09;valvalue&#xff08;不可變變量&#xff09;不可以被 final 修飾的變量var…

【Spring AI】阿里云DashScope靈積模型

DashScope&#xff08;靈積模型&#xff09;是阿里云提供的大模型服務平臺&#xff0c;集成了阿里自研的 通義千問&#xff08;Qwen&#xff09;系列大語言模型&#xff08;LLM&#xff09;以及多模態模型&#xff0c;為企業與開發者提供開箱即用的 AI 能力。官網地址 https://…

Rust Web框架性能對比與實戰指南

Rust Actix Web Rust Web 框架的實用對比分析 以下是 Rust Web 框架的實用對比分析,涵蓋主要框架(如 Actix-web、Rocket、Warp、Axum 等)的常見使用場景示例,按功能分類整理: 基礎路由設置 Actix-web use actix_web::{get, App, HttpResponse, HttpServer, Responder}…