uin-app+mockjs实现本地数据模拟


Posted in Javascript onAugust 26, 2020

最近在开发项目的时候,需要用到mockjs这个包来实现前端本地数据的模拟,下面我就来说一下具体步骤:

前言

uni-app将自己的配置融合到了vue.config.js中,所以需要自己配置,需要在package.json的同级目录下新建一个vue.config.js;ajax请求的路由,因为这个路由我们希望拿到模拟数据,所以用webpack的devserve来拦截。拦截之后通过mockjs,由它来生成模拟数据,然后返回模拟值。

步骤

在vue.config.js中加入下面代码:

const Mock = require('./mock/index.js');
module.exports = {
 chainWebpack: (config) => {  
  config.resolve.alias
  .set( '@',resolve(__dirname, '/'))//设置@为src目录的别名)
 },
 css: {
  ....
  }

 },
 devServer: {
  contentBase: path.join(__dirname, 'mock'),
  compress: true,
  port: 8080,
  overlay: {
   warnings: false,
   errors: true
  },
  before(app){
   Mock(app)
  }
}
};

devserver的配置中的before配置项是拦截路由请求。我们把全部交给Mock(app)处理;然后打开mock/index.js写入如下代码:

const addressesMock = require('./addresses');
const attendanceMock = require('./attendance');
const attendanceListMock = require('./attendance-list');
....
function Mock(app) {
 addressesMock(app)
 attendanceMock(app)
 attendanceListMock(app)
 .....
}

module.exports = Mock;

打开addresses写入你需要mock的数据就ok啦

var Mockjs = require('mockjs')
const { Random }= Mockjs;
const phonePrefix = ['132', '135', '189']
const index = Math.floor(Math.random() * phonePrefix.length)
var phone = phonePrefix[index] + Mockjs.mock(/\d{8}/)
const addressesMock = function (app) {
  app.get('/api3/addresses', function(req, res) {
   var data = Mockjs.mock({
    // 属性 list 的值是一个数组,其中元素的数量从 1 到 10 个都有可能,随机
    'list|1-10': [{
     'id|+1': 0,
     "accept_name": Random.cname(),
     "mobile": phone,
     "province_name": Random.province(),
     "area": Mockjs.mock(/\d{6}/),
     "city": Mockjs.mock(/\d{6}/),
     "sex": parseInt(Random.boolean()),
     "district": {
      "districts": Random.province()+Random.city()+Random.county(),
      "area": Random.county(),
      "city": Random.city(),
      "province": Random.province()
     },
     "street": "有一间公寓八栋",
     "inner": false,
     "lat": "",
     "door_number": "AB1234",
     "is_default": parseInt(Random.boolean()),
     "province": Mockjs.mock(/\d{6}/),
     "area_name":Random.county(),
     "city_name": Random.city(),
     "poiname": ""
    }]
   })
   res.json(data);
  })
 }
 
module.exports = addressesMock;

在需要接口的地方之间用 就能得到相应数据了

this.$ajax.get('/api3/addresses').then(res => { // 调用接口
      })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
javascript中的onkeyup和onkeydown区别介绍
Apr 28 Javascript
javascript读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
Egret引擎开发指南之视觉编程
Sep 03 Javascript
AngularJS入门教程之Select(选择框)详解
Jul 27 Javascript
关于JavaScript中事件绑定的方法总结
Oct 26 Javascript
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
vue两个组件间值的传递或修改方式
Jul 04 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
Oct 31 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
JS常见错误(Error)及处理方案详解
Jul 02 Javascript
Element PageHeader页头的使用方法
Jul 26 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 #Javascript
微信小程序换肤功能实现代码(思路详解)
Aug 25 #Javascript
prettier自动格式化去换行的实现代码
Aug 25 #Javascript
Vue中 axios delete请求参数操作
Aug 25 #Javascript
React实现轮播效果
Aug 25 #Javascript
React实现全选功能
Aug 25 #Javascript
react实现复选框全选和反选组件效果
Aug 25 #Javascript
You might like
PHPMailer 中文使用说明小结
2010/01/22 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
微信二次分享报错invalid signature问题及解决方法
2019/04/01 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python中实现switch功能实例解析
2018/01/11 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
应届大学生简历中的自我评价
2014/01/15 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
银行自荐信怎么写
2015/03/05 职场文书
公司规章制度范本
2015/08/03 职场文书
使用JS实现简易计算器
2021/06/14 Javascript