」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > React 元件的大圖

React 元件的大圖

發佈於2024-11-03
瀏覽:404

The Big Picture of React Component

在 React 中,组件就像用户界面 (UI) 的构建块。将其视为一小段可重用的代码,用于定义页面特定部分的外观和行为方式。这些组件允许开发人员通过组合简单、独立和可重用的部分来构建复杂的 UI。
一般来说,组件本质上是独立的、可重用的 UI 部分,可以将其视为呈现用户界面某些部分的函数。
我知道“独立”、“可重用部件”和“渲染”这些词可能会存在一些冲突。

为什么使用组件背后有 3 个主要问题。

  1. 可重用性
  2. 关注点分离
  3. 模块化
  • 可重用性确保创建一个组件一次并在您的应用程序中多次重用它。
  • 关注点分离确保每个组件专注于 UI 的特定部分,从而更容易管理和维护代码。
  • 模块化可确保将您的 UI 分解为小型、可管理的组件,从而更易于测试、调试和开发

我们通过定义组件来一一证明。哎呀!?我忘了你不知道如何定义一个简单的组件。不用担心我在这里吗?分解所有的东西。那么让我们潜水吧-?
假设您正在开发一个电子商务应用程序。在应用程序的多个地方或多个页面中,您需要渲染相同的产品卡。渲染意味着响应 UI。
现在是你的时间吗?思考?如何在应用程序中以多个页面显示产品卡。
传统上,当创建网页时,开发人员会通过添加一些 JavaScript 来标记其内容并添加交互。当相同标记的多个页面没有替换为多个页面时,这种方法非常有效,这会让您有时感到无聊,同时又令人厌烦,并且难以调试和管理。因此,有机会打破您的代码,管理起来可能很麻烦。
在这里你将发现React组件架构的美妙之处。 React 允许您创建组件并使用任意数量的位置。

// === Reminder ===
Components are regular javascript functions that can sprinkled with javascript
function ProductCard(){
  return(
      

title of the product

price of the product

description of the product

// rest of info
) }

让我们打破它-
步骤 1:声明一个简单的 javascript 函数作为 ProductCard name
步骤 2:组件/函数返回一个由其他标签组成的

标签。
// === Reminder ===
All tags must return under a parent tag or using a react fragment(>)
// === Reminder ===
React component name must start with a capital letter otherwise it won't treated as a component

ProductCard 组件返回一个 div 标签,其中包含 h1、h2、p 或其他一些像 HTML 一样编写的必要标签,但它的底层是 Javascript。该语法称为 JSX(javascript XML)。不用担心,我稍后会解释。

// === Reminder ===
JSX is a syntax extension for javascript that lets you write HTML-like markup inside a javascript file which handles the logic of rendering and markup live together in the same place as components.

现在您的组件可以使用了。例如,您有一个产品页面并且必须呈现一些产品。

//Products.js or jsx file
function ProductCard(){
  return(
      

title of the product

price of the product

description of the product

// rest of info
) } function ProductPage(){ return(

product page

) }

您的浏览器将渲染 3 次 ProductCard 意味着浏览器已可见 3 个产品卡。

重点是浏览器得到这个ProductPage代码后会如何反应
  • 是小写的,所以 React 知道它将被称为 HTML 标签
  • 以大写 P 开头,因此 React 知道它将被视为组件。

到目前为止,一切都很好?。我们已成功将产品卡呈现到产品页面。
现在该整理一下代码了:
您可能有一个或多个组件,例如 ProductCard、ProductReviewCard、SimilarProductCard 等。因此,在一个文件中声明和管理所有组件可能会很麻烦。因此,让我们仅使用文件结构使其更有组织性以进行管理。
让我们创建一个可重复使用的文件夹,因为 ProductCard 可能已在多个页面中使用。在可重用文件夹内创建 ProductCard.js/jsx 文件。

//reusable/ProductCard.js or jsx file
function ProductCard(){
  return(
      

title of the product

price of the product

description of the product

// rest of info
) }

现在有一点,如果您将 ProductCard 组件与 ProductPage 文件分开,将如何使用它。我知道您可能已经明白了,是的,我们可以从 ProductCardfile 中导出 ProductCard 函数,如您实际上更喜欢的命名或默认值。

//reusable/ProductCard.js or jsx file
export default function ProductCard(){
  return(
      

title of the product

price of the product

description of the product

// rest of info
) }

现在它可以从 ProductPage 文件中使用。只需从 ProductPagefile 导入 ProductCard,然后根据需要使用它即可。

//ProductPage.js or jsx file
import ProducrCard from './reusable/ProductCard.js'
function ProductPage(){
  return(
      

product page

) }

我之前提到过为什么应该使用组件——为了可重用性、关注点分离和模块化。

  • 我们的 ProductCard 组件现在完全可以重复使用。我们可以在任何地方使用它。
  • 在 ProductPage 中,可能有多个部分,例如 ProductCard、ProductReviewCard、SimilarProductCard、RecommendedProductCard 等。使其管理和维护代码,将其集中到单独的部分中,作为组件和部分。
  • 将 UI 分解为小块后,可以更轻松地测试、调试和开发。如果出现错误,我们可以轻松地从特定组件中找到错误/问题。 我希望现在更清楚了?

完成所有这些之后,您已经了解您也可以嵌套组件。

好吧,让我们再看一下-?
创建布局文件夹
在Layout文件夹下创建Header文件夹,然后在Header文件夹中创建index.js文件

export default function Header(){
  return(
      

Header

) }
create `Footer` folder under the `Layout` folder then create `index.js` file inside `Footer` folder
export default function Footer(){
  return(
      

Footer

) }

现在在Layout文件夹下创建index.js文件

import Header from './Header';
import Footer from './Footer';
export default function Layout(){
  return(
      

page content

) }

我希望你已经发现了 React 组件架构的美妙之处。这才刚刚开始,并试图在你的内心深处培养兴趣。
快乐编码??

版本聲明 本文轉載於:https://dev.to/hasan_rifat/the-big-picture-of-react-component-1o1m?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

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

Copyright© 2022 湘ICP备2022001581号-3