1. 要件Vue.js フレームワークを使用してフロントエンド プロジェクトを開発する場合、サーバー インターフェイスへの Ajax リクエストが頻繁に送信されます。開発プロセスでは、プロジェクトでの使用を容易にするために、axios をさらにカプセル化する必要があります。 2. Vueプロジェクト構造次のディレクトリ構造で Vue プロジェクトをローカルに作成します。
Vueプロジェクトにaxiosの管理ディレクトリとしてhttpディレクトリを作成します。httpディレクトリには2つのファイルがあります。
3. コード例/http/api.js ファイルのコードは次のとおりです。 エクスポートデフォルト{ 'users_add': '/users/add', 'users_find': '/users/find', 'users_update': '/users/update', 'users_delete': '/users/delete' } /http/index.js ファイルのコードは次のとおりです。 'axios' から axios をインポートします './api' から api をインポートします //axiosインスタンスオブジェクトを作成するlet instance = axios.create({ baseURL: 'http://localhost:3000', //サーバーアドレス タイムアウト: 5000 //デフォルトのタイムアウト期間}) //リクエストインターセプターinstance.interceptors.request.use(config=>{ //ここでリクエストインターセプトのコードを記述します。これは通常、読み込みウィンドウをポップアップするために使用されます。console.log('Requesting...') 設定を返す },エラー=>{ console.error('リクエストが失敗しました',err) }) //レスポンスインターセプターinstance.interceptors.response.use(res=>{ //ここで応答データを処理します console.log('リクエストが成功しました!') return res //返されたオブジェクトはリクエストメソッドのレスポンスオブジェクトに渡されます},err=>{ // 応答エラー処理 console.log('応答に失敗しました!', err) // Promise.reject(err) を返します。 }) //axios リクエスト メソッドをカプセル化します。パラメーターは構成オブジェクトです //option = {method,url,params} method はリクエスト メソッド、url はリクエスト インターフェイス、params はリクエスト パラメーターです async function http(option = {}) { 結果 = null とする if(option.method === 'get' || option.method === 'delete'){ // 取得および削除リクエストを処理する await instance[option.method]( api[オプション.url], {パラメータ: オプション.パラメータ} ).then(res=>{ 結果 = res.data }).catch(エラー=>{ 結果 = エラー }) }それ以外の場合(option.method === 'post' || option.method === 'put'){ //POSTおよびPUTリクエストを処理する await instance[option.method]( api[オプション.url], オプション.パラメータ ).then(res=>{ 結果 = res.data }).catch(エラー=>{ 結果 = エラー }) } 結果を返す } デフォルトのhttpをエクスポート カプセル化された /http/index.js ファイルを main.js エントリ ファイルにインポートします。サンプル コードは次のとおりです。 'vue' から Vue をインポートします './App.vue' からアプリをインポートします。 './router' からルーターをインポートします './store' からストアをインポートします './http' から http をインポートします Vue.config.productionTip = false Vue.prototype.$http = http Vue.use(Elementui) 新しいVue({ ルーター、 店、 レンダリング: h => h(App) }).$mount('#app') App.vue ルート コンポーネントで axios リクエストをテストします。サンプル コードは次のとおりです。 <テンプレート> <div> <button @click="getDate">リクエストを送信</el-button> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ メソッド: { 日付を取得する(){ this.$http({ メソッド: 'get'、 url: 'users_find' }).then(res=>{ コンソール.log(res) }) } } } </スクリプト> ここには http://localhost:3000/users/find インターフェースが必要です。そうでないと、リクエストは失敗します。 4. 効果の実証Vue プロジェクトを起動し、ブラウザで Vue プロジェクトのアドレスにアクセスします。私のアドレスは http://localhost:8080 です。ボタンをクリックしてリクエストを送信します。結果は下の図のようになります。 この時点で、Vue プロジェクトで単純な axios カプセル化が完了しました。実際のニーズに応じて axios をカプセル化することもできます。この記事は参考用です。 Vue プロジェクトで axios (http リクエストの統合管理) をカプセル化する方法についてはこれで終わりです。Vue カプセル化 axios 管理 http リクエストに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL の InnoDB ストレージ ファイルの詳細な説明
>>: Linux の EXT シリーズファイルシステムフォーマットの詳細な説明
導入アニメーションを使用すると、JavaScript や jQuery に依存せずに、純粋な CSS...
この記事では、ブルーグリーン デプロイメントと、nginx を使用してブルーグリーン デプロイメント...
インストール手順 rpm -ivh mysql-コミュニティ-共通-5.7.18-1.el7.x86...
マウスの位置をマッピングしたり、ドラッグ効果を実装したりすることは、 JavaScriptで行うこと...
目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...
SVN は Subversion の略称で、ブランチ管理システムを使用して効率的に管理するオープンソ...
1. インストール方法は? 1. [実行] -> [cmd] と入力して、小さな黒いウィンドウ...
コンピュータ サイエンスで最も一般的に使用され、議論されているデータ構造の 1 つは、二分探索木です...
楽観的ロック楽観的ロックは、主にデータ バージョン記録メカニズムに基づいて実装され、通常はデータベー...
MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...
構文フォーマット: row_number() over(partition by grouping ...
[ Tomcat8 の Linux インストール ] Tomcat をアンインストールする - まず...
社内には以前からアイドル状態だった、構成の整ったサーバーがあったので、EXSI 6.0 を使って複数...
定義と使用@media クエリを使用すると、さまざまなメディア タイプに異なるスタイルを定義できます...
目次1. html2Canvasをインストールする2. 必要なVueコンポーネントを導入する3. ス...