UI開発者の皆さん、こんにちは! React ゲームをレベルアップする準備はできていますか?今日、私たちは React ワンライナーの世界に飛び込みます。React ワンライナーは、作業をとても楽にする、気の利いたコンパクトなコードの断片です。あなたが React の初心者であろうと、熟練したプロであろうと、これらのワンライナーはあなたのツールキットにさらなる機能を確実に追加します。
React JS はユーザー インターフェイスを構築するための頼りになるライブラリになっていますが、それには十分な理由があります。柔軟で効率的で、非常に素晴らしいものを作成できます。しかし、必要以上に多くのコードを書いていることに気づくことがあります。ここで、これらのワンライナーが役に立ちます。これらは React 世界のスイス アーミー ナイフのようなものです – 小さいですが、とても強力です!
それでは、お気に入りの飲み物を手に取り、快適になり、コーディングを難しくするのではなく、よりスマートに行うための 10 個の React ワンライナーを見てみましょう。準備ができて?早速始めましょう!
古典的な React シナリオである条件付きレンダリングから始めましょう。特定の条件が満たされた場合にのみ何かを表示したい場合。従来は、if ステートメントまたは三項演算子を使用することがありました。しかし、これをチェックしてください:
{condition &&}
この小さな宝石は、論理 AND 演算子 (&&) を使用して、条件が true の場合にのみコンポーネントをレンダリングします。シンプルでクリーンで、手間をかけずに仕事を終えることができます。
このワンライナーの美しさは、JavaScript が論理式を評価する方法にあります。 && の前の条件が false の場合、式全体が false となり、React は何もレンダリングしません。しかし、それが true の場合、React は && の後に続くものを評価します。この場合、これがコンポーネントです。
このテクニックは、「はい」か「いいえ」ではっきりと答えなければならない状況に最適です。ログインしているユーザーにのみウェルカム メッセージを表示したり、特定の時間帯にのみ特別オファーを表示したりしたい場合があります。いずれにせよ、このワンライナーで解決できます。
次に、デフォルトの小道具について話しましょう。 props がコンポーネントに渡されない可能性がある場合に対処することがいかに重要であるかは、誰もが知っています。通常の方法には、defaultProps を設定するか、関数シグネチャでデフォルトのパラメーターを使用することが含まれます。しかし、ここにそのトリックを実行する気の利いたワンライナーがあります:
const {prop = defaultValue} = props;
この行では、デフォルト値による構造化代入が使用されています。 props で prop が定義されていない場合は、defaultValue.
にフォールバックします。このアプローチは非常にクリーンで、関数本体内で直接実行されます。これは、複数の props を扱っていて、関数シグネチャを乱雑にしたり、別個のdefaultProps オブジェクトを追加したくない場合に特に便利です。
さまざまなサイズを持つことができる Button コンポーネントを構築していると想像してください。次のように使用できます:
const Button = ({ size = 'medium', children }) => { return ; };
これで、誰かがサイズを指定せずにボタンを使用した場合、デフォルトで「中」になります。素敵ですね?
状態管理は React 開発の大きな部分を占めており、場合によっては以前の値に基づいて状態を更新する必要があります。これを簡単にするワンライナーは次のとおりです:
setCount(prevCount => prevCount 1);
これは、前の状態を引数として受け取る状態セッターの関数形式を使用します。
このアプローチにより、常に最新の状態値を使用して作業できるようになります。これは、状態の更新がバッチ処理されたり遅延したりする可能性があるシナリオでは非常に重要です。
以前の値に基づいて状態を更新する必要がある場合は常にこれを使用します。これは、カウンター、ブール値の切り替え、または新しい状態が古い状態に依存する状況などのシナリオで特に役立ちます。
React での配列の操作は、特に項目のリストを扱う場合によくあるタスクです。元の配列を変更せずに状態の配列に項目を追加するのに役立つワンライナーを次に示します:
setItems(prevItems => [...prevItems, newItem]);
これはスプレッド演算子を使用して、前のすべての項目と最後に新しい項目を加えた新しい配列を作成します。
React では、不変性がパフォーマンスと予測可能性の鍵となります。このワンライナーにより、既存の配列を変更するのではなく、新しい配列を作成することが保証されます。これはまさに React が望んでいることです。
ToDo リスト アプリを構築しているとします。ユーザーが新しいタスクを追加するとき、次のワンライナーを使用して状態を更新できます:
const addTask = (newTask) => { setTasks(prevTasks => [...prevTasks, newTask]); };
シンプル、クリーン、効果的!
配列と同様に、状態内のオブジェクトの更新は React の一般的な操作です。これは、元のプロパティを変更せずにオブジェクトの特定のプロパティを更新できるワンライナーです:
setUser(prevUser => ({ ...prevUser, name: 'New Name' }));
これはスプレッド演算子を使用して、前のユーザーのすべてのプロパティを持つ新しいオブジェクトを作成しますが、「name」プロパティは新しい値で上書きされます。
このアプローチでは、不変性を維持しながら、必要なプロパティのみを更新できます。それは、「これらの特定の変更を除いて、すべてを同じにしてください。」と言っているようなものです。
このワンライナーは、フォームや、ユーザー入力やその他のイベントに基づいてオブジェクトの一部を更新する必要があるシナリオを扱うときに役立ちます。
Ref は、DOM 要素に直接アクセスする場合に非常に便利です。これは ref コールバックを設定するワンライナーです:
node && node.focus()} />
これにより、レンダリング時に自動的にフォーカスされる入力要素が作成されます。
ref コールバックは DOM ノードを引数として受け取ります。このワンライナーは、ノードが存在するかどうかを確認し (ref が null の場合のエラーを回避するため)、ノードの focus メソッドを呼び出します。
このテクニックは、フォームの読み込み時に最初の入力フィールドに自動的にフォーカスしたい、アクセシビリティ対応のフォームを作成する場合に最適です。
React のインライン スタイルは、少し冗長になる場合があります。より簡潔にするためのワンライナーは次のとおりです:
これは、オブジェクト リテラルを使用して、単一行で複数のスタイルを定義します。
一般的にスタイル設定には CSS クラスを好みますが、インライン スタイルが必要な場合や便利な場合もあります。このワンライナーにより、JSX がクリーンで読みやすくなります。
これは、プロパティや状態に基づいて変化する動的なスタイル、または別の CSS ファイルを設定したくない場合の迅速なプロトタイピングに特に役立ちます。
条件付きクラス名は React の一般的なパターンです。このプロセスをスムーズにするワンライナーは次のとおりです:
これは、テンプレート リテラルと三項演算子を使用して条件付きでクラスを追加します。
三項の空の文字列により、条件が false の場合に余分なスペースが追加されなくなり、クラス名がきれいに保たれます。
これは、ナビゲーション メニューのアクティブな状態や、ユーザー インタラクションに基づいた視覚的な状態の切り替えなどに最適です。
エラー境界は、堅牢な React アプリケーションの重要な部分です。これは、単純なエラー境界を作成するワンライナーです:
class ErrorBoundary extends React.Component { state = { hasError: false }; static getDerivedStateFromError = () => ({ hasError: true }); render = () => this.state.hasError ?Something went wrong.
: this.props.children; }
これは技術的には 1 行に複数のステートメントですが、非常に簡潔な方法で完全なエラー境界コンポーネントを作成します。
このワンライナーは、エラーを追跡するための状態、エラー発生時に状態を更新する静的メソッド、エラー メッセージを表示するか子を通常どおりレンダリングするレンダリング メソッドを備えたクラス コンポーネントを定義します。
エラーをキャッチして適切に処理したいアプリの任意の部分にこれをラップし、アプリ全体のクラッシュを防ぎます。
最後に、機能コンポーネントをメモ化するためのワンライナーを見てみましょう:
const MemoizedComponent = React.memo(({ prop1, prop2 }) =>{prop1} {prop2});
これにより、プロパティが変更された場合にのみ再レンダリングされる機能コンポーネントのメモ化されたバージョンが作成されます。
React.memo は、プロパティが同じ場合にレンダリングをスキップする上位コンポーネントです。これは、同じプロパティで頻繁にレンダリングするコンポーネントのパフォーマンスを大幅に向上させることができます。
これは、レンダリングにコストがかかる、またはコンポーネント ツリーの奥深くにあり、同じプロパティを頻繁に受け取る純粋な機能コンポーネントに最適です。
これで完成です!コードをよりクリーンに、より効率的に、そして敢えて言えば、書くのが少し楽しくなる 10 個の強力な React ワンライナー。条件付きレンダリングからエラー境界まで、これらのコンパクトなスニペットには大きなパンチが詰め込まれています。
これらのワンライナーは素晴らしいですが、すべてのシナリオにとって必ずしも最適なソリューションであるとは限らないことに注意してください。重要なのは、それらがどのように機能し、いつ使用するかを理解することです。コーディングにおけるすべてのことと同様、読みやすさと保守性は常に最優先事項である必要があります。
それでは、次回 React プロジェクトに深く取り組むときは、これらのワンライナーを試してみてください。時間を節約し、コードをもう少しエレガントにするだけかもしれません。そして誰が知っていますか?新しく見つけた React ウィザードリーで他の開発者を感心させることもできるかもしれません。
探索を続け、学習を続け、そして最も重要なことに、React を楽しみ続けてください。結局のところ、それが私たち UI 開発者を興奮させるものですよね?皆さん、コーディングを楽しんでください!
それで、あなたのお気に入りの React ワンライナーは何ですか?他に誓う人はいますか?他の開発者と共有して会話を続けてください。力を合わせれば、React で可能なことの限界を押し広げ、さらに素晴らしいユーザー インターフェイスを作成できます。次回まで、楽しい反応をしてください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3