JSXは主にUIがどのように見えるかを説明するために主に使用されており、従来の制御フローステートメントを本質的にサポートしていないため、JSX内でif/else
ステートメントを直接使用することは難しい場合があります。ただし、JSXの外側のJavaScriptの制御フローを使用するか、インライン条件付き式などの他の手法を利用することにより、JSX内の条件付きロジックを管理できます。
JSXをレンダリングする前に、Reactコンポーネント内でif/else
ロジックを使用する方法の例を次に示します。
<code class="jsx">function MyComponent(props) { let message; if (props.isLoggedIn) { message = <h1>Welcome back!</h1>; } else { message = <h1>Please log in.</h1>; } return ( <div> {message} </div> ); }</code>
この例では、 if/else
ステートメントはJSXの外側で変数message
を設定するために使用され、JSXに補間されます。このアプローチは、JSXを清潔に保ち、レンダリングに集中します。
はい、条件付きレンダリングのために、JSX内で直接成功演算子を使用できます。これは一般的なパターンであり、非常に簡潔にすることができます。三元演算子を使用すると、JSX内で直接条件に基づいて、さまざまな要素またはコンポーネントをレンダリングできます。
JSX内の3成分演算子を使用する方法は次のとおりです。
<code class="jsx">function MyComponent(props) { return ( <div> {props.isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please log in.</h1>} </div> ); }</code>
この例では、三元演算子はisLoggedIn
小道具をチェックし、その値に基づいて異なるJSX要素をレンダリングします。このアプローチは、JSX内で直接シンプルなレンダリングシナリオに役立ちます。
Reactコンポーネントの条件付きロジックを管理するためのif/else
には、それぞれ独自のユースケースと利点があります。
Logical && operator :これは、JSXに要素を条件付きで含めるのに役立ちます。条件がtrue
ある場合、 &&
の後の要素がレンダリングされます。
<code class="jsx">function MyComponent(props) { return ( <div> {props.isLoggedIn && <h1>Welcome back!</h1>} {!props.isLoggedIn && <h1>Please log in.</h1>} </div> ); }</code>
&&
オペレーターと同様ですが、より高度で、 if/else
を使用せずに異なる条件に基づいて異なる結果を可能にします。React.usememoフック:計算に費用がかかる条件付きの計算値に役立ちます。
<code class="jsx">const message = React.useMemo(() => { if (props.isLoggedIn) { return <h1>Welcome back!</h1>; } else { return <h1>Please log in.</h1>; } }, [props.isLoggedIn]);</code>
コンポーネント構成:さまざまな条件に対して個別のコンポーネントを作成し、条件付きでレンダリングできます。
<code class="jsx">function LoggedInMessage() { return <h1>Welcome back!</h1>; } function LoggedOutMessage() { return <h1>Please log in.</h1>; } function MyComponent(props) { return ( <div> {props.isLoggedIn ? <loggedinmessage></loggedinmessage> : <loggedoutmessage></loggedoutmessage>} </div> ); }</code>
コードの読みやすさを改善し、JSX内で直接if/else
ステートメントを使用しないようにするには、次の戦略を実装できます。
if/else
を使用できます。これにより、JSXを清潔に保ち、ロジックをより読みやすくします。ヘルパー関数を使用する:条件付きロジックをカプセル化するヘルパー関数を定義し、JSX内のこれらの関数を呼び出すことができます。
<code class="jsx">function getMessage(isLoggedIn) { if (isLoggedIn) { return <h1>Welcome back!</h1>; } else { return <h1>Please log in.</h1>; } } function MyComponent(props) { return ( <div> {getMessage(props.isLoggedIn)} </div> ); }</code>
useMemo
のようなReactフックを使用して、JSXに影響を与える値を条件付けて計算することができ、JSX自体からロジックを分離します。これらの戦略を採用することにより、JSXが読みやすく、UIの説明に焦点を合わせていることを確認できますが、条件付きロジックはより管理しやすく保守可能な方法で処理されます。
以上がJSX内のIF/他のステートメントをどのように使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。