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.ajax)
Nov 19 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
Mar 14 Javascript
解析javascript 数组以及json元素的添加删除
Jun 26 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
Dec 31 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
vue.js响应式原理解析与实现
Jun 22 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
vue基于element的区间选择组件
Sep 07 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
vue如何使用rem适配
Feb 06 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
用PHP调用Oracle存储过程
2006/10/09 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP goto语句用法实例
2019/08/06 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python logging类库使用例子
2014/11/22 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
Python实现的字典值比较功能示例
2018/01/08 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
查看keras的默认backend实现方式
2020/06/19 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
《春笋》教学反思
2014/04/15 职场文书
我爱读书演讲稿
2014/05/07 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
元旦晚会开场白
2015/05/29 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers