当前位置:   article > 正文

vue中mock.js初步简单使用_vue mockjs

vue mockjs

最近项目需要重构,在画原型的空隙简单了解了一下mock.js。因为从进度上看,后台接口不会很快 给到前端,那前端也不能坐着干等着。所以可以通过mock.js先造一些数据来实现效果

mock文档地址

一、首先当然是要先安装一下mock.js了

npm install mockjs --save-dev

二、在main.js中导入mock.js

注:上线之前需要将其删掉

  1. import { mockXHR } from '../mock'
  2. if (process.env.NODE_ENV === 'production') {
  3. mockXHR()
  4. }

代码结构如下:

三、在项目中找到mock文件夹,在文件夹下新建一个js,用来mock假数据 

代码如下:

  1. import Mock from 'mockjs'
  2. const Random = Mock.Random // Mock.Random 是一个工具类,用于生成各种随机数据
  3. const deptList = [] // 用于接受生成数据的数组(部门数据)
  4. for (let i = 0; i < 20; i++) { // 可自定义生成的个数
  5. const template = {
  6. 'id|+1': i, // 数字从当前开始,后续+1
  7. 'deptName': '@cname', // 名字为随机中文名字
  8. 'topDept': '@cname', // 名字为随机中文名字
  9. 'remark': Random.cparagraph(), // 随机生成中文
  10. 'className': 'normal', // 自定义的一个固定字段,用于修改表格选中底色
  11. 'date': Random.date() // 生成一个随机日期,可加参数定义日期格式
  12. }
  13. deptList.push(template)
  14. }
  15. Mock.mock('/dept/deptList', 'get', deptList) // 根据数据模板生成模拟数据
  16. export default [
  17. ]

代码结构如下:

 四、在index.js中导入三中新建的js

 五、在vue页面调用

1.安装axios,如果项目中已安装,就不用安装了

npm install --save axios

2.导入axios

import axios from 'axios'

3.调用

  1. axios.get('/dept/deptList').then(res => {
  2. console.log('res', JSON.parse(JSON.stringify(res.data)));
  3. })

可得到如下图所示结果:

 到此,对数据的调用也就结束了。接下来我想把数据信息添加在grid-table中,还需要对代码进行修改一翻,如下图所示:

 主要代码:

  1. deptList() {
  2. return axios.get('/dept/deptList').then(res => {
  3. this.deptListRow = res.data
  4. console.log('res', JSON.parse(JSON.stringify(this.deptListRow)));
  5. })
  6. },
  7. rowDataApi() {
  8. return this.deptList().then(() => {
  9. console.log('deptListRow1111', JSON.parse(JSON.stringify(this.deptListRow)));
  10. return Promise.resolve({
  11. code: 200,
  12. data: this.deptListRow
  13. })
  14. })
  15. },

实现效果:

六、post请求

上面用到的是个get请求,post请求实例如下:

1.mock.js造假数据

  1. /**
  2. * mock登录接口
  3. * 1.url路径
  4. * 2.请求方式
  5. * 3.参数 option
  6. */
  7. Mock.mock('/user/login', 'post', function(option) {
  8. return {
  9. code: 20000,
  10. data: 'success',
  11. mock: true,
  12. token: 'Bearer AWEWr223rew23erfwFRD@#r34'
  13. }
  14. })

2.vue页面调用

  1. /**
  2. * 登录接口调用
  3. * 1.url路径
  4. * 3.参数 this.loginForm
  5. */
  6. axios.post('/user/login', this.loginForm).then(res => {
  7. console.log('res', JSON.parse(JSON.stringify(res.data)));
  8. })

3.浏览器返回结果

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号