Vue3でMock.jsメソッドを使用する方法

王林
リリース: 2023-05-16 16:19:18
転載
2144 人が閲覧しました

Mock.js の概要

フロントエンド開発者は、これを使用して仮想データをシミュレートし、Ajax リクエストをインターセプトし、バックエンド インターフェイスを簡単にシミュレートします

インストール

npm install mockjs
ログイン後にコピー

使用

この記事では主に、axios によるリクエストの送信やリクエストの簡単なカプセル化など、Vue プロジェクトでのモック.js の使用方法を紹介します。

  1. モック フォルダーを作成し、新しいフォルダーを作成します。 Index.js ファイル

    // 引入mockjs
    import Mock from "mockjs";
    // 获取 mock.Random 对象
    const Random = Mock.Random;
    // 使用mockjs模拟数据
    let tableList = [
      {
        id: "5ffa80aD-9CF4-0C77-eBFC-f6612BfAcF4F",
        account: "admin",
        password: "123456",
        address: "36918166@qq.com",
      },
      {
        id: "4FcC922C-C72c-95c3-Ef92-FbFAc24cc831",
        account: "ebHoL6",
        password: "i320Hu74fbn2Gi",
        address: "48165263@qq.com",
      },
    ]
    // for (let i = 0; i < 20; i++) {
    //   let newObject = {
    //     id: Random.guid(), // 获取全局唯一标识符
    //     account: /^[a-zA-Z0-9]{4,6}$/,
    //     password: /^[a-zA-Z]\w{5,17}$/,
    //     address: /[1-9]\d{7,10}@qq\.com/,
    //   };
    //   tableList.push(newObject);
    // }
    /** get请求
     * 获取用户列表
     */
    Mock.mock("/api/mockGetList", "get", () => {
      return {
        code: "0",
        data: tableList,
      };
    });
    /** post请求添加表格数据 */
    Mock.mock("/api/add", "post", (params) => {
      let newData = JSON.parse(params.body);
      newData.id = Random.guid();
      tableList.push(newData);
      return {
        code: "0",
        message: "success",
        data: tableList,
      };
    });
    ログイン後にコピー

    シミュレーションデータは手動で書き込むことも、forループで自動生成することもでき、数量やフィールドを設定することができます(出力形式は正規表現で制限可能)。最後に、リクエスト パス、リクエスト メソッド、および返されるコンテンツを設定し、個人のニーズに応じて変更できます。

  2. API フォルダーを作成し、新しい http.js ファイルを作成します (リクエストのカプセル化)

    import axios from "axios";
    import { ElLoading, ElMessage } from "element-plus";
    let http = axios.create({
      baseURL: "",
      timeout: 10000,
    });
    let loadingInstance;
    // 拦截器的添加
    http.interceptors.request.use(
      (config) => {
        loadingInstance = ElLoading.service("加载中");
        return config;
      },
      (err) => {
        loadingInstance?.close();
        ElMessage.error("网络异常");
        return Promise.reject(err);
      }
    );
    //响应拦截器
    http.interceptors.response.use(
      (res) => {
        loadingInstance?.close();
        return res.data;
      },
      (err) => {
        loadingInstance?.close();
        ElMessage.error("请求失败");
        return Promise.reject(err);
      }
    );
    export default http;
    ログイン後にコピー

    この部分は主にリクエストをカプセル化するためのものです

  3. 新しいmockApi.jsファイルを作成します(インターフェイスのカプセル化)

    import http from "./http.js";
    export default {
      //用户列表
      findAll() {
        return http({
          url: `/api/mockGetList`,
          method: "get",
        });
      },
      //添加用户
      addUser(user) {
        return http({
          url: `/api/add`,
          method: "post",
          data: user,
        });
      },
    }
    ログイン後にコピー

    注: URLと送信メソッドは、モック内のシミュレートされたリクエストと一致している必要があります

  4. #カプセル化されたインターフェイスを呼び出します

シミュレーション データとインターフェイス ファイルをインポートし、独自のパスに従って変更します

import "../mock/index.js";
import mockApi from "../api/mockApi/mockApi.js";
ログイン後にコピー

インターフェイスの呼び出し

//页面数据请求
let tableData = reactive([]);
const getList = () => {
 mockApi
   .findAll()
   .then((res) => {
        console.log(res)
     if (res.code === "0"){ 
      tableData.push.apply(tableData, res.data);
      }
    })
    .catch(function (error) {
      console.log(error);
    });
};
getList(); //直接调用请求方法
//添加用户
mockApi
  .addUser(editUser)
  .then((res) => {
        console.log(res)
    if (res.code === "0") {
       ElMessage({
          message: "保存成功",
          type: "success",
         });
      }
    })
    .catch(function (error) {
       console.log(error);
});
ログイン後にコピー
プロジェクト構造

Vue3でMock.jsメソッドを使用する方法##構造は大まかに上記のとおりです。モックの Management.js は、記事で説明されているように、それを使用するための最初のステップです。必要に応じて変更してください

PS: ApiFox は、mock.js も統合しました。この機能は、郵便配達員のようなシミュレーション送信リクエスト機能を提供するだけでなく、Web プログラム開発に必要な、よりカスタマイズされた機能も提供します。

以上がVue3でMock.jsメソッドを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
前の記事:reactive を使用して vue3 で配列をラップし、値を正しく割り当てる方法 構文シュガーを使用する方法"> 次の記事:Vue3 で
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート