React では、コンポーネントはユーザー インターフェイス (UI) の構成要素のようなものです。これは、ページの特定の部分がどのように表示され、どのように動作するかを定義する、再利用可能な小さなコードの塊であると考えてください。これらのコンポーネントを使用すると、開発者は、単純で独立した再利用可能な部分を組み合わせて、複雑な 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() } function ProductPage(){ return(title of the product
price of the product
description of the product
// rest of info) } product page
ブラウザが ProductCard を 3 回表示するということは、ブラウザに 3 つの製品カードが表示されていることを意味します。
ここまでは順調ですね?。製品カードを製品ページにレンダリングすることに成功しました。
ここでコードを整理します:
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
コンポーネントを使用する必要がある理由については、再利用性、関心事の分離、モジュール性のために前に述べました。
ここまでの説明を終えると、コンポーネントもネストできることがわかりました。
わかりました、もう一度見てみましょう-?
レイアウトフォルダーを作成する
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 コンポーネント アーキテクチャの美しさをすでに発見していただければ幸いです。これはまだ始まったばかりで、皆さんの心の中で関心を高めようとしました。
コーディングを楽しんでください??
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3