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脚本实现Web页面信息交互
Dec 21 Javascript
javascript+dom树型菜单类,希望朋友们一起进步
May 03 Javascript
神奇的7个jQuery 3D插件整理
Jan 06 Javascript
js 控制图片大小核心讲解
Oct 09 Javascript
javascript如何动态加载表格与动态添加表格行
Nov 27 Javascript
javascript函数式编程程序员的工具集
Oct 11 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
解决Angular.Js与Django标签冲突的方案
Dec 20 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
原生javascript中this几种常见用法总结
Feb 24 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
php实现文件下载代码分享
2014/08/19 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
python中list常用操作实例详解
2015/06/03 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
Django视图、传参和forms验证操作
2020/07/15 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
汽车专业毕业生推荐信
2013/11/12 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
物流管理系毕业生求职信
2014/06/03 职场文书
邓小平理论心得体会
2014/09/09 职场文书
离婚起诉书范本
2015/05/18 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书