React の useDefault フック

ReactReactBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、React で useDefault と呼ばれるカスタムフックを作成する方法を検討します。このフックの目的は、null または undefined の場合にはデフォルトのフォールバック値を持つ状態付きの値と、それを更新する関数を作成することです。実験が終了するとき、カスタムフックを使用して React コードを簡略化し、効率的にする方法をより深く理解しているでしょう。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL react(("React")) -.-> react/FundamentalsGroup(["Fundamentals"]) react(("React")) -.-> react/AdvancedConceptsGroup(["Advanced Concepts"]) react(("React")) -.-> react/StateManagementGroup(["State Management"]) react/FundamentalsGroup -.-> react/jsx("JSX") react/FundamentalsGroup -.-> react/event_handling("Handling Events") react/AdvancedConceptsGroup -.-> react/hooks("React Hooks") react/StateManagementGroup -.-> react/use_state_reducer("Using useState and useReducer") subgraph Lab Skills react/jsx -.-> lab-38379{{"React の useDefault フック"}} react/event_handling -.-> lab-38379{{"React の useDefault フック"}} react/hooks -.-> lab-38379{{"React の useDefault フック"}} react/use_state_reducer -.-> lab-38379{{"React の useDefault フック"}} end

React useDefaultフック

VM には既に index.htmlscript.js が用意されています。一般的には、script.jsstyle.css にのみコードを追加すればよいです。

以下がコードです。

const useDefault = (defaultState, initialState) => {
  const [value, setValue] = React.useState(initialState);
  const isEmpty = value === undefined || value === null;
  return [isEmpty ? defaultState : value, setValue];
};
const UserCard = () => {
  const [user, setUser] = useDefault({ name: "Adam" }, { name: "John" });

  return (
    <>
      <div>User: {user.name}</div>
      <input onChange={(e) => setUser({ name: e.target.value })} />
      <button onClick={() => setUser(null)}>Clear</button>
    </>
  );
};

ReactDOM.createRoot(document.getElementById("root")).render(<UserCard />);

デフォルトのフォールバック付きの状態付きの値を作成するには、React の useState() フックを使用します。初期値が null または undefined であるかどうかを確認します。そうであれば代わりに defaultState を返し、そうでなければ実際の value 状態と setValue 関数を返します。上記のコードは、useDefault と呼ばれるカスタムフックでこの機能を実装する方法を示しています。

提供された例では、useDefault を使用してデフォルト値 { name: 'Adam' }user 状態を作成しています。初期状態は { name: 'John' } に設定されています。UserCard コンポーネントでは、user とその名前を更新する入力フィールドが表示されます。また、状態を null にリセットするクリアボタンも用意されています。最後に、ReactDOM.createRoot() を使用してコンポーネントをレンダリングします。

右下隅の「Go Live」をクリックして、ポート8080でウェブサービスを実行してください。その後、Web 8080 タブを更新してウェブページをプレビューできます。

まとめ

おめでとうございます!あなたはReact useDefaultフックの実験を完了しました。あなたの技術を向上させるために、LabExでさらに多くの実験を行って練習することができます。