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 相关文章推荐
把JS与CSS写在同一个文件里的书写方法
Jun 02 Javascript
javascript中比较字符串是否相等的方法
Jul 23 Javascript
JS实现清除指定cookies的方法
Sep 20 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
Sep 06 Javascript
npm全局环境变量配置详解
Dec 15 Javascript
JavaScript中MutationObServer监听DOM元素详情
Nov 27 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
PHP 危险函数全解析
2009/09/09 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
JS控制日期显示的小例子
2013/11/23 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
js中new一个对象的过程
2017/02/20 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
公益广告标语
2014/06/19 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
Java 多线程并发FutureTask
2022/06/28 Java/Android