您好,登錄后才能下訂單哦!
這篇文章主要介紹“vue-cli3中如何使用mockjs”,在日常操作中,相信很多人在vue-cli3中如何使用mockjs問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”vue-cli3中如何使用mockjs”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一、安裝
安裝代碼如下:
yarn add mockjs
// 或者
npm i mockjs -S
二、搭建mock環(huán)境
1、我們通過在根目錄中新建mock目錄,在這個目錄中我們新建一個index.js
文件和modules
文件夾。
index.js
代碼如下:
// index.js
const Mock = require('mockjs');
const mockFiles = require.context('./modules', false, /\.js$/);
let mocks = [];
mockFiles.keys().forEach(key => {
mocks.push(...mockFiles(key))
})
mocks.forEach(item => {
Mock.mock(item.url, item.type, item.response)
})
在modules文件夾中的user.js
代碼如下:
// modules/user.js
const userList = {
url: "/user/list",
type: "get",
response: () => {
return {
code: 20000,
data: [
{
"id": 1,
"username": "zhoujielun",
"password": "123456"
},
{
"id": 2,
"username": "guojingming",
"password": "666666"
},
]
}
}
}
const userList1 = {
url: "/user/list1",
type: "get",
response: () => {
return {
code: 20000,
data: [
{
"id": 1,
"username": "zhoujielun",
"password": "123456"
},
{
"id": 2,
"username": "guojingming",
"password": "666666"
},
]
}
}
}
module.exports = [
userList,
userList1,
]
2、在main中引入,代碼如下:
require("../mock");
當我們完成到這邊的時候其實環(huán)境已經(jīng)搭建的差不多了,下面我們在進行優(yōu)化。
在我們的根目錄中新建個.env
文件:
// .env
VUE_APP_MOCK=true
完成之后我們在進行修改一下main.js
:
// VUE_APP_MOCK的值為true,并且在開發(fā)環(huán)境下
if (process.env.VUE_APP_MOCK && process.env.NODE_ENV === 'development') {
require("../mock");
}
到這一步我們就完成了mock
的數(shù)據(jù)環(huán)境搭建了。
三、使用
我們在使用的使用需要注意的是在接口中的url
和type
要與我們的mock
中定義的相同。代碼如下:
// request.js
import axios from 'axios'
import { Message } from 'element-ui'
// create an axios instance
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
timeout: 5000 // request timeout
})
// request interceptor
service.interceptors.request.use(
config => {
return config
},
error => {
// do something with request error
console.log(error) // for debug
return Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data;
return res;
},
error => {
console.log('err' + error) // for debug
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
export default service
api
層中代碼:
// index.js
const moduleFiles = require.context('./modules', false, /\.js$/);
let apis = {};
moduleFiles.keys().forEach(key => {
// 獲取文件名,將 ./ 和 .js 替換為空, 最終格式 common
const fileName = key.replace(/(\.\/|\.js)/g, '');
// 填充數(shù)據(jù)
apis[fileName] = moduleFiles(key);
})
export default {
...apis
}
// modules/user.js
import request from '@/utils/request'
export function getList() {
return request({
url: '/user/list',
method: 'get'
})
}
完成之后我們在views
層調(diào)用api
接口,代碼如下:
import api from "@/api";
api.user.getList().then(res => { console.log(res) });
到此,關(guān)于“vue-cli3中如何使用mockjs”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。