Vue プロジェクトで mock を使用する方法をご存知ですか?

Vue プロジェクトで mock を使用する方法をご存知ですか?

Mock.jsは、フロントエンド開発者がバックエンドから独立して開発し、ユニットテストを記述できるように設計されたモック データ ジェネレーターです。以下のシミュレーション機能が提供されます。

  • データテンプレートに基づいてシミュレートされたデータを生成する
  • Ajax リクエストをシミュレートし、シミュレートされたデータを生成して返します。
  • HTMLテンプレートに基づいて模擬データを生成する

最初のステップ:

npm install mockjs // mockjs をインストール
npm インストール axios

2 番目のステップは、request.js で関連する構成を行うことです。request.js コードは次のとおりです。

'axios' から axios をインポートします
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-urlencoded'
定数 http = axios.create()
 http.defaults.timeout = 3000
 http.interceptors.request.use(config => { // リクエストインターセプターの設定 // オプション // 何かを行う
    設定を返す
}, エラー => {
    コンソール.log(エラー)
    Promise.reject(error) を返します。
})
 http.interceptors.response.use(response => { // レスポンスインターセプターの設定 // オプション // 何かを行う
    応答を返す
}, エラー => {
    コンソール.log(エラー)
    Promise.reject(error) を返します。
})
 export function fetch(url, params) { // axios の post リクエストをカプセル化します return new Promise((resolve, reject) => { // Promise の使用方法については、axios.post(url, params).then(response => { を参照してください。
            resolve(response.data) // プロミス関連}).catch(error => {
            拒否(エラー) // プロミス関連})
    })
}
 export default { // 次のページで使用される htto_mock メソッドを公開します http_mock(url, params) {
        フェッチを返す(url, params)
    }
}

3 番目のステップは、mock.js で関連する構成を実行することです。mock.js コードは次のとおりです。

'mockjs' から Mock をインポートします。
 const ランダム = Mock.ランダム
 var listData = 関数() {
    _data = {とする
        ステータス: 200、
        メッセージ: '成功'、
        データ: {
            合計: 100,
            '行|10': [{
            ID: '@guid',
            名前: '@cname',
            '年齢|20-30': 23,
            'job|1': ['フロントエンドエンジニア'、'バックエンドエンジニア'、'UIエンジニア'、'要件エンジニア']
            }]
        }
    }
    {_data} を返す
}
// url はインターセプトされるリクエスト アドレス、リクエスト メソッド、リクエスト データ (ルール) です (ここでの api は mockjs によってインターセプトされます)
モック.モック('http://route.showapi.com/60-27', 'post', listData())
 

4番目のステップは、mock.jsをmain.jsにインポートすることです。

'@/http/mock' からモックをインポートします

ステップ5: ページで使用する

'@/http/request' からリクエストをインポートします
 エクスポートデフォルト{
    名前: "FirstPage",
    作成された() {
        この.getData()
    },
    メソッド: {
        取得データ() {
             // http_mock を使用してリクエストを送信するふりをします (mock はリクエストを自動的にインターセプトしてデータを生成します)
   // ここでの最初のパラメータは、Mock.mock() の最初のパラメータと一致している必要があります console.log('Request started')
            リクエスト.http_mock('http://route.showapi.com/60-27','api_id=63114&api_sign=3847b0').then(レスポンス => {
            コンソール.log(レスポンス._data)
            })
       },
    }
}

効果は以下のとおりです。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue プロジェクトにおける mock.js の使用と基本的な使い方
  • Vue プロジェクトで mock.js を使用するための完全な手順
  • vue-cliのローカル開発でモックデータを利用する方法の詳しい説明
  • Vue で開発環境でモックを制御し、本番環境で無効にする方法

<<:  フロートとBFCをクリアするCSSメソッド

>>:  MySQL の問題を解決する: MSVCR120.dll が見つからないため、コードの実行を続行できません

推薦する

Dockerイメージをインポートおよびエクスポートする方法

この記事では、移行、バックアップ、アップグレードなどのシナリオで使用される Docker イメージの...

CentOS 7 での Docker プロキシの設定 (Linux での Systemd サービスの環境変数設定)

Docker デーモンは、 HTTP_PROXY 、 HTTPS_PROXY 、およびNO_PRO...

JS配列ループ方式と効率分析の比較

配列メソッドJavaScript には多くの配列メソッドが用意されています。次の図は、ほとんどの配列...

mysql8.0 パスワードを忘れた場合の修正とネットコマンドのサービス名が無効になる問題

cmdにnet start mysqlと入力すると、プロンプトが表示されます: サービス名が無効です...

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

MySqlは、外部ネットワーク接続クライアントの低速問題を解決するためにskip-name-resolveを使用します。

Tencent Cloud上に構築されたMySQLは、開発用コンピュータでNavicatを使用して...

MySQL インデックス データ構造の詳細な分析

目次概要インデックスデータ構造バイナリツリー赤黒木BツリーB+ツリーハッシュ索引InnoDB インデ...

MySQL データ アーカイブ ツール mysql_archiver の詳細な説明

目次I. 概要2. pt-archiverの主なパラメータ3. mysql_archiverのインス...

PrometheusはGrafanaディスプレイを使用してMySQLを監視します

目次Prometheusはエクスポーターを介してMySQLを監視し、Grafanaチャートで表示しま...

Vueタイムラインコンポーネントの使い方

この記事の例では、参考までにvueタイムラインコンポーネントの具体的な実装コードを共有しています。具...

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

XHTML Web ページ チュートリアル

<br />この記事は主に、初心者にXHTMLの基本知識と、XHTMLとHTMLの違いを...

MySQL の 3 つの Binlog 形式の概要と分析

1つ。 Mysql Binlog フォーマットの紹介 Mysql binlog ログには、State...

nofollowタグの使用と分析に関する簡単な説明

nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...