基本的な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のインストールと設定のチュートリアル
目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...
1.サービスコマンドサービスコマンドは実際には/etc/init.dディレクトリに移動し、関連プログ...
ドロップダウンメニューを書くには、ボタンをクリックします。メニューの入り口はアイコンボタンをクリック...
まずmysqlの圧縮バージョンをダウンロードします。公式ダウンロードアドレスは123WORDPRES...
<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...
この記事では、参考までに、簡単な抽選機能を実装するためのjsの具体的なコードを共有します。具体的な内...
clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...
目次1. MySQLの主キーとテーブルフィールドに関するコメント1. 主キーと自動増分2. テーブル...
最近、たくさんの人に改変してもらったフレームワークに取り組んでいます。毎日コードを見ていると目が回り...
一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...
具体的な方法:ステップ1: mysqlサービスを停止する /etc/init.d/mysqld を停...
シナリオ最近の要件は、モバイル デバイス用の h5 ページです。これには、選択可能なカードの行が必要...
コードをコピーコードは次のとおりです。 <前> <div> <sele...
目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...
序文以前は、キャッシュを使用してルートを強調表示していました。すべてのルートをトラバースし、クリック...