反応で条件付きレンダリングを実装する方法.
3004 ワード
こんにちは、みんな、
この記事では、反応要素を条件付きでレンダリングする方法を理解しましょう.
React を使用すると、さまざまな条件に基づいて UI マークアップをレンダリングできます.反応で条件付きレンダリングを実装する方法は他にもあるかもしれませんが、最も一般的に使用されるいくつかの点についてのみ説明します.
条件付きレンダリングを明確に理解するために、簡単な例を取り上げます.アプリにログインとログアウトの 2 つのボタンがあるとします.
私たちの要件は、ログインしたときに
では、この問題をどのように解決しますか.
一つ一つ見ていきましょう.
jsx で JavaScript 式を記述できることがわかっているため、どの条件が true であるかに基づいて
要素変数を使用する.
このアプローチでは、jsx 式で javascript 関数を使用する代わりに、jsx 要素変数を使用します. jsx 要素の値は、前のアプローチと同じように条件に基づいて決定されます.
上記の例では、
三項演算子を使用する
上記の例では、コンポーネント関数で条件を使用する代わりに、jsx 式自体に条件を適用しています.条件を適用するために、三項演算子を使用しています.三項演算子は 3 つのオペランドを使用することがわかっているため、1 つ目は条件自体、2 つ目は条件が満たされた場合に返される結果、3 つ目は条件が満たされない場合に返されるものです. .
論理
このアプローチも前のアプローチと少し似ていますが、このアプローチでは三項演算子の代わりに論理
上記の例では、
より多くのアプローチがあるかもしれませんが、上記のアプローチが一般的に使用されます.
この投稿がお役に立てば幸いです.
この記事では、反応要素を条件付きでレンダリングする方法を理解しましょう.
React を使用すると、さまざまな条件に基づいて UI マークアップをレンダリングできます.反応で条件付きレンダリングを実装する方法は他にもあるかもしれませんが、最も一般的に使用されるいくつかの点についてのみ説明します.
条件付きレンダリングを明確に理解するために、簡単な例を取り上げます.アプリにログインとログアウトの 2 つのボタンがあるとします.
私たちの要件は、ログインしたときに
Logout
ボタンが表示され、ログアウトしたときに Login
ボタンが表示されるようなものです.では、この問題をどのように解決しますか.
一つ一つ見ていきましょう.
if else
ステートメントを使用して. if else
ブロックの実行中に、条件が満たされた場合、if
ブロック内のコードが実行されます.そうでない場合、else
ブロック内のコードが実行されます.const Home = () => {
const [isLoggedin, setIsLoggedin] = useState(true);
const displayButton = () => {
if (isLoggedin) {
return <button>Logout</button>;
} else {
return <button>Login</button>;
}
};
return (
<div>
<h1>Conditional rendering</h1>
{displayButton()}
</div>
);
};
jsx で JavaScript 式を記述できることがわかっているため、どの条件が true であるかに基づいて
button
要素を返し、その特定の返された要素のみがレンダリングされる 1 つの関数を記述しました.このアプローチでは、jsx 式で javascript 関数を使用する代わりに、jsx 要素変数を使用します. jsx 要素の値は、前のアプローチと同じように条件に基づいて決定されます.
const Home = () => {
const [isLoggedin, setIsLoggedin] = useState(true);
let Button;
if (isLoggedin) {
Button = <button>Logout</button>;
} else {
Button = <button>Login</button>;
}
return (
<div>
<h1>Conditional rendering</h1>
{Button}
</div>
);
};
上記の例では、
Button
変数を jsx 要素として使用しており、その値は isLoggedin
状態に基づいて割り当てられています.三項演算子を使用する
const Home = () => {
const [isLoggedin, setIsLoggedin] = useState(true);
return (
<div>
<h1>Conditional rendering</h1>
{isLoggedin ? <button>Logout</button> :
<button>Login</button>}
</div>
);
};
上記の例では、コンポーネント関数で条件を使用する代わりに、jsx 式自体に条件を適用しています.条件を適用するために、三項演算子を使用しています.三項演算子は 3 つのオペランドを使用することがわかっているため、1 つ目は条件自体、2 つ目は条件が満たされた場合に返される結果、3 つ目は条件が満たされない場合に返されるものです. .
論理
&&
演算子を使用する. このアプローチも前のアプローチと少し似ていますが、このアプローチでは三項演算子の代わりに論理
&&
演算子を使用します.const Home = () => {
const [isLoggedin, setIsLoggedin] = useState(true);
return (
<div>
<h1>Conditional rendering</h1>
{isLoggedin && <button>Logout</button>}
{!isLoggedin && <button>Login</button>}
</div>
);
};
上記の例では、
button
要素をレンダリングするための 2 つの jsx 式があり、isLoggedin
状態に基づいて適切な jsx 式が評価されます.より多くのアプローチがあるかもしれませんが、上記のアプローチが一般的に使用されます.
この投稿がお役に立てば幸いです.
Reference
この問題について(反応で条件付きレンダリングを実装する方法.), 我々は、より多くの情報をここで見つけました https://dev.to/iamchiki/how-to-implement-conditional-rendering-in-react-pc8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol