国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
前提條件
コンポーネントとは何ですか?
小道具と狀態(tài)
小道具を理解する
クラスコンポーネント
最後の考え
ホームページ ウェブフロントエンド jsチュートリアル Reactのステートレス機(jī)能コンポーネントとステートレス機(jī)能コンポーネント

Reactのステートレス機(jī)能コンポーネントとステートレス機(jī)能コンポーネント

Mar 18, 2025 am 10:13 AM

React:インタラクティブなユーザーインターフェイスの構(gòu)築のコアコンポーネント

Reactは、インタラクティブなユーザーインターフェイスを構(gòu)築するための人気のJavaScriptフロントエンドライブラリです。その學(xué)習(xí)曲線は比較的平坦であり、これが最近多くの注目を集めた理由の1つです。

學(xué)習(xí)すべき重要な概念はたくさんありますが、コンポーネントは間違いなくReactの中核です。コンポーネントを深く理解することで、React Development Journeyが簡(jiǎn)単になります。

前提條件

このチュートリアルは、反応を?qū)Wび始めたばかりで、コンポーネントをよりよく理解する必要がある初心者向けです。コンポーネントの基礎(chǔ)から始めて、コンポーネントパターンやそれらを使用する時(shí)期などのより挑戦的な概念に徐々に飛び込みます。クラスコンポーネントと機(jī)能コンポーネント、ステートフルおよびステートレスコンポーネント、コンテナコンポーネントとプレゼンテーションコンポーネントなど、さまざまなコンポーネントカテゴリをカバーします。

始めましょう!

コンポーネントとは何ですか?

コンポーネントは、UIの一部を説明する自己完結(jié)型の獨(dú)立したミニチュアエンティティです。アプリケーションのUIは、それぞれ獨(dú)自のコード、構(gòu)造、APIを備えた小さなコンポーネントに分割できます。

たとえば、FacebookのWebアプリケーションを見ると、何千もの相互接続された機(jī)能があります。興味深いことに、Facebookには30,000のコンポーネントが含まれており、その數(shù)は増加しています。コンポーネントアーキテクチャを使用すると、各コンポーネントについて獨(dú)立して考えることができます。各コンポーネントは、他のコンポーネントにどのように影響するかを心配することなく、その範(fàn)囲內(nèi)ですべてを更新できます。

FacebookのUIを例にとると、検索バーが適切なコンポーネント候補(bǔ)になります。 Facebookのニュースフィードは、別のコンポーネント(または多くのサブコンポーネントを含むコンポーネント)を形成できます。検索バーに関連するすべてのメソッドとAJAX呼び出しは、このコンポーネント內(nèi)に配置されます。

コンポーネントも再利用可能です。同じコンポーネントを複數(shù)の場(chǎng)所で使用する必要がある場(chǎng)合、これは簡(jiǎn)単に実裝できます。 JSX構(gòu)文を使用すると、コンポーネントを表示する必要がある場(chǎng)合はどこでも宣言できます。

<code><div>
<br>    現(xiàn)在のカウント:{count}<br><hr>
<br>    {/*コンポーネントの再利用性の例*/}<br>            updatecount = {setCount(count 1)}/><br>            updatecount = {setCount(count-1)}/><br>
</div>
<br></code>

小道具と狀態(tài)

コンポーネントにはデータが必要です。コンポーネントとデータを2つの異なる方法で組み合わせることができます:小道具または狀態(tài)として。小道具と狀態(tài)は、コンポーネントがどのようにレンダリングされ、動(dòng)作するかを決定します。小道具から始めましょう。

小道具を理解する

コンポーネントが通常のJavaScript関數(shù)である場(chǎng)合、Propsは関數(shù)入力です。このアナロジーによれば、コンポーネントは入力を取得し(プロップと呼びます)、処理し、JSXコードをレンダリングします。

Reactのステートレス機(jī)能コンポーネントとステートレス機(jī)能コンポーネント小道具のデータにはコンポーネントがアクセスできますが、Reactの哲學(xué)は、小道具は不変でトップダウンである必要があるということです。これは、親コンポーネントが必要なデータを子コンポーネントに小道具として渡すことができることを意味しますが、子コンポーネントはその小道具を変更できません。したがって、以下のように小道具を編集しようとすると、「読み取り専用の値に値を割り當(dāng)てることはできません」エラーが得られます。 useState()フックは次のように使用されます。

 <code>const [count,setCount] = useState(0);<br></code>

その後、 setCount()を使用して現(xiàn)在のカウントを取得できます。

クラスコンポーネント

クラスコンポーネントは機(jī)能的なコンポーネントよりも複雑な場(chǎng)合がありますが、このスタイルを好む人もいます。

Reactのステートレス機(jī)能コンポーネントとステートレス機(jī)能コンポーネント super()を拡張して、親クラスから継承されたコンテンツを渡すことにより、クラスコンポーネントを作成できます。

コンポーネントを定義する場(chǎng)合、コンストラクターはオプションであることに注意してください。上記の場(chǎng)合、コンポーネントには狀態(tài)がなく、コンストラクターは有用な操作を?qū)g行していないようです。小道具。

ベストプラクティスは、すべてのクラスコンポーネントにコンストラクターを使用することをお?jiǎng)幛幛工毪长趣扦埂?/p>

また、コンストラクターを使用する場(chǎng)合は、 super()を呼び出す必要があります。そうしないと、エラー「super()call in constructor」が発生します。

私の最後のポイントは、フックまたはthis.setState()を使用して狀態(tài)を更新する場(chǎng)合、 countcount変數(shù)を使用することです。 useState() Hookは、新しい値で狀態(tài)を更新できる2番目の関數(shù)を返します。

 <code>// 這有效<br><br>// 鉤子<br>const [count,setCount] = useState(0);<br> setCount(count value);<br><br> // 類組件<br>handleCount(value) {<br>    this.setState({count: this.state.count value});<br> }<br></code>

次に、 setCount()を入力として取得し、前のcount値を1で増分します。これは予想どおりに機(jī)能します。ただし、問(wèn)題があります。複數(shù)のsetState()がある場(chǎng)合は、カウントを100増加させてから1に更新し、以前に追加された100を削除します。 setState()が非同期であり、複數(shù)のprevState事前に以前の狀態(tài)への參照であり、最新の狀態(tài)が保証されている場(chǎng)合。 React.memoはフックに使用されます。これはすべて、あなたが反応するのが初めてのときに少し混亂するように聞こえるかもしれません。同じプロップと狀態(tài)が與えられたときに同じ結(jié)果が返されることが保証されている場(chǎng)合、コンポーネントは純粋なコンポーネントと呼ばれます。ステートレスコンポーネントは、純粋なコンポーネントの優(yōu)れた例です。これは、入力が與えられているため、何をレンダリングするかを知っているからです。

 <code>const HelloWorld = ({name}) => (<br></code> {`hi $ {name}`}<br> );<br>

コンポーネントが純粋な場(chǎng)合は、 PureComponentで最適化できます。これらの方法は、Reactコンポーネントの更新動(dòng)作を変更します。デフォルトでは、狀態(tài)または小道具が変更されると、Reactコンポーネントは常に更新されます。ただし、 memoを使用する場(chǎng)合、Reactは小道具と狀態(tài)で淺い比較を?qū)g行します。つまり、オブジェクトのすべてのキー/値ペアを再帰的に比較するのではなく、オブジェクトの直接コンテンツを比較します。したがって、オブジェクト參照のみが比較されます。これは、狀態(tài)または小道具が変更された場(chǎng)合、予想どおりに機(jī)能しない場(chǎng)合があります。

 <code>// 類組件<br>class MyComponent extends React.PureComponent { // 使用它代替React.Component<br> // ...<br> }<br><br> // 鉤子<br>const MyComponent = React.memo(function MyComponent(props) { // 將組件函數(shù)包裝在React.memo 中<br> // ...<br> });<br></code>

React.memoはパフォーマンスを最適化するために使用されます。何らかのパフォーマンスの問(wèn)題がない限り、それらを使用することを検討する理由はありません。

最後の考え

機(jī)能コンポーネントとフックは通常、クラスコンポーネントのカウンターパートよりもはるかに簡(jiǎn)単です。したがって、特別な設(shè)定がない限り、関數(shù)コンポーネントが最良の選択です。

このチュートリアルでは、コンポーネントベースのアーキテクチャとReactのさまざまなコンポーネントパターンの高レベルの概要があります。

この記事は更新されており、ジェイコブジャクソンの貢獻(xiàn)が含まれています。ジェイコブは、ウェブ開発者、ハイテクライター、フリーランサー、オープンソースの寄稿者です。

以上がReactのステートレス機(jī)能コンポーネントとステートレス機(jī)能コンポーネントの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScript vs. Java:どの言語(yǔ)を?qū)Wぶべきですか? JavaScript vs. Java:どの言語(yǔ)を?qū)Wぶべきですか? Jun 10, 2025 am 12:05 AM

JavaScriptisidealforwebdevelopment,whileJavasuitslarge-scaleapplicationsandAndroiddevelopment.1)JavaScriptexcelsincreatinginteractivewebexperiencesandfull-stackdevelopmentwithNode.js.2)Javaisrobustforenterprisesoftwareandbackendsystems,offeringstrong

JavaScriptで使用するコメントシンボル:明確な説明 JavaScriptで使用するコメントシンボル:明確な説明 Jun 12, 2025 am 10:27 AM

JavaScriptでは、シングルラインコメント(//)またはマルチラインコメント(//)を選択することは、コメントの目的とプロジェクトの要件に依存します。 2。詳細(xì)なドキュメントには、マルチラインコメントを使用します。 3。コメントスタイルの一貫性を維持します。 4。過(guò)剰な承認(rèn)を避けます。 5.コメントがコードと同期して更新されていることを確認(rèn)してください。適切な注釈スタイルを選択すると、コードの読みやすさと保守性を向上させることができます。

JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します JavaScriptの究極のガイドコメント:コードの明確さを強(qiáng)化します Jun 11, 2025 am 12:04 AM

はい、javascriptcommentsは不必要に使用されています。

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JavaScriptのマスターコメント:包括的なガイド JavaScriptのマスターコメント:包括的なガイド Jun 14, 2025 am 12:11 AM

ContureCrucialInjavascript formantaining andFosteringCollaboration.1)TheypindeBugging、Onboarding、およびUnderstandingCodeevolution.2)usesingle-linecomments for quickexplanations andmulti-linecomments fordeTeTaileddespransions.3)BestPractsinclud

JavaScriptデータ型:ディープダイビング JavaScriptデータ型:ディープダイビング Jun 13, 2025 am 12:10 AM

javascripthasseveralprimitivedatypes:number、string、boolean、undefined、null、symbol、andbigint、andnon-primitiveTypeslike objectandarray

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

See all articles