axios を使用する前に、まずインストールする必要があります。 糸追加アクシオス npm インストール axios bower axios をインストール <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 作成したプロジェクトに応じて、上記の 4 つのインストール方法を選択できます。 1. axioの基本的な使い方まずコンポーネントを作成し、axios をインポートして、インポートが成功するかどうかをテストします。次のコードを記述します。 「axios」からaxiosをインポートします 「vue」から{onMounted}をインポートします エクスポートデフォルト{ 設定(){ マウント時(()=>{ アクシオス({ url:'https://xxxxxx.net/hj/mp/banner/l' }) }) } } onMounted はライフサイクル フック関数です。ページが読み込まれると、このネットワーク リクエストが呼び出されます。 axios メソッドはネットワーク要求メソッドを設定しません。デフォルトは GET リクエストです。 サービスを開いてネットワーク要求を確認すると、要求が失敗したことがわかりました。 エラー内容: オリジン 'http://localhost:3000' からの 'https://xxxxx/hj/mp/banner/l' の XMLHttpRequest へのアクセスが CORS ポリシーによってブロックされました: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。 これはクロスドメインの問題を示しています。 2. クロスドメインの問題を解決するには?この問題を解決するにはプロキシを使用し、新しい vue.config.js ファイルを作成して構成を追加します。 モジュール.エクスポート={ 開発サーバー:{ プロキシ:{ '/api':{ ターゲット: 'https://xxxxx.net', 変更元:true、 パス書き換え:{ '^/api':'' } } } } } 効果を確認するためにページを更新すると、恥ずかしいです。要求されたアドレスは完全に正しいのですが、404 アドレスが見つかりませんというプロンプトが繰り返し表示されます。 vue2 のプロジェクトではリクエストは通常どおりですが、vue3 では 404 になります。 ネットワーク要求時に、グローバル構成を追加し、要求の URL 内のドメイン名を削除します。 axios.defaults.baseURL = '/api' axios.defaults.headers.post['Content-Type'] = 'application/json' アクシオス({ url:'/hj/mp/banner/l' }) 変更が完了すると、ページを更新するためのネットワーク要求が成功します。 3. パッケージサードパーティのライブラリは一度も使ったことがありません。一番話題になるのは、どうやってカプセル化するか、カプセル化後はどう使うかです。直接使った方がよいのではないでしょうか。 はっきり言いますが、あなたはまだ若すぎます...もう少し損失を経験した後、あなたはそれを思い出すでしょう。カプセル化の最大の利点は、サードパーティのフレームワークにバグがあったり、サードパーティを変更する必要がある場合、1か所を変更するだけで変更が完了することです。メンテナンスが容易で、作業負荷が少なく、見逃しにくいです。 axios リクエスト メソッドは多数あるため、カプセル化には複数の種類が存在する可能性があります。 方法1: 'axios' から axios をインポートします //グローバル設定 axios.defaults.baseURL = "/api" axios.defaults.timeout = 5000 //インターセプター axios.interceptors.request.use(config=>{ 設定を返す },エラー=>{ Promise.error(error) を返します }) axios.interceptors.response.use(response=>{ 応答データを返す },エラー=>{ Promise.error(error) を返します }) エクスポート関数 request(url='',params={},type='POST'){ //URLパラメータ型のデフォルト値を設定する return new Promise((resolve,reject)=>{ 約束させる if(type.toUpperCase()==='GET'){ プロミス = axios({ URL、 パラメータ }) }そうでない場合(type.toUpperCase()=== 'POST'){ プロミス = axios({ メソッド:'POST', URL、 データ:パラメータ }) } //処理 return promise.then(res=>{ 解決する }).catch(エラー=>{ 拒否(エラー) }) }) } // 使用時にimport {request} from '../network/request.js'を呼び出す エクスポートデフォルト{ マウントされた(){ リクエスト('/hj/mp/banner/l')。その後(res=>{ コンソールログ(res); }).catch(エラー=>{ コンソールログ(エラー); }) } } axios は promise オブジェクト自体を返すため、外側のレイヤーの promise オブジェクトをインスタンス化する必要がなくなり、カプセル化が簡単になります。 方法2: 'axios' から axios をインポートします //グローバル設定 axios.defaults.baseURL = "/api" axios.defaults.timeout = 5000 エクスポート関数リクエスト(config){ 定数インスタンス = axios.create({ タイムアウト:50000、 メソッド:'post' }) //リクエストインターセプション instace.interceptors.request.use(config=>{ 設定を返す },エラー=>{}) //レスポンスインターセプション instace.interceptors.response.use(res=>{ res.dataを返す },エラー=>{ // エラー処理 }) インスタンス(config)を返す } // 使用時にimport {request} from './request'を呼び出す リクエスト({ url:'/hj/mp/banner/l', }).then(res=>{ コンソールログ(res); }).catch(エラー=>{ コンソールログ(エラー); }) axios をカプセル化する方法はたくさんあります。興味がある場合は、axios ドキュメントにアクセスして詳細を学習し、自分でカプセル化してみるか、保存して直接コピーし、カプセル化せずに将来使用することもできます。 4. axiosへのグローバル参照上記のカプセル化されたリクエスト メソッドはグローバルに参照できるため、プロジェクト内の任意のファイルで使用できます。 main.js にグローバル プロパティを追加する const app = createApp(App) app.config.globalProperties.$http = リクエスト app.mount('#app') 上記3つの順番は調整できません! コンポーネント内で使用する場合: 「vue」から{defineComponent、getCurrentInstance、onMounted}をインポートします。 デフォルトのdefineComponentをエクスポートする({ セットアップ(props,ctx){ const { プロキシ } = getCurrentInstance() マウント時(()=>{ console.log(プロキシ); proxy.$http('/hj/mp/banner/l').then(res=>{ コンソールログ(res); }) }) } }) 最後までお読みいただき、ありがとうございます。これは、vue3 での axios の使用で変更された唯一の点です。 vue3学習ノートにおけるaxiosの使い方の変更点についての記事はこれで終わりです。vue3関連のコンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS スティッキーフッタークラシックレイアウトの実装
>>: Firefox ブラウザでバックグラウンド ミュージックを再生するための究極のソリューション (Chrome マルチブラウザ対応)
複数の注文を含むリストが必要です。各注文は一意にすることも、複数の注文を結合することもできます。各注...
データベースをインストールした後、誤ってインストール ウィンドウを閉じたり、長期間 root ユーザ...
目次これを Vue.$store.state.xx.xxストアからデータを取得する私のプロジェクトフ...
【問題分析】 chown コマンドを使用できます。ここで ch は change (変更) を表し...
デプロイされるプロジェクトが増えるにつれて、Tomcat にデプロイされるリリース パッケージも増え...
<br />これは私がずっと前に集めた記事です。皆さんの参考のために共有したいと思います...
目次序文:特定の操作ステップ1: プレハブを準備するステップ2: オブジェクトプールを初期化するステ...
mha4mysql をインストールする場合の手順は、おおよそ次のようになります: unzip、per...
この記事の例では、ジグソーパズルゲームを実装するためのJavaScriptの具体的なコードを参考まで...
目次1. 動的型付けとは何ですか? 2. データ型2.1 プリミティブ型 (6 つのプリミティブ型、...
昨日はデータベースへの接続に問題はありませんでしたが、今日はデータベースへの接続時にこのエラーが報告...
多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...
1. 対照的な色を使用します。ここでのコントラストとは、テキストの色と背景色のコントラストを指します...
この記事では、JavaScriptシミュレーション計算機の具体的なコードを参考までに紹介します。具体...
問題を見つけるコンテンツをリストで表示すると、リスト内のコンテンツの数は多いかもしれませんが、ユーザ...