」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > React 初學者指南:基礎知識入門

React 初學者指南:基礎知識入門

發佈於2024-11-07
瀏覽:241

A Beginner’s Guide to React: Getting Started with the Basics

React 已成为现代 Web 开发的基石,以其高效、灵活性和强大的生态系统而闻名。 React 由 Facebook 开发,允许开发人员创建可重用的 UI 组件,从而简化了构建交互式用户界面的过程。

无论您是想构建复杂的单页应用程序还是只是想提高您的 Web 开发技能,掌握 React 都是一笔宝贵的财富。

在本指南中,我们将引导您了解 React 入门的基本概念和步骤,包括设置开发环境、了解 React 基础知识以及创建您的第一个组件。

什么是反应?

React 是一个用于构建用户界面的 JavaScript 库,特别是对于需要动态和交互式用户体验的单页应用程序。从本质上讲,React 允许开发人员构建封装的组件来管理自己的状态并组合它们以创建复杂的 UI。 React 的声明性性质使您更容易推理应用程序,而其基于组件的架构则提高了可重用性和可维护性。

React 的简史和演变

React 于 2013 年由 Facebook 首次发布,并因其构建 UI 的创新方法而迅速受到关注。与直接操作 DOM 的传统库和框架不同,React 引入了虚拟 DOM 的概念。这种抽象允许 React 通过仅更新已更改的 UI 部分来优化渲染,从而实现更高效的性能。

自诞生以来,React 已经发生了显着的发展,引入了钩子、上下文 API 和并发渲染等功能。该库拥有一个充满活力的生态系统,围绕它构建了大量工具、库和框架,进一步增强了其功能。

React 的主要特点

  1. 基于组件的架构:React 基于组件的方法允许开发人员将复杂的 UI 分解为更小的、可重用的部分,每个部分都有自己的逻辑和渲染。

  2. 虚拟 DOM:虚拟 DOM 是真实 DOM 的内存表示。 React 使用这个虚拟 DOM 通过与之前的状态进行比较并仅应用必要的更改来有效地更新 UI。

  3. 声明性语法:React 的声明性语法通过描述任何给定状态下 UI 的外观,而不是指定如何更改 UI,使设计 UI 变得更加容易。

  4. 单向数据流:React强制执行单向数据流,这意味着数据从父组件流向子组件,从而更容易跟踪和管理状态更改。

设置开发环境

在深入研究 React 之前,您应该对 HTML、CSS 和 JavaScript 有基本的了解。熟悉这些技术将帮助您更有效地掌握 React 概念,因为 React 建立在这些基本的 Web 技术之上。

安装 Node.js 和 npm

React开发需要Node.js和npm(Node Package Manager),它们用于管理项目依赖和运行开发工具。

如何安装 Node.js 和 npm:

  1. 下载并安装Node.js:前往Node.js官方网站,下载适合您操作系统的最新LTS(长期支持)版本。该安装包包含npm。

  2. 验证安装:安装后,打开终端(或命令提示符)并运行以下命令来验证 Node.js 和 npm 是否已正确安装:

   node -v
   npm -v

您应该看到 Node.js 和 npm 的版本号,确认安装成功。

创建反应应用程序

开始使用 React 的最简单方法是使用 create-react-app 工具,该工具使用合理的默认配置设置一个新的 React 项目。

初始化新 React 项目的分步指南:

  1. 全局安装 create-react-app:打开终端并运行:
   npx create-react-app my-app

将 my-app 替换为您想要的项目名称。此命令使用给定名称创建一个新目录,并在其中设置一个 React 项目。

  1. 导航到您的项目目录
   cd my-app
  1. 启动开发服务器
   npm start

此命令运行开发服务器并在默认 Web 浏览器中打开新的 React 应用程序。您应该看到默认的 React 欢迎页面,表明一切都已正确设置。

了解 React 基础知识

组件是 React 应用程序的构建块。它们封装了 UI 元素和逻辑,使管理和重用代码变得更加容易。组件可分为两类:

  1. 功能组件:这些是返回 React 元素的 JavaScript 函数。它们通常用于简单的无状态组件。

例子:

   function Welcome(props) {
     return 

Hello, {props.name}

; }
  1. Class Components:这些是扩展 React.Component 并包含 render 方法的 ES6 类。它们用于具有本地状态和生命周期方法的更复杂的组件。

例子:

   class Welcome extends React.Component {
     render() {
       return 

Hello, {this.props.name}

; } }

JSX(JavaScript XML)

JSX 是 JavaScript 的语法扩展,允许您在 JavaScript 中编写类似 HTML 的代码。它使创建 React 元素和组件变得更加容易。

JSX 如何转换为 JavaScript:

JSX 本身并不是有效的 JavaScript。在构建过程中,像 Babel 这样的工具会将 JSX 转换为常规 JavaScript。例如:

JSX:

const element = 

Hello, world!

;

转换后的 JavaScript:

const element = React.createElement('h1', null, 'Hello, world!');

道具(属性)

Props 用于将数据从父组件传递到子组件。它们是只读的,有助于使组件可重用。

将 Pros 传递给组件的示例:

function Greeting(props) {
  return 

Welcome, {props.username}!

; } function App() { return ; }

在此示例中,Greeting 组件从 App 组件接收用户名 prop 并显示它。

状态

状态允许组件管理自己的数据并对用户交互做出反应。在功能组件中,useState钩子用于管理状态。

useState Hook介绍:

useState 挂钩是一个函数,它返回一个包含两个元素的数组:当前状态值和更新它的函数。

使用useState进行状态管理的示例:

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    

You clicked {count} times

); }

在此示例中,计数器组件维护计数状态。单击按钮会更新状态,UI 会反映新的计数值。

构建你的第一个 React 组件

让我们创建一个简单的功能组件来显示问候消息。

分步示例:

  1. 创建一个新文件:在项目的src目录下,创建一个名为Greeting.js的文件。

  2. 定义组件:

   import React from 'react';

   function Greeting() {
     return 

Hello, React!

; } export default Greeting;
  1. 渲染组件:打开 src/App.js 并渲染 Greeting 组件。
   import React from 'react';
   import Greeting from './Greeting';

   function App() {
     return (
       
); } export default App;

添加基本​​样式

您可以使用内联样式或外部 CSS 文件设置组件的样式。添加基本​​样式的方法如下:

  1. 内联样式
   function StyledGreeting() {
     const style = {
       color: 'blue',
       textAlign: 'center'
     };

     return 

Hello, styled React!

; }
  1. 外部CSS:在src目录下创建CSS文件(Greeting.css)。
   .greeting {
     color: green;
     text-align: center;
   }

在Greeting.js中导入CSS文件并应用类:

   import React from 'react';
   import './Greeting.css';

   function Greeting() {
     return 

Hello, styled React!

; } export default Greeting;

结论

React 是一个功能强大的库,使开发人员能够高效地构建动态和交互式用户界面。在本指南中,我们介绍了 React 的基础知识,包括其核心概念、设置开发环境、了解组件、JSX、props 和状态,以及构建您的第一个组件。我们还探索了增强组件的样式选项。

版本聲明 本文轉載於:https://dev.to/emmanuelbolade/a-beginners-guide-to-react-getting-started-with-the-basics-27a4?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何將 Firebase 與 Laravel 集成
    如何將 Firebase 與 Laravel 集成
    Laravel and Firebase are two powerful tools that can significantly enhance the development of modern web applications. Laravel, a popular PHP framewor...
    程式設計 發佈於2024-11-07
  • Expo with Redux Toolkit、檔案系統與 Redux Persist:綜合指南
    Expo with Redux Toolkit、檔案系統與 Redux Persist:綜合指南
    Redux Toolkit 是一個流行的函式庫,它透過提供一組實用程式和約定來簡化 Redux 開發。它包括一個減速器和動作創建模式,可以簡化編寫 Redux 邏輯的過程。將 Redux Persist 與 Redux Toolkit 結合可以顯著提高 React Native 應用程式中狀態管理的...
    程式設計 發佈於2024-11-07
  • 如何處理非巢狀 Lambda 閉包中的變數作用域問題?
    如何處理非巢狀 Lambda 閉包中的變數作用域問題?
    Python Lambda 閉包作用域問題將變數封裝在閉包中以將其從函數簽章中刪除是一種常用於高效代碼結構的技術。但是,在非嵌套 lambda 的情況下,閉包保留變數的最終值,從而在嘗試基於迭代變數存取特定值時導致問題。 考慮提供的程式碼片段:names = ['a', 'b', 'c'] def ...
    程式設計 發佈於2024-11-07
  • 如何使用現代 CSS 將按鈕無縫整合到輸入欄位中?
    如何使用現代 CSS 將按鈕無縫整合到輸入欄位中?
    如何使用現代CSS 將按鈕整合到輸入中問題:創建視覺元素其中按鈕無縫整合在輸入欄位中,允許正常的使用者互動、保留文字可見性並保持可存取性和螢幕閱讀器相容性。 解決方案:Flexbox 和表單邊框最佳方法是使用彈性盒佈局以及包含元素(表單)上的邊框:定位:設定具有水平行佈局的彈性盒,允許輸入擴展以填充...
    程式設計 發佈於2024-11-07
  • 核心開發中的 C++:綜合指南
    核心開發中的 C++:綜合指南
    介紹 由於直接硬體存取和最小的運行時開銷,核心開發傳統上是 C 的領域。然而,由於其物件導向的特性,C 在核心程式設計中找到了自己的位置,這可以帶來更乾淨、更易於維護的程式碼。本指南將逐步介紹如何使用 C 進行核心開發,重點是設定環境、建置專案以及使用 C 功能編寫核心程式碼,同時...
    程式設計 發佈於2024-11-07
  • 在 React 專案中實作 CSS 模組
    在 React 專案中實作 CSS 模組
    React 中的 CSS 模組是一種透過自動產生唯一類別名稱來確定 CSS 範圍的方法。這可以防止大型應用程式中的類別名稱衝突並允許模組化樣式。以下是如何在 React 專案中使用 CSS 模組: 1. 設定 預設情況下,React 支援 CSS 模組。您只需使用擴展名 .modul...
    程式設計 發佈於2024-11-07
  • 有哪些資源可用於實現彗星模式?
    有哪些資源可用於實現彗星模式?
    Comet:伺服器推送模式伺服器推送是一種在伺服器和Web 用戶端之間實現雙向通訊的技術,已經獲得了顯著的成果最近的興趣。 Comet 設計模式是作為在 JavaScript 應用程式中實現伺服器推送的一種有前途的方法而出現。本問題探討了 Comet 模式的 jQuery 實作和通用資源的可用性。 ...
    程式設計 發佈於2024-11-07
  • 探索心理健康門診計畫的類型
    探索心理健康門診計畫的類型
    門診心理健康治療方法是一種不強調在醫療機構過夜的方案。這種療法主要在醫生辦公室、醫院或診所提供,在那裡人們可以進行定期治療,以進行高度結構化的定期治療。 在 COVID-19 大流行期間,全球約有 2.75 億名吸毒者。比前幾十年高出近 22%。吸毒成癮的增加導致全美吸毒過量人數創下歷史新高。好消...
    程式設計 發佈於2024-11-07
  • 如何在 C++ Builder 中初始化 OpenGL 幀:逐步指南
    如何在 C++ Builder 中初始化 OpenGL 幀:逐步指南
    如何在C Builder 中初始化OpenGL 幀在C Builder 中的窗體內初始化OpenGL 幀可能是一項具有挑戰性的任務。在嘗試調整現有 OpenGL 程式碼(例如問題中提供的範例)時,您可能會遇到困難。 要正確建立和渲染OpenGL 幀,請依照下列步驟操作:使用TForm::Handle...
    程式設計 發佈於2024-11-07
  • 利用這些罕見的 HTML 屬性來增強您的 Web 開發技能
    利用這些罕見的 HTML 屬性來增強您的 Web 開發技能
    Introduction HTML attributes are most often referred to as the overlooked heroes of web development, playing a crucial role in shaping the st...
    程式設計 發佈於2024-11-07
  • 如何在 Python 中將字串轉換為二進位:ASCII 與 Unicode?
    如何在 Python 中將字串轉換為二進位:ASCII 與 Unicode?
    在Python中將字串轉換為二進位在Python中,您可能會遇到需要將字串表示為二進位數字序列的情況。這對於多種原因都很有用,例如資料加密或二進位檔案操作。 使用 bin() 函數將字串轉換為二進位的最簡單方法就是使用bin()函數。該函數接受一個字串作為輸入,並將其二進位表示形式傳回為字串。例如:...
    程式設計 發佈於2024-11-07
  • 為什麼從 Java 中的匿名內部類別存取外部實例變數需要是 Final?
    為什麼從 Java 中的匿名內部類別存取外部實例變數需要是 Final?
    Java內部類別:為什麼必須使用「最終」外部實例變數在Java中定義匿名內部類別時,您可能會遇到將外部實例變數標記為“final”的要求。本文探討了這個約束背後的原因。 如同提供的程式碼中所提到的,實例變數 jtfContent 必須宣告為 Final 才能在內部類別中存取。這項要求源自於 Java...
    程式設計 發佈於2024-11-07
  • 理解 Python 中的關鍵字參數
    理解 Python 中的關鍵字參數
    When you're programming in Python, knowing how to pass arguments to functions is key for writing clear, flexible, and easy-to-maintain code. One powe...
    程式設計 發佈於2024-11-07
  • 如何防止列印時DIV跨頁分割?
    如何防止列印時DIV跨頁分割?
    列印問題:防止 DIV 跨頁分叉遇到動態 DIV 在頁面之間切成兩半的列印困境?當嘗試列印具有大量可變高度 DIV 元素的冗長文件時,就會出現此問題。 CSS 救援解決方案為了解決此問題,CSS 屬性打破了 -裡面來拯救。透過指定值避免,您可以確保渲染引擎防止 DIV 中途分割。這是程式碼片段:@m...
    程式設計 發佈於2024-11-07
  • Python 是強類型語言嗎?
    Python 是強類型語言嗎?
    Python 是強型別語嗎? Python 中的強型別概念造成了一些混亂,因為該語言允許變數改變執行期間的類型。然而,Python 確實是強型別的,儘管是動態的。 Python 中的強型別強型別可確保值維持其宣告的型別,除非明確轉換。在Python中,這意味著變數沒有固定的類型,而是它們所保存的值有...
    程式設計 發佈於2024-11-07

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

Copyright© 2022 湘ICP备2022001581号-3