前端项目接入Mock上手

开发中后端接口没有开发完成时,前端可以使用mock.js来模拟接口进行数据交互
mock.js官网: http://mockjs.com/

一、安装相关依赖包

基于 mockjs + express 实现接口模拟

npm install mockjs express -D

基于react官方脚手架演示

二、创建mock文件夹,搭建mock环境

/src 目录下创建 /mock 文件夹,用于搭建mock环境及接口文件
在这里插入图片描述

server.js 创建mock服务

const express = require('express')
const App = express()
const Router = express.Router()
const api = require('./api')

Router.use('/', api)
App.use('/mock', Router)
App.listen(3001, ()=>{
  console.log('Mock服务启动成功');
})

/api/index.js mock模拟接口实现

const Mock = require('mockjs')
const router = require('express').Router()

router.use('/getPersonInfo', (req, res) => {
  console.log('/getPersonInfo');
  const data = Mock.mock({
    code: '200',
    'data|10-20': [{
      'id|+1': 1,
      'name': '@cname',
      'age|1-100': 100,
      'gender|1': ['male','female']
    }]
  })
  return res.json(data)
})

module.exports = router

这时在控制台执行 node ./src/mock/server.js 命令可以启动mock服务
在这里插入图片描述
此时在浏览器中输入 http://localhost:3001/mock/getPersonInfo 即可访问mock接口
在这里插入图片描述

可以将mock启动命令设置在 package.json 文件中,方便启动

"mock": "node ./src/mock/server.js"

在这里插入图片描述
之后就可以使用 npm run mock 来启动mock服务了

/mock/api.js 封装axios请求接口

import axios from 'axios';

const http = axios.create({
  baseURL: 'http://localhost:3001/mock',
  timeout: 1000 * 30,
})

http.interceptors.request.use(config => {
  return config
})

http.interceptors.response.use(res => {
  return res
})

export const getPersonInfo = () => http.get('/getPersonInfo')

export default http

页面中调用

import './App.css';
import { useState, useEffect } from 'react';
import { getPersonInfo } from './mock/api';
function App() {
  const [data, setData] = useState([])
  const renderData = info => {
    setData(info.data)
  }
  useEffect(async () => {
    const res = await getPersonInfo()
    renderData(res.data)
  }, [])
  return (
    <div className="App">
      {
        data.map(person => {
          const keys = Object.keys(person)
          return (
            <div key={person.id}>
              {
                keys.map((key, index) => {
                  return (
                    <span key={index}>{person[key]}----</span>
                  )
                })
              }
            </div>
          )
        })
      }
    </div>
  );
}

export default App;

页面效果在这里插入图片描述
当然你可以在你项目的webpack配置文件中配置相关的代理,来在本地请求mock数据

 proxy: {
   // 本地mock地址
  '/mock/': {
    target: 'http://localhost:3001',
    secure: false,
  },
  // 后端接口地址
  '/api': {
  	target: 'http://www.xxxx.com/request',
  	secure: false,
  }
},
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值