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 相关文章推荐
jquery dialog键盘事件代码
Aug 01 Javascript
jQuery.extend 函数详解
Feb 03 Javascript
cookie.js 加载顺序问题怎么才有效
Jul 31 Javascript
node.js中的buffer.toString方法使用说明
Dec 14 Javascript
js处理层级数据结构的方法小结
Jan 17 Javascript
深入理解Javascript箭头函数中的this
Feb 13 Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
Vue.js的复用组件开发流程完整记录
Nov 29 Javascript
使用nvm和nrm优化node.js工作流的方法
Jan 17 Javascript
extract-text-webpack-plugin用法详解
Feb 14 Javascript
有趣的JavaScript隐式类型转换操作实例分析
May 02 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/12/28 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
js获取form的方法
2015/05/06 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
python3实现单目标粒子群算法
2019/11/14 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
Python ini文件常用操作方法解析
2020/04/26 Python
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
女方婚礼新郎答谢词
2014/01/11 职场文书
人事专员的岗位职责
2014/03/01 职场文书
学习决心书
2014/03/11 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
2015入党个人自传范文
2015/06/26 职场文书