在vue-lic脚手架中安装mockjs,实现前后端分离开发

在项目开发前期,前端开发中,页面布局基本开发完毕,但是后台还接口还没有开发完,等待后台开发完接口,在进行接口联调,浪费了等待时间,也压缩的测试的时间。所以实现请求拦截,前端模拟后台请求数据就是一个很不错的处理方式。

mockjs

mockjs可以生成随机数据,拦截 Ajax 请求,让前端攻城师独立于后端进行开发。并且支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。

使用方法

mockjs 可以很方便的添加到以webpack为管理的项目中,以vue-cli脚手架生成的项目为例。vue-cli的搭建不过多赘述,直接进入安装插件过程。

用axios进行请求数据 所以安装axios 和 mockjs 两个包

npm install axios --save
npm install mockjs --save-dev

在src中创建一个mock文件夹 并创建一个mock.js文件

// mock.js
// 引入mockjs
const Mock = require(‘mockjs‘);
// 创建模拟数据
let testData = {
    testData: ‘测试mock‘
}
// Mock.mock( url, post/get , 返回的数据);
Mock.mock( ‘/getMockData‘, ‘get‘ , testData)

在main.js中引入

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import ‘lib-flexible‘
import axios from ‘axios‘
// 引入mockjs
require(‘./mock/mock.js‘)

// axios引入全局
Vue.prototype.$http = axios
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: ‘#app‘,
  router,
  components: { App },
  template: ‘<App/>‘
})

在组件中使用

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <h2>mockjs测试</h2>
    <div class="adbox">
        <div class="wrapper" v-if="hideType" id=‘mydiv‘ ref = ‘mydiv‘>
        </div>
    </div>
  </div>
</template>

<script>
export default {
  name: ‘HelloWorld‘,
  data () {
    return {
      msg: ‘Welcome to Your Vue.js App‘,
      hideType: true,
    }
  },
  mounted() {
       this.getInfo()
  },
  methods: {
      getInfo() {
          this.$http.get(‘/getMockData‘)
          .then((res) => {
              console.log(res)
          })
          .catch(function (error) {
            console.log(error);
          });
      }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="less" scoped>

h1, h2 {
  font-weight: normal;
}
ul {
  list-style-type: none;
  padding: 0;
  li {
      display: inline-block;
      padding: 0 10px;
      margin: 0 10px; /*no*/
    }
}

a {
  color: #42b983;
  font-size: 14px;
}

.adbox {
    position: relative;
}

.wrapper {
    position: absolute;
    top: 0;
    bottom: 0;
    background: #cccccc;
    margin: 0;
    width: 100%;
    opacity: 0.5;
    pointer-events: none;
    z-index: -10;
}
li:active {
    a:active {
        color: red;
    }
}

.hide {
    pointer-events: none;
}
</style>

在控制台输出数据 可以看到 请求被拦截 并且返回了自己写的测试数据

mockjs 随机数据功能

刚才介绍了怎么使用mockjs拦截数据,接下来说下mockjs另一个核心内容,随机生成数据

mockjs 支持生成随机的文本、数字、布尔值、日期、邮箱、链接、图片、颜色等。

我们现在来改造下刚才的模拟数据

// mock.js

// 引入mockjs
const Mock = require(‘mockjs‘);
// 获取 mock.Random 对象
const Random = Mock.Random;
// 创建模拟数据
let testData = function() {
    let dataList = [];
    for (let i = 0; i < 10; i++) {
        let obj = {
            title: Random.csentence(10, 20), //  Random.csentence( min, max ) 随机生成一段10-20长度的汉字字符串
            picture: Random.dataImage(‘100x100‘, ‘测试图片‘), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码
        }
        dataList.push(obj)
    }

    return {
        dataList: dataList
    }
}
Mock.mock( ‘/getMockData‘, ‘get‘ , testData)
// Mock.mock( url, post/get , 返回的数据);

最终生成的数据

结语

mockjs官网中有很多的例子,可以随机生成多种数据,学会基本使用之后,可以到官网中查看各种类型数据的随机生成方法官网地址 http://mockjs.com/

原文地址:https://www.cnblogs.com/slongs/p/10298896.html

时间: 2024-08-14 16:06:18

在vue-lic脚手架中安装mockjs,实现前后端分离开发的相关文章

vue+mockjs 模拟数据,实现前后端分离开发

在项目中尝试了mockjs,mock数据,实现前后端分离开发. 关于mockjs,官网描述的是 1.前后端分离 2.不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据. 3.数据类型丰富 4.通过随机数据,模拟各种场景. 等等优点. 总结起来就是在后端接口没有开发完成之前,前端可以用已有的接口文档,在真实的请求上拦截ajax,并根据mockjs的mock数据的规则,模拟真实接口返回的数据,并将随机的模拟数据返回参与相应的数据交互处理,这样真正实现了前后台的分离开发. 与以往的自己

2018 Vue+Django API前后端分离开发电商新技术跨域项目实战

课程目标帮助大家快速入门Django REST framework这一个API框架. 帮助大家详细了解Django REST framework中序列化.视图.路由等模块的使用. 帮助大家使用Django REST framework快速开发一套可用的API服务,并且自动生成API文档.适用人群Python开发工程师,后端开发工程师课程简介目前前后端分离的架构设计越来越流行,前后端通过API来实现数据通信.那如何快速开发一套符合RESTful风格的API呢?Django REST framewo

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面. 但是在前后端分离中,页面的跳转统统交给前端去做,后端只提供数据,这种时候,权限管理不能再按照之前的思路来. 首先要明确一点,前端是展示给用户看的,所有的菜单显示或者隐藏目的不是为了实现权限管理,而是为了给用户一个良好的体验,不能依靠前端隐藏控件来实现权限管理,即数据安全不能依靠前端. 这点就像普通的表单提交一样,前端做数据

一套基于SpringBoot+Vue+Shiro 前后端分离 开发的代码生成器

一.前言 最近花了一个月时间完成了一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器,目前项目代码已基本完成 止步传统CRUD,进阶代码优化: 该项目可根据数据库字段动态生成 controller.mapper.service.html.jsp.vue.php..py ... 等各种类型代码,采用 velocity 模板引擎在页面动态配置生成代码,前后端动态权限配置,前端权限精确到 按钮 级别,后端权限精确到 uri 上,QQ授权第三方单用户登录...等 基本环境: JDK

Python前后端分离开发Vue+Django REST framework实战

链接:https://pan.baidu.com/s/1YNIw7ayEvRfU9Og4zv97iA 提取码:加Q:1642261812  V信:SH66668888QH 获取 第1章 课程介绍 介绍课程目标.通过课程能学习到的内容.和系统开发前需要具备的知识 1-1 课程导学 第2章 开发环境搭建 介绍系统开发所需的开发环境的搭建, 包括前后端开发所需要的IDE. mysql.navicat.nodejs.cnpm的配置等, 还介绍了如何配置python虚拟环境 2-1 pycharm的安装和

开发环境Vue访问后端代码(前后端分离开发,端口不同下跨域访问)

开发环境下的跨域:在node.js上实现请求转发,前端请求到node.js上,node.js将请求转发到后端,反之.响应也是,先到node.js上,然后转发vue-cil项目上. 需要在根目录下新建文件vue.config.js. vue.config.js: vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载.你也可以使用 package.json 中的 vue 字

一个Java程序猿眼中的前后端分离以及Vue.js入门

松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ,因此在我的书里边就没有多说.但是最近总结小伙伴遇到的问题,感觉很多人对前后端分离开发还是两眼一抹黑,所以今天松哥想和大家聊一下前后端分离以及 Vue.js 的一点事,算是一个简单的入门科普吧. 前后端不分 后端模板:Jsp.FreeMarker.Velocity 前端模板:Thymeleaf 前

Springboot2 Vue 前后端分离 整合打包 docker镜像

项目使用springboot2和Vue前后端分离开发模式,再整合,容器化部署. 主要说明下大体的流程,扫除心里障碍,期间遇到的问题请自行解决. 首先说下Vue打包: 1.在Vue项目目录下运行命令打包:npm run build:prod --report 生成需要使用的dist文件,打包后会出现在项目目录下.(目录结构可能会不同) 按照如下方式整合到springboot项目中,resources在main目录下. (结构不同的话)一样拆到static目录下,static下面直接跟img.css

关于大型网站技术演进的思考(十五)--网站静态化处理—前后端分离—中(7)

上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌声会更多,我想很多资深前端工程师看到这样的技术方案可能会有种说不出来的矛盾心情,当我的工作逐渐走向越来越专业化的前端开发后,我就时常被这套前后端分离方案所困惑,最近我终于明白了这个困惑的本源在哪里了,那就是这套前后端分离方案其实是服务端驱动的前后端分离方案,它的实现手段又是从服务端的MVC架构体系演化而来,因此该方案最大的问题就是它并没有从根本上改变web前端从属于服务端的被动局面.那么问题来