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 选择器部分整理
Oct 28 Javascript
jQuery lazyload 的重复加载错误以及修复方法
Nov 19 Javascript
js 数据类型转换总结笔记
Jan 17 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
JavaScript中实现Map的示例代码
Sep 09 Javascript
js添加绑定事件的方法
May 15 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
详解webpack多页面配置记录
Jan 22 Javascript
解决Mac node版本升级失败的问题
May 16 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
一篇文章带你搞懂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
实现树状结构的两种方法
2006/10/09 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
PHP函数超时处理方法
2016/02/14 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
js正则相关知识点专题
2018/05/10 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python的即时标记项目练习笔记
2014/09/18 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python处理中文标点符号大集合
2018/05/14 Python
python中类的属性和方法介绍
2018/11/27 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python中的self用法详解
2019/08/06 Python
pycharm配置git(图文教程)
2019/08/16 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
爱之链教学反思
2014/04/30 职场文书
数控机床专业自荐信
2014/05/19 职场文书
副总经理任命书
2014/06/05 职场文书
社区清明节活动总结
2014/07/04 职场文书
雨花台导游词
2015/02/06 职场文书
给学校的建议书400字
2015/09/14 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python