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 相关文章推荐
JavaScript 无符号右移赋值操作
Apr 17 Javascript
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
关于Javascript 对象(object)的prototype
May 09 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
js数据类型检测总结
Aug 05 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
Vue点击切换颜色的方法
Sep 13 Javascript
微信小程序实现炫酷的弹出式菜单特效
Jan 28 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
May 10 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
Nov 12 Javascript
jquery实现垂直手风琴导航栏
Feb 18 jQuery
一篇文章带你搞懂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的计数器程序
2006/10/09 PHP
BBS(php & mysql)完整版(一)
2006/10/09 PHP
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php上传大文件设置方法
2016/04/14 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
python+mysql实现简单的web程序
2014/09/11 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
编写python代码实现简单抽奖器
2020/10/20 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
vivo智能手机官方商城:vivo
2016/09/22 全球购物
夜大自我鉴定
2013/10/31 职场文书
运动会开幕式邀请函
2014/01/22 职场文书
开业庆典主持词
2014/03/21 职场文书
中介业务员岗位职责
2014/04/09 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
社会心理学学习心得体会
2016/01/22 职场文书