ホームページ >ウェブフロントエンド >jsチュートリアル >React Docs の最近のレビューから得た重要なポイント
このブログはもともと Medium に投稿されたものです
React 愛好家の皆さん、こんにちは!私は最近 React ドキュメントを詳しく調べたので、学んだことを皆さんと共有したいと思います。これは、React で強固な基盤を構築したい人向けの簡潔で最小限のガイドです。簡単な説明とコード スニペットで中心となる概念を詳しく見てみましょう。
少し長い話になりますが、React の中心となる概念をすべて一度に理解してください。さらに前進するには、これらの概念を要約して再検討することが有益であることがわかります。
React は、UI を再利用可能なコンポーネントに分割することです。 React アプリを構築するときは、次のことから始めます:
参考: https://react.dev/learn/ Thinking-in-react
コンポーネントは React アプリケーションの構成要素です。関数ベースまたはクラスベースにすることができます (時代遅れなのでお勧めしません)。 JSX は、JavaScript で HTML のようなコードを記述できるようにする構文拡張機能です。
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
参考文献:
Props は、親コンポーネントから子コンポーネントにデータを渡す方法です。これらは読み取り専用であり、コンポーネントを純粋に保つのに役立ちます。
function Greeting(props) { return <p>Welcome, {props.username}!</p>; } // Usage <Greeting username="Alice" />
参考: https://react.dev/learn/passing-props-to-a-component
React を使用すると、特定の条件に基づいてコンポーネントまたは要素を条件付きでレンダリングできます。
function UserGreeting(props) { return props.isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign in.</h1>; }
参考: https://react.dev/learn/conditional-rendering
React で要素のリストをレンダリングするには、map() 関数を使用します。各アイテムに一意のキー プロップを追加することを忘れないでください。
function FruitList(props) { const fruits = props.fruits; return ( <ul> {fruits.map((fruit) => ( <li key={fruit.id}>{fruit.name}</li> ))} </ul> ); }
参考: https://react.dev/learn/rendering-lists
純粋なコンポーネントは、同じプロパティと状態に対して常に同じ出力をレンダリングします。予測可能でテストが簡単です。
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
参考: https://react.dev/learn/keeper-components-pure
React は、仮想 DOM と呼ばれる UI の内部表現を構築し、維持します。これにより、React は実際の DOM の変更された部分のみを効率的に更新できます。
参考: https://react.dev/learn/ Understanding-your-ui-as-a-tree
React は合成イベントを使用して、異なるブラウザ間で一貫してユーザー インタラクションを処理します。
function Greeting(props) { return <p>Welcome, {props.username}!</p>; } // Usage <Greeting username="Alice" />
参考: https://react.dev/learn/responding-to-events
状態は、コンポーネント内で時間の経過とともに変化するデータに使用されます。 useState フックを使用して、機能コンポーネントに状態を追加します。
function UserGreeting(props) { return props.isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please sign in.</h1>; }
参考: https://react.dev/learn/state-a-components-memory
制御対象コンポーネントの状態は React によって制御されます。
function FruitList(props) { const fruits = props.fruits; return ( <ul> {fruits.map((fruit) => ( <li key={fruit.id}>{fruit.name}</li> ))} </ul> ); }
制御されていないコンポーネントは、DOM 上で状態を直接管理します。
function PureComponent(props) { return <div>{props.value}</div>; }
Ref は、render メソッドで作成された DOM ノードまたは React 要素にアクセスする方法を提供します。
function Button() { const handleClick = () => { alert('Button clicked!'); }; return <button onClick={handleClick}>Click me</button>; }
特定のイベントに対するブラウザのデフォルトの動作を停止するには、preventDefault() を使用します。
import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={() => setCount(count + 1)}>Click me</button> </div> ); }
React イベントはネイティブ DOM イベントと同様に伝播します。 stopPropagation() を使用すると、イベントのバブリングを防ぐことができます。
function ControlledInput() { const [value, setValue] = useState(''); return <input value={value} onChange={e => setValue(e.target.value)} />; }
複雑な状態ロジックには useReducer フック、または Redux や Zustand などの状態管理ライブラリの使用を検討してください。
function UncontrolledInput() { return <input defaultValue="Hello" />; }
コンテキストは、すべてのレベルで props を手動で渡すことなく、コンポーネント ツリーを通じてデータを渡す方法を提供します。
import React, { useRef } from 'react'; function TextInputWithFocusButton() { const inputEl = useRef(null); const onButtonClick = () => { inputEl.current.focus(); }; return ( <> <input ref={inputEl} type="text" /> <button onClick={onButtonClick}>Focus the input</button> </> ); }
参考: https://react.dev/learn/passing-data-deeply-with-context
副作用とは、データのフェッチや DOM 操作など、実行される関数の範囲外に影響を与える操作です。 useEffect フックを使用して副作用を管理します。
function Form() { const handleSubmit = (e) => { e.preventDefault(); console.log('Form submitted'); }; return <form onSubmit={handleSubmit}>...</form>; }
function Parent() { return ( <div onClick={() => console.log('Parent clicked')}> <Child /> </div> ); } function Child() { const handleClick = (e) => { e.stopPropagation(); console.log('Child clicked'); }; return <button onClick={handleClick}>Click me</button>; }
参考文献:
参考: https://react.dev/reference/rules
カスタム フックを使用すると、コンポーネント ロジックを再利用可能な関数に抽出できます。
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
参考: https://react.dev/reference/rules/rules-of-hooks
これで React の旅は終わりです!覚えておいてください、学ぶための最良の方法は実践することです。プロジェクトの構築を開始し、これらの概念を試してください。さらに詳細が必要な場合は、遠慮せずに React ドキュメントを参照してください。コーディングを楽しんでください!
以上がReact Docs の最近のレビューから得た重要なポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。