「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > React コンポーネントの全体像

React コンポーネントの全体像

2024 年 11 月 3 日に公開
ブラウズ:201

The Big Picture of React Component

React では、コンポーネントはユーザー インターフェイス (UI) の構成要素のようなものです。これは、ページの特定の部分がどのように表示され、どのように動作するかを定義する、再利用可能な小さなコードの塊であると考えてください。これらのコンポーネントを使用すると、開発者は、単純で独立した再利用可能な部分を組み合わせて、複雑な UI を構築できます。
一般に、コンポーネントは本質的に自己完結型で再利用可能な UI であり、ユーザー インターフェイスの一部をレンダリングする関数と考えることができます。
自己完結型、再利用可能な部分、およびレンダリングという言葉について多少の矛盾があるかもしれないことは承知しています。

コンポーネントを使用する理由の背後には 3 つの大きな懸念があります。

  1. 再利用性
  2. 懸念の分離
  3. モジュール性
  • 再利用性により、コンポーネントを一度作成すれば、アプリケーション全体で複数回再利用できます。
  • 関心事の分離により、各コンポーネントが UI の特定の部分に集中するようになり、コードの管理と保守が容易になります。
  • モジュール化により、UI を小さく管理しやすいコンポーネントに分割することで、テスト、デバッグ、開発が容易になります。

コンポーネントを定義して一つずつ証明してみましょう。おっと!?単純なコンポーネントの定義方法がわからないことを忘れていました。心配しないでください、私はここにいます?あらゆるものを分解すること。じゃあ、潜ってみましょう-?
電子商取引アプリケーションを開発しているとします。アプリケーションの複数の場所または複数のページで、同じ製品カードをレンダリングする必要があります。レンダリングとは、UI に応答することを意味します。
今が時間ですか?考えるには?アプリケーション内の製品カードを複数のページに表示する方法。
従来、Web ページを作成するとき、開発者はコンテンツをマークアップし、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: ProductCard 名
として単純な JavaScript 関数を宣言します。 ステップ 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 コンポーネントは、h1、h2、p、または HTML のように記述されたその他の必要なタグを含む div タグを返しますが、内部は 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

) }

ブラウザが ProductCard を 3 回表示するということは、ブラウザに 3 つの製品カードが表示されていることを意味します。

重要なのは、この ProductPage コードを取得した後にブラウザがどのように反応するかです。
  • は小文字であるため、React はそれが HTML タグとして参照されることを認識します
  • は大文字の P で始まるため、React はそれがコンポーネントとして扱われることを認識します。

ここまでは順調ですね?。製品カードを製品ページにレンダリングすることに成功しました。
ここでコードを整理します:
ProductCard、ProductReviewCard、SimilarProductCard などのコンポーネントが 1 つ以上存在する場合があるため、すべてのコンポーネントを 1 つのファイルで宣言して管理するのは面倒な場合があります。そこで、ファイル構造だけを使って管理できるように整理してみましょう。
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 から ProductCardfunction を名前付きまたはデフォルトとしてエクスポートできます。

//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