mock(vue)

一樣是mock模擬數據,用到vue項目中有相應的組件--mocker-apihtml

利用腳手架搭建一個項目:vue init webpack yourProjectNamevue

腳手架搭建的項目有不少的配置的要點,還有向webpack4的升級(最近說webpack5即將要發佈了,裏面的配置選項有不少和webpack4截然不同,若是有興趣的能夠參考個人這篇文章http://www.javashuo.com/article/p-tmtuzfjh-kh.html,這篇文章講的是webpack3向webpack4遷移遇到的具體問題和相應的解決辦法,對於一個webpack3的項目遷移時的具體操做大有裨益)webpack

這篇文章咱們主要介紹的是在vue-webapck項目中的mock的使用和操做ios

用腳手架搭建的項目目錄大體以下:web

main.js是主要的js文件,咱們在main.js中引入如下代碼:axios

import axios from 'axios'
Vue.prototype.$axios = axios

至關於將axios註冊到全局,在其餘的地方用this.$axios引用。api

如上圖目錄咱們新建一個文件夾mock,在裏面存放mock.js文件,內容以下:  app

const proxy = {
    'GET /api/user': { id: 1, username: 'kenny', sex: 6 },
    'GET /api/user/list': [
      { id: 1, username: 'kenny', sex: 6 },
      { id: 2, username: 'kenny', sex: 6 }
    ],
    'POST /api/login/account': (req, res) => {
      const { password, username } = req.body
      if (password === '888888' && username === 'admin') {
        return res.send({
          status: 'ok',
          code: 0,
          token: 'sdfsdfsdfdsf',
          data: { id: 1, username: 'kenny', sex: 6 }
        })
      } else {
        return res.send({ status: 'error', code: 403 })
      }
    },
    'DELETE /api/user/:id': (req, res) => {
      console.log('---->', req.body)
      console.log('---->', req.params.id)
      res.send({ status: 'ok', message: '刪除成功!' })
    }
  }
  module.exports = proxy

以上代碼exports了一個接口對象。用法如上圖。ui

咱們只在開發環境mock數據就夠了,因此在開發配置的webpack.dev.conf.js中加入代碼:this

const apiMocker = require('mocker-api') 

在devServer中添加before方法

before (app) {
      apiMocker(app, path.resolve('./mock/mock.js'))
}

如今,完成了對於mock的配置,而後咱們能夠在具體的vue文件裏面使用mock.js的接口了。

例如在HelloWorld.vue中:

this.$axios.get("/api/user").then(res => {
      console.log(res.data);
      this.msg = res.data.username;
    });

效果如圖:

固然mock.js中的數據依然能夠用mock的語法進行編寫。

本站公眾號
   歡迎關注本站公眾號,獲取更多信息