Axios による呪文の宝探し

JavaScriptBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、Axios を使って認証ヘッダ付きのリクエストを送信する方法と、レスポンスデータに基づいて DOM を更新する方法を学びます。神秘的な呪文の一部を取得するためにサーバとやり取りするシンプルな Web アプリケーションを構築します。

👀 プレビュー

web app interaction preview

🎯 タスク

このプロジェクトでは、以下を学びます。

  • プロジェクトをセットアップして初期コードを取得する方法
  • "鍵 1" ボタンの機能を実装する方法
  • "鍵 2" ボタンの機能を実装する方法
  • 取得した呪文の部分に基づいて宝箱を開けられるかどうかを確認する方法

🏆 成果

このプロジェクトを完了すると、以下ができるようになります。

  • カスタムヘッダ付きの HTTP リクエストを Axios を使って行う方法
  • 動的なコンテンツを表示するために DOM を操作する方法
  • 特定の条件をチェックするための条件付きロジックを実装する方法
  • 手順に沿って Web 開発プロジェクトを完了する方法

プロジェクト構造をセットアップする

このステップでは、プロジェクトファイルと構造をセットアップします。以下の手順に従ってこのステップを完了しましょう。

プロジェクトフォルダを開きます。ディレクトリ構造は以下の通りです。

├── css
├── lib
├── js
│   └── index.js
└── index.html

その中で:

  • index.html はメインページです。
  • css はプロジェクトのスタイルを保存するフォルダです。
  • lib はプロジェクトの JavaScript 依存関係を保存するフォルダです。
  • js/index.js はコードを補完する必要がある JavaScript ファイルです。

WebIDE の右下隅にある Go Live ボタンをクリックして、プロジェクトを実行します。

次に、VM の上部にある「Web 8080」を開き、手動で更新してページを表示します。

鍵 1 のボタンを実装する

このステップでは、「鍵 1」ボタンの機能を実装します。

  1. js/index.js ファイルで、key1Button.addEventListener("click", async () => {... }) ブロックを探します。

  2. let { data } = await axios.get("/spellone"); を以下のコードに変更します。

    let { data } = await axios.get("/spellone", {
      headers: {
        Authorization: "2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7"
      }
    });
    

    これらのコード行は、Authorization ヘッダを指定されたトークンに設定して /spellone エンドポイントに GET リクエストを送信します。レスポンスデータは spell1 要素に表示されます。

  3. js/index.js ファイルを保存します。

鍵 2 のボタンを実装する

このステップでは、「鍵 2」ボタンの機能を実装します。

  1. js/index.js ファイルで、key2Button.addEventListener("click", async () => {... }) ブロックを探します。

  2. let { data } = await axios.get("/spelltwo"); を以下のコードに変更します。

    let { data } = await axios.get("/spelltwo", {
      headers: {
        Authorization: "2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7"
      }
    });
    

    これらのコード行は、Authorization ヘッダを指定されたトークンに設定して /spelltwo エンドポイントに GET リクエストを送信します。レスポンスデータは spell2 要素に表示されます。

  3. js/index.js ファイルを保存します。

宝箱をチェックする

このステップでは、宝箱を開けられるかどうかをチェックするロジックを実装します。

  1. js/index.js ファイルで、tryOpenTreasureBox() 関数を探します。
  2. この関数は、spell1spell2 要素の内容が期待される値(「I love you」と「You love me too」)と一致するかどうかをチェックします。条件が満たされた場合、treasureBox 要素に「opened」クラスを追加し、成功メッセージを表示します。
  3. js/index.js ファイルを保存します。

アプリケーションをテストする

  1. ブラウザに戻り、ページを更新します。
  2. 「鍵 1」と「鍵 2」のボタンをクリックし、ページの変化を観察します。
  3. 宝箱が正常に開かれた場合、成功メッセージが表示されます。完成した効果は以下の通りです。

完成効果

おめでとうございます!あなたは「神秘的な呪文」プロジェクトを完了しました。Axios を使って認証ヘッダ付きでリクエストを送信する方法と、レスポンスデータに基づいて DOM を更新する方法を学びました。

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたは実験技術を向上させるために LabEx でさらに多くの実験を行うことができます。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習