最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3中簡(jiǎn)單使用Mock.js方法實(shí)例分析

 更新時(shí)間:2023年04月04日 09:40:10   作者:記得世界寒冷  
這篇文章主要介紹了Vue3中簡(jiǎn)單使用Mock.js方法,mock.js在模擬后端接口數(shù)據(jù)響應(yīng)與協(xié)調(diào)統(tǒng)一前后端開發(fā)接口規(guī)范方面有著重要的應(yīng)用,需要的朋友可以參考下

mock.js簡(jiǎn)介

官方鏈接:Mock.js (mockjs.com)

前端開發(fā)人員用來(lái)模擬虛擬數(shù)據(jù),攔截ajax請(qǐng)求,方便模擬后端接口

安裝

npm install mockjs

使用

本文主要介紹在Vue項(xiàng)目中使用mock.js,包括axios發(fā)送請(qǐng)求與請(qǐng)求簡(jiǎn)單封裝

  1. 創(chuàng)建mock文件夾,新建index.js文件

    // 引入mockjs
    import Mock from "mockjs";
    // 獲取 mock.Random 對(duì)象
    const Random = Mock.Random;
    // 使用mockjs模擬數(shù)據(jù)
    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(), // 獲取全局唯一標(biāo)識(shí)符
    //     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請(qǐng)求
     * 獲取用戶列表
     */
    Mock.mock("/api/mockGetList", "get", () => {
      return {
        code: "0",
        data: tableList,
      };
    });
    /** post請(qǐng)求添加表格數(shù)據(jù) */
    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,
      };
    });
    

    模擬數(shù)據(jù)可自己手動(dòng)編寫,也可由for循環(huán)自動(dòng)生成,可以設(shè)置數(shù)量,字段(可以通過(guò)正則表達(dá)式限制輸出格式)。最后可設(shè)定請(qǐng)求路徑,請(qǐng)求方式以及返回內(nèi)容,可根據(jù)自身需求進(jìn)行更改。

  2. 創(chuàng)建api文件夾,新建http.js文件(請(qǐng)求封裝)

    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("網(wǎng)絡(luò)異常");
        return Promise.reject(err);
      }
    );
    //響應(yīng)攔截器
    http.interceptors.response.use(
      (res) => {
        loadingInstance?.close();
        return res.data;
      },
      (err) => {
        loadingInstance?.close();
        ElMessage.error("請(qǐng)求失敗");
        return Promise.reject(err);
      }
    );
    export default http;
    

    這部分主要是對(duì)請(qǐng)求進(jìn)行封裝

  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與提交方法要與mock中模擬請(qǐng)求保持一致

  4. 調(diào)用封裝好的接口

導(dǎo)入模擬數(shù)據(jù)與接口文件,根據(jù)自己的路徑進(jìn)行修改

import "../mock/index.js";
import mockApi from "../api/mockApi/mockApi.js";

調(diào)用接口

//頁(yè)面數(shù)據(jù)請(qǐng)求
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(); //直接調(diào)用請(qǐng)求方法
//添加用戶
mockApi
  .addUser(editUser)
  .then((res) => {
        console.log(res)
    if (res.code === "0") {
       ElMessage({
          message: "保存成功",
          type: "success",
         });
      }
    })
    .catch(function (error) {
       console.log(error);
});

項(xiàng)目結(jié)構(gòu)

結(jié)構(gòu)大體如上,mock中的Management.js就是文中說(shuō)到的使用第一步,根據(jù)自身需要進(jìn)行修改

PS:ApiFox中如今也集成了mock.js的功能,提供了postman類似的模擬發(fā)送請(qǐng)求功能之外,還提供了更多的web程序開發(fā)所需要的定制化功能!

ApiFox官網(wǎng)下載地址:https://apifox.com/

或本站下載地址:http://www.fzitv.net/softs/737017.html

相關(guān)文章

  • vue實(shí)現(xiàn)前端分頁(yè)完整代碼

    vue實(shí)現(xiàn)前端分頁(yè)完整代碼

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)前端分頁(yè)完整代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • webpack轉(zhuǎn)vite的詳細(xì)操作流程與問(wèn)題總結(jié)

    webpack轉(zhuǎn)vite的詳細(xì)操作流程與問(wèn)題總結(jié)

    Vite是新一代的前端開發(fā)與構(gòu)建工具,相比于傳統(tǒng)的webpack,Vite 有著極速的本地項(xiàng)目啟動(dòng)速度(通常不超過(guò)5s)以及極速的熱更新速度(幾乎無(wú)感知),下面這篇文章主要給大家介紹了關(guān)于webpack轉(zhuǎn)vite的詳細(xì)操作流程與問(wèn)題總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • vue非父子組件通信問(wèn)題及解決方法

    vue非父子組件通信問(wèn)題及解決方法

    這篇文章主要介紹了vue非父子組件通信問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Vue雙向綁定實(shí)現(xiàn)原理與方法詳解

    Vue雙向綁定實(shí)現(xiàn)原理與方法詳解

    這篇文章主要介紹了Vue雙向綁定實(shí)現(xiàn)原理與方法,結(jié)合實(shí)例形式詳細(xì)分析了發(fā)布者-訂閱者模式、臟值檢查、數(shù)據(jù)劫持與雙向綁定相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-05-05
  • vue3中的setup()函數(shù)基本使用詳解

    vue3中的setup()函數(shù)基本使用詳解

    在 Vue3 中,setup 函數(shù)是一個(gè)新引入的概念,它代替了之前版本中的 data、computed、methods 等選項(xiàng),用于設(shè)置組件的初始狀態(tài)和邏輯,本文將主要介紹Setup的基本用法和少量原理,感興趣的朋友一起看看吧
    2024-02-02
  • 解決vue this.$forceUpdate() 處理頁(yè)面刷新問(wèn)題(v-for循環(huán)值刷新等)

    解決vue this.$forceUpdate() 處理頁(yè)面刷新問(wèn)題(v-for循環(huán)值刷新等)

    這篇文章主要介紹了解決vue this.$forceUpdate() 處理頁(yè)面刷新問(wèn)題(v-for循環(huán)值刷新等),解決方法是使用this.$forceUpdate()強(qiáng)制刷新,文章給大家分享了代碼案例,需要的朋友參考下吧
    2018-07-07
  • vue使用pdf-dist實(shí)現(xiàn)pdf預(yù)覽以及水印添加

    vue使用pdf-dist實(shí)現(xiàn)pdf預(yù)覽以及水印添加

    這篇文章主要為大家詳細(xì)介紹了vue如何使用pdf-dist實(shí)現(xiàn)pdf預(yù)覽以及水印添加的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • vue項(xiàng)目中使用pinyin轉(zhuǎn)換插件方式

    vue項(xiàng)目中使用pinyin轉(zhuǎn)換插件方式

    這篇文章主要介紹了vue項(xiàng)目中使用pinyin轉(zhuǎn)換插件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue實(shí)現(xiàn)圖片預(yù)覽放大以及縮小問(wèn)題

    vue實(shí)現(xiàn)圖片預(yù)覽放大以及縮小問(wèn)題

    這篇文章主要介紹了vue實(shí)現(xiàn)圖片預(yù)覽放大以及縮小問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue實(shí)現(xiàn)購(gòu)物車案例

    vue實(shí)現(xiàn)購(gòu)物車案例

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)購(gòu)物車案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論

新野县| 河曲县| 怀远县| 邛崃市| 新竹市| 赣榆县| 田东县| 科技| 漯河市| 合作市| 普安县| 思茅市| 历史| 肇州县| 郁南县| 昭觉县| 务川| 武山县| 临漳县| 沙田区| 富蕴县| 长治县| 叶城县| 天长市| 屏东市| 乐业县| 禄丰县| 盐津县| 宾川县| 吉林省| 将乐县| 九江县| 兴和县| 祥云县| 特克斯县| 临桂县| 昌平区| 鄱阳县| 永嘉县| 武陟县| 天台县|