基本的なHTTPリクエストの設定まず、ターミナルで次のコマンドを実行して、Axios をプロジェクトにインストールします。 axiosnpm をインストールする axios をインストールする 次に、次のように Vue コンポーネントに axios をインポートします。 //App.view - axios をインポートする <スクリプト> 'axios' から axios をインポートします エクスポートデフォルト{ 設定 () { } } </スクリプト> 次に、axios.get を使用して、Kanye の REST API の URL からランダムな引用を取得します。次に、Promise.then を使用して、リクエストが応答を返すのを待機できます。 //App.vue - HTTPリクエストを送信する <スクリプト> 'axios' から axios をインポートします エクスポートデフォルト{ 設定 () { axios.get('https://api.kanye.rest/').then(レスポンス => { // 応答を処理する }) } } </スクリプト> API から応答を取得できるようになったので、その意味を見てみましょう。それを quote という名前の引用として保存します。 //App.vue - レスポンスの保存 <スクリプト> 'axios' から axios をインポートします 'vue' から { ref } をインポートします エクスポートデフォルト{ 設定 () { axios.get('https://api.kanye.rest/').then(レスポンス => { // 応答を処理する quote.value = 応答 }) 戻る { 引用 } } } </スクリプト> 最後にテンプレートに出力し、斜体と引用符で表示します。また、引用元を追加する必要があります。 //App.vue - テンプレートコード <テンプレート> <div> <i>「{{ 引用 }}」</i> - カニエ・ウェスト </div> </テンプレート> ブラウザでコンテンツを確認してください。 リクエストの応答コードなどの追加情報とともに、ランダムな Kanye の引用が返されていることがわかります。 この小さなアプリケーションでは、data.quote 値のみに関心があるため、レスポンスのどのプロパティにアクセスするかをスクリプトで指定する必要があります。 //App.vue - 見積もりのみ取得 axios.get('https://api.kanye.rest/').then(レスポンス => { // 応答を処理する quote.value = レスポンスデータ.quote }) 上記のコードで、必要なものが得られます。 async/await を使用した AxiosVue プログラムでは、Axios と async/await モードを組み合わせることができます。 セットアップ プロセスでは、まず現在の GET コードをコメント アウトし、次に loadQuote という非同期メソッドを作成します。内部的には、同じ axios.get メソッドを使用できますが、非同期で完了するまで待機し、結果を response という定数に保存します。 次に引用の値を設定します。 //App.vue - 非同期 Axios const loadQuote = 非同期() => { const レスポンス = KanyeAPI.getQuote() を待機 quote.value = レスポンスデータ.quote } 前のコードとまったく同じように動作しますが、今回は非同期パターンを使用します。 Axios によるエラー処理async-await パターンでは、try と catch を使用して API 呼び出しにエラー処理を追加できます。 //async/await によるエラー処理 試す { const レスポンス = KanyeAPI.getQuote() を待機 quote.value = レスポンスデータ.quote } キャッチ (エラー) { コンソール.log(エラー) } 生の promise 構文を使用する場合は、API 呼び出しの後に .catch を追加して、リクエストからのエラーをキャッチできます。 //Promise によるエラー処理 api.kanye.rest の取得 .then(応答 => { // 応答を処理する quote.value = レスポンスデータ.quote }).catch(エラー => { コンソール.log(エラー) }) POSTリクエストの送信POST リクエストを送信する方法を見てみましょう。ここでは、JSONPlaceholder を使用して API 呼び出しをモックします。 ドキュメントには、POST リクエストをテストするための /posts エンドポイントが提供されています。 次に、クリックすると API 呼び出しがトリガーされるボタンを作成する必要があります。テンプレート内に「Create Post」という名前のボタンを作成し、クリックすると createPost というメソッドを呼び出します。 <div> <i>「{{ 引用 }}」</i> - カニエ・ウェスト <p> <button @click="createPost">投稿を作成</button> </p> </div> </テンプレート> 次に、コード内に createPost メソッドを作成し、それをセットアップから返します。 この方法は、前の GET リクエストに似ています。axios.post を呼び出して URL (つまり https://jsonplaceholder.typicode.com/posts) を渡すだけで、ドキュメントにデータをコピーして貼り付けることができます。 //アプリ.vue 定数createPost = () => { axios.post('https://jsonplaceholder.typicode.com/posts', JSON.stringify({ タイトル: 'foo', 本文: 'バー', ユーザーID: 1, }))。その後(応答 => { console.log(応答) }) } ボタンをクリックして試してみましょう。コンソールに多くの情報が出力され、POST リクエストが正常に完了したことが分かります。 Axios で再利用可能な API 呼び出しを書くプロジェクトに src/services ディレクトリを作成し、それを使用してすべての API 呼び出しを整理します。 ディレクトリには 2 種類のファイルが含まれています。
これの利点は、コードを少し変更するだけで、開発サーバーと本番サーバーを簡単に切り替えることができることです。 services/API.js ファイルを作成し、Axios の baseURL を Kanye REST API のデフォルトに設定します。 API.js は 'axios' から axios をインポートします エクスポートデフォルト(url='https://api.kanye.rest') => { axios.create({ を返す ベースURL: URL、 }) } 次に、KanyeAPI.js ファイルを作成し、./API から API をインポートします。ここでは、さまざまな API 呼び出しをエクスポートします。 API() を呼び出すと、.get または .post を呼び出すことができる Axios インスタンスが提供されます。 //カニエAPI.js './API' から API をインポートします エクスポートデフォルト{ 引用を取得(){ API().get('/') を返します }, } 次に、App.vue 内で、コンポーネントが Axios を自分で作成するのではなく、再利用可能な API 呼び出しを通じてこの新しいファイルを使用できるようにします。 //アプリ.vue const loadQuote = 非同期() => { 試す { const response = await KanyeAPI.getQuote() // <--- この行 quote.value = レスポンスデータ.quote } キャッチ (エラー) { コンソール.log(エラー) } } 次に、createPost を独自の再利用可能なメソッドに移動します。 KanyeAPI.js に戻り、エクスポートのデフォルトに createPost を追加します。これにより、POST リクエストのデータが HTTP リクエストのパラメータとして渡されます。 GET リクエストと同様に、API を介して axios インスタンスを取得しますが、今回はデフォルトの URL 値をオーバーライドし、JSONplaceholder URL を渡す必要があります。その後、通常どおり Axios POST を使用できます。 //カニエAPI.js エクスポートデフォルト{ 引用を取得(){ API().get('/') を返します }, ポストデータを作成します。 API('https://jsonplaceholder.typicode.com/').post('/posts', data) を返します。 } } とてもシンプル App.vue に戻ると、次のように新しい post メソッドを呼び出すことができます。 //アプリ.vue 定数createPost = () => { const レスポンス = KanyeAPI.createPost(JSON.stringify({ タイトル: 'foo', 本文: 'バー', ユーザーID: 1, })) console.log(応答) } ボタンをクリックすると、専用 API が正常に動作していることがわかります。 API 呼び出しをこれらの Vue コンポーネントから独自のファイルに移動することの利点は、これらの API 呼び出しをアプリケーション全体のどこでも使用できることです。これにより、より再利用性とスケーラビリティに優れたコードが作成されます。 最終コード// アプリ.vue <テンプレート> <div> <i>「{{ 引用 }}」</i> - カニエ・ウェスト <p> <button @click="createPost">投稿を作成</button> </p> </div> </テンプレート> <スクリプト> 'axios' から axios をインポートします 'vue' から { ref } をインポートします './services/KanyeAPI' から KanyeAPI をインポートします エクスポートデフォルト{ 設定 () { const 引用 = ref('') const loadQuote = 非同期() => { 試す { const レスポンス = KanyeAPI.getQuote() を待機 quote.value = レスポンスデータ.quote } キャッチ (エラー) { コンソール.log(エラー) } } 引用を読み込む() // axios.get('https://api.kanye.rest/') // .then(レスポンス => { // // 応答を処理する // quote.value = response.data.quote // }).catch(エラー => { // コンソール.log(エラー) // }) 定数createPost = () => { const レスポンス = KanyeAPI.createPost(JSON.stringify({ タイトル: 'foo', 本文: 'バー', ユーザーID: 1, })) console.log(応答) // axios.post('https://jsonplaceholder.typicode.com/posts', JSON.stringify({ // タイトル: 'foo', // 本体: 'バー', // ユーザーID: 1, // })).then(レスポンス => { // console.log(応答) // }) } 戻る { 投稿を作成、 引用 } } } </スクリプト> <スタイル> #アプリ { フォントファミリー: Avenir、Helvetica、Arial、sans-serif; -webkit-font-smoothing: アンチエイリアス; -moz-osx-font-smoothing: グレースケール; テキスト配置: 中央; 色: #2c3e50; 上マージン: 60px; } </スタイル> //API.js 'axios' から axios をインポートします エクスポートデフォルト(url='https://api.kanye.rest') => { axios.create({ を返す ベースURL: URL、 }) } //カニエAPI.js './API' から API をインポートします エクスポートデフォルト{ 引用を取得(){ API().get('/') を返します }, ポストデータを作成します。 API('https://jsonplaceholder.typicode.com/').post('/posts', data) を返します。 } } 上記は、Vue で Axios 非同期リクエスト API を使用する方法の詳細です。Vue で Axios 非同期リクエスト API を使用する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Nginx でアクセス頻度、ダウンロード速度、同時接続数を制限する方法
>>: Windows10でのMySQL 5.7.21のインストールと設定のチュートリアル
仮想ホストは、インターネット上で実行されているサーバー ホストを複数の「仮想」ホストに分割する特殊な...
インストール前の準備CUDA の主な目的はディープラーニングであり、現在主流のディープラーニングフレ...
1.メニューバーにスタートと入力し、スタートアップアプリケーションをクリックして入力します。 2. ...
目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...
この記事では、centos7 環境でバイナリ インストール パッケージを使用して mysql5.6 ...
毎日jQueryプラグイン - 検索履歴を作成するためのものです。参考までに、具体的な内容は次のとお...
目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. 準備2. 梱包を開始する...
1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...
この記事の例では、jQueryのカスタム虫眼鏡効果の具体的なコードを参考までに共有しています。具体的...
MySQL サービスを使用する場合、通常の状況では、MySQL のタイムアウト設定は 8 時間 (2...
<br />著者はかつてWebデザインの初心者でしたが、継続的な探求と実践を通じて、今で...
目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...
MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...
1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...
目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...