再利用可能な React のトグルコンポーネント

ReactReactBeginner
今すぐ練習

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

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

はじめに

この実験では、Reactを使ってトグルコンポーネントを実装する方法を探ります。トグルコンポーネントは、2つの状態間で切り替えるために使用される一般的なUI要素です。コンポーネントの状態を管理し、その状態に基づいて異なるCSSクラスを適用するために、useState()フックを使用します。この実験が終わるとき、Reactで再利用可能なUIコンポーネントを作成する方法をより深く理解しているでしょう。


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/FundamentalsGroup -.-> react/conditional_render("Conditional Rendering") react/AdvancedConceptsGroup -.-> react/hooks("React Hooks") react/StateManagementGroup -.-> react/use_state_reducer("Using useState and useReducer") subgraph Lab Skills react/jsx -.-> lab-38366{{"再利用可能な React のトグルコンポーネント"}} react/event_handling -.-> lab-38366{{"再利用可能な React のトグルコンポーネント"}} react/conditional_render -.-> lab-38366{{"再利用可能な React のトグルコンポーネント"}} react/hooks -.-> lab-38366{{"再利用可能な React のトグルコンポーネント"}} react/use_state_reducer -.-> lab-38366{{"再利用可能な React のトグルコンポーネント"}} end

トグル

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

トグルコンポーネントをレンダリングするには、次の手順に従います。

  1. useState()フックを使用して、isToggledOn状態変数をdefaultToggledに初期化します。
  2. <input>要素をレンダリングし、そのonClickイベントをバインドしてisToggledOn状態変数を更新します。ラッピングする<label>要素に適切なclassNameを適用します。
  3. 次のCSSを使用してトグルコンポーネントをスタイリッシュにします。
.toggle input[type="checkbox"] {
  display: none;
}

.toggle.on {
  background-color: green;
}

.toggle.off {
  background-color: red;
}

以下がコードです。

const Toggle = ({ defaultToggled = false }) => {
  const [isToggleOn, setIsToggleOn] = React.useState(defaultToggled);

  return (
    <label className={isToggleOn ? "toggle on" : "toggle off"}>
      <input
        type="checkbox"
        checked={isToggleOn}
        onChange={() => setIsToggleOn(!isToggleOn)}
      />
      {isToggleOn ? "ON" : "OFF"}
    </label>
  );
};

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

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

まとめ

おめでとうございます!あなたはトグル実験を完了しました。あなたの技術を向上させるために、LabExでさらに多くの実験を練習できます。