mockjs(接口服務代理)

mock官網:http://mockjs.com/

一、搭建一個練習項目

1.利用vue的項目腳手架進行搭建

命令:

vue create mock-demo

截圖:

在這里插入圖片描述

2.安裝相關的依賴

命令:

#使用 axios 發送 ajax
npm install axios --save
#使用 mock.js 產生隨機數據
npm install mockjs --save-dev
#使用 json5 解決json 文件,無法添加注釋問題
npm install json5 --save-dev

二、學習mockjs

新建mock文件夾,新建testMock.js

mock語法定義
在這里插入圖片描述

const Mock = require('mockjs') //導入mockjs以來模塊
let id = Mock.mock("@id")//得到隨機的id,字符串
// console.log(id);//測試
let obj = Mock.mock({id:'@id()', //得到隨機的idusername:'@cname()',//隨機生成中文名字date:'@date()',//隨機生成日期avata:"@image('200x200','red','#fff','avatar')",//生成圖片,參數:size,background,foreground,textdescrtption:"@paragraph()",//描述ip:"@ip()",//ip地址email:"@email()"//email
})
console.log(obj);

在這里插入圖片描述

以上代碼的隨機生成位置,還需要自己去官方文檔查看,謝謝!

三、在mockjs中使用json5的操作

通過上面 json5 模塊的安裝后,還需要相應的 vscode 插件

在這里插入圖片描述

1.設置一個json5文件

在這里插入圖片描述

2.設置一個js文件,通過 fs \ path 查詢 之前設置的 json5 文件夾

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Kb0J1jjx-1599721543422)(C:\Users\wangyu123\AppData\Roaming\Typora\typora-user-images\image-20200910121003639.png)]

3.在mock文件夾下通過終端獲取得到 “字符串形式的結構”

在這里插入圖片描述

4.在testJSON5.js文件中引入 模塊 json5,然后利用json的parse() 方法進行字符串轉對象的形式輸出

在這里插入圖片描述

修改前后的對比:

在這里插入圖片描述

_在vue項目中使用mock.js_通過devServer配置監聽mock請求

1.在新建的vue.config.js文件中進行devServer的配置

module.exports = {devServer: {...,before: require('./mock/index.js')//引入mock/index.js},
}

2.在mock文件夾下,創建 index.js 并引入代碼

const fs = require('fs') //文件名稱
const path = require('path')//文件路徑
const Mock = require('mockjs')//導入mock 依賴
const JSON5 = require('json5');//導入json5// 讀取json文件
function getJsonFile(filePath){// 讀取指定json文件const json = fs.readFileSync(path.join(__dirname,'./userinfo.json5'),'utf-8')// console.log(json);// 解析并返回return JSON5.parse(json)// console.log(obj);
}// 返回一個函數
module.exports = function(app){// 監聽http請求app.get('/user/userinfo', function(rep,res){// 每次響應請求時讀取 mock data 的json 文件// getJsonFile 方法定義了如何讀取json 文件并解析成數據對象var json = getJsonFile('./userinfo.json5');// 將 json 傳入 Mock.mock方法中,生成的數據返回給瀏覽器res.json(Mock.mock(json));});
}

3.在vue項目中使用mock.js_axios發送請求獲取mock提供的數據

3.1 在項目文件夾的HelloWorld.vue文件夾中發送請求

代碼設置為:

export default {name: 'HelloWorld',props: {msg: String},mounted:{axios.get('/user/userinfo').then(res => {console.log(res)    }).catch(err => {console.log(err)    })}
}

在這里插入圖片描述

獲取到數據為:

在這里插入圖片描述

4.在vue項目中使用mock.js_mock移除(當后臺接口已寫好的時候移除)

4.1 通過設置 vue cli 的環境變量進行設置

先進行環境變量的判斷:

在這里插入圖片描述

在根目錄設置 .env.development 文件 設置環境變量的去向值

在這里插入圖片描述

5.在vue項目中使用mock.js_mock-json5-devServer-axios職責

在這里插入圖片描述

6.在jQuery項目中使用mock.js_mock攔截請求的原理

在這里插入圖片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.4/jquery.min.js"></script><script src="http://mockjs.com/dist/mock.js"></script>
</head>
<body></body>
</html>
7.在jQuery項目中使用mock.js_使用mock
Mock.mock('/user/userinfo','get',{id:"@id()", //得到隨機的idusername:"@cname()",//隨機生成中文名字date:"@date()",//隨機生成日期avata:"@image('200x200','red','#fff','avatar')",//生成圖片,參數:size,background,foreground,textdescrtption:"@paragraph()",//描述ip:"@ip()",//ip地址email:"@email()"//email
})

6.2 發送 jQuery 的ajax 請求

<script src="./index.js"></script>
<script>$.ajax({url:'/user/userinfo',dataType:'json',success:(data) => {console.log(data);}})
</script>

在這里插入圖片描述

8.在jQuery項目中使用mock.js_移除mock

8.1 : 直接注釋或刪除引入的mock.js文件

8.2:在編譯的mockjs文件中設置判斷

在這里插入圖片描述

在這里插入圖片描述

```

在這里插入圖片描述

8.在jQuery項目中使用mock.js_移除mock

8.1 : 直接注釋或刪除引入的mock.js文件

8.2:在編譯的mockjs文件中設置判斷

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247893.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247893.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247893.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MD5算法原理

MD5&#xff08;單向散列算法&#xff09; 的全稱是Message-Digest Algorithm 5&#xff08;信息-摘要算法&#xff09;&#xff0c;經MD2、MD3和MD4發展而來。MD5算法的使用不需要支付任何版權費用。MD5功能&#xff1a;輸入任意長度的信息&#xff0c;經過處理&#xff0c;輸…

函數-函數進階-裝飾器流程分析

老王&#xff1a;算了&#xff0c;估計你也想不出來。。。學過嵌套函數沒有&#xff1f; 你&#xff1a;yes&#xff0c;然后呢&#xff1f; 老王&#xff1a;想實現一開始你寫的america login(america)不觸發你函數的執行&#xff0c;只需要在這個login里面再定義一層函數&am…

制作手寫簽名

<!DOCTYPE html> <!-- saved from url(0056)http://hao2013.cn/canvas-special-master/brush/index.html --> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>簽名板(支持移動…

python第五次作業——陳靈院

習題1&#xff1a;讀入文件pmi_days.csv&#xff0c;完成以下操作&#xff1a;1.統計質量等級對應的天數&#xff0c;例如&#xff1a;優&#xff1a;5天良&#xff1a;3天中度污染&#xff1a;2天2.找出PMI2.5的最大值和最小值&#xff0c;分別指出是哪一天。 import csv impo…

iOS 二叉樹相關算法實現

什么是二叉樹&#xff1f; 在計算機科學中&#xff0c;二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”和“右子樹”&#xff0c;左子樹和右子樹同時也是二叉樹。二叉樹的子樹有左右之分&#xff0c;并且次序不能任意顛倒。二叉樹是遞歸定義的&#xff0c;所…

vux 組件庫首次使用安裝

1、首先通過腳手架新建一個項目&#xff0c;過程略。 創建完項目后&#xff0c;在項目里安裝vux&#xff0c; 通過命令 npm install vux --save 安裝 2、安裝vux-loader&#xff0c; 通過命令 npm install vux-loader --save-dev 安裝&#xff08;vux文檔沒說明&#xff09; 3、…

@Component 和 @Bean 的區別

Spring幫助我們管理Bean分為兩個部分&#xff0c;一個是注冊Bean&#xff0c;一個裝配Bean。完成這兩個動作有三種方式&#xff0c;一種是使用自動配置的方式、一種是使用JavaConfig的方式&#xff0c;一種就是使用XML配置的方式。 Compent 作用就相當于 XML配置 Component pub…

js動態驗證碼獲取

<!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><title>短信驗證碼</title> </head> <body> <input type"number" id"tel" value"13303861063"> <…

Base64 算法原理,以及編碼、解碼【加密、解密】 介紹

Base64編碼&#xff0c;是我們程序開發中經常使用到的編碼方法。它是一種基于用64個可打印字符來表示二進制數據的表示方法。它通常用作存儲、傳輸一些二進制數據編碼方法&#xff01;也是MIME&#xff08;多用途互聯網郵件擴展&#xff0c;主要用作電子郵件標準&#xff09;中…

js通過身份證獲取年齡

// 獲取用戶的身份證號碼let identityCard this.idNum.replace(/\s/g, "");//判斷長度let len identityCard.length;//設置新的變量var strBirthday "";//根據長度獲取年月日if (len 18) {strBirthday identityCard.substr(6, 4) "/" identi…

爬取豆瓣top250

#xpath #第一種方法 可在開發者工具中找到標簽&#xff0c;右鍵copy xpath&#xff0c;有時需去掉tbody標簽 #第二種方法 簡單學習xpath&#xff0c;自己書寫&#xff0c;掌握基本語法即可&#xff0c;簡單的層級關系#先將csv文件以記事本打開&#xff0c;更改編碼為ASNI&…

TCP/IP,Http,Socket,XMPP的區別

網絡由下往上分為 物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。 通過初步的了解&#xff0c;我知道IP協議對應于網絡層&#xff0c;TCP協議對應于傳輸層&#xff0c;而HTTP協議對應于應用層&#xff0c; 三者從本質上來說沒有可比性&#xff0c; socket則是對…

LED音樂頻譜之點陣

轉載請注明出處&#xff1a;http://blog.csdn.net/ruoyunliufeng/article/details/37967455 一.硬件 這里的LED選擇直插的霧面LED&#xff0c;亮度可以還不失美觀。注意每行要加上限流電阻。74HC138&#xff08;三八譯碼器&#xff09;作為列選&#xff0c;每行都連著74HC595&a…

上架相關——App Store 上架流程

說實話&#xff0c;公司要上架一個自己做的一個小項目。為了完成這個任務&#xff0c;菜鳥的我一遍找資料一遍跟著做&#xff0c;一遍修改錯誤一遍查找解決方案。網上的資料大部分都是2015年以前的資料&#xff0c;資料有點不夠過時&#xff0c;而且步驟配圖也不是很詳細&#…

this.$router 的三種跳轉頁面方法

第一種&#xff1a; this.$router.push(需要跳轉到的路徑名稱)此方法跳轉后&#xff0c;會在歷史欄目中保存路勁地址&#xff0c;當點擊歷史標簽時可以進行訪問 第二種&#xff1a; this.$router.replace(需要跳轉到的路徑名稱)此方法跳轉后&#xff0c;會在歷史欄目中不保存…

cf777c

題意&#xff1a;給你一個n*m的數陣 對于一行到另一行&#xff0c;若存在一列從上到下遞減&#xff0c;則稱之符合題意 The first line of the input contains two positive integers n and m (1?≤?nm?≤?100?000) — the number of rows and the number of columns in t…

上架相關——appstore 更新app版本

注&#xff1a;此片文章是基于app已經上架&#xff0c;也就是證書都已經配置好的前提下。 首先是還是app打包 修改版本號 修改project處的pp文件 檢查無誤后打包打包完成后upload to app store 漫長的等待。。 上傳到appstore進入iTunesConnect 選擇我的app 選擇對應app點…

輸入框輸入數字,且不能有小數點存在

基于Vue項目進行設置 <template><comp v-if"update"></comp><button click"reload()">刷新comp組件</button></template><script>import comp from /views/comp.vueexport default {name: parentComp,data() {r…

iOS開發 藍牙技術4.0詳解

前言 前端時間,同學在做項目過程中遇到關于藍牙方面的問題,今天我就給大家進行詳細的進行講解下藍牙在iOS開發中的具體實現.在介紹藍牙前,大家要搞清楚什么是藍牙? 什么是藍牙? 隨著藍牙低功耗技術BLE&#xff08;Bluetooth Low Energy&#xff09;的發展&#xff0c;藍牙技術…

前端面試題(五)

position的屬性有哪些&#xff1f; 1、absolute生成絕對定位的元素&#xff0c;相對于值不為 static的第一個父元素進行定位。 2、fixed &#xff08;老IE不支持&#xff09;生成絕對定位的元素&#xff0c;相對于瀏覽器窗口進行定位。 3、relative生成相對定位的元素&#xff…