前端mock数据使用简单demo
2018-01-18 09:27
337 查看
1、安装
npm i mockjs --save var Mock = require(‘mockjs’)
2、模拟数据的两种方式
1.数据模板2.数据占位符
详见 https://github.com/nuysoft/Mock/wiki/Syntax-Specification
3、主要方法
3.1 Mock.mock()完整用法:
Mock.mock(url, type, template|function)
url: 请求的地址
type: 请求的方法
template: 请求的数据模板
function: 用于生成请求数据的函数,传入一个参数function(options),options有三个属性(url,type,body),前面两个属性和上文的url和type一样,body中带有请求的一些参数
3.2 Mock.setup()
配置拦截 Ajax 请求时的行为
作用之一:设置异步
例子
Mock.setup({ Timeout: 400 }) Mock.setup({ Timeout: ‘200-60 })
4、具体例子,在vue中使用(我在项目中的用法)
1.创建mockdata文件夹,新建两个文件:data.js和index.js,名字可以自定义,一个作为数据源文件,一个处理请求简单逻辑Random.* 的用法详见第二点的第二小点
2.mockdata/data.js
/****************************************************************************************/ // mockdata/data.js文件 const Random = require('mockjs').Random const total = 120 /** * uid 序号 * title 标题 * author 作者 * moduleName 所属板块 * createTime 创建时间 * reading 阅读 * focus 关注 * good 点赞 * forum 评论 * status 状态 */ const tiezi = Array(total).fill().map((item, idx) => { let reading = Random.integer(1, 99999) return { uid: idx + 1, title: Random.ctitle(7, 13), author: Random.cname(), moduleName: Random.pick( ['早筛', '肺癌', '治疗', '提问', '肠癌'] ), createTime: new Date(Random.datetime('yyyy/MM/dd HH:mm:ss')), reading: reading, focus: Random.integer(reading/50, reading/10), good: Random.integer(reading/10, reading/5), forum: Random.integer(reading/100, reading/50), status: Random.pick( ['待审核', '已审核', '未通过', '封贴'] ) } }) let data = { tiezi: tiezi } export default dat
3.mockdata/index.js文件
/****************************************************************************************/ // mockdata/index.js var Mock = require('mockjs') import _data from './data' /** * @request query * type 请求数据类型(tiezi,tiwen),默认为tiezi * page 请求页数,默认为1 * pageSize 每页数据条数,默认为10 * * @repsonse data * type 请求数据类型(tiezi,tiwen),默认为tiezi * page 请求页数,默认为1 * pageSize 每页数据条数,默认为10 * data 表格数据 * total 数据总数 * */ function mockData(_query) { let query = _query || {} let page = query.page || 1 let pageSize = query.pageSize || 10 let type = query.type || 'tiezi' let total = _data[type].length console.log(query) let data = _data[type].filter((item, index) => { return (index >= (page-1)*pageSize) && (index <= page*pageSize-1) }) return { type: type, page: page, total: total, data: data, pageSize: pageSize } } // Mock.mock( url, post/get , 返回的数据) /** * options: { * url: 请求地址, * type: 请求方式get/post * body: 请求参数,注意类型是字符串 * } */ Mock.mock('/table/list', 'get', (options) => { console.log(options) // 这里的options.body类型为字符串,传入的时候要转化一下,将其转成json格式。这里我偷懒,就没写了。。。 return mockData(options.body) }); Mock.setup({ timeout: '200-600' })
4.main.js和components
/****************************************************************************************/ // main.js文件 require('./mockdata') /****************************************************************************************/ // components/* this.$http({ url: '/table/list', method: 'GET', data: { name: 'XYTang' } }).then((resp) => { console.log(resp) })
相关文章推荐
- 使用matlab工具研究神经网络的简单过程(网络和数据下载)
- 面向 Java 开发人员的 Ajax: 结合 Direct Web Remoting 使用 Ajax----数据序列化不可能比这更简单了!
- AJAX学习基础:简单介绍数据岛使用方法
- javascript使用xml 数据岛 简单实例
- 使用objectdatasource结合数据绑定控件进行简单三层架构的开发
- 数据自动生成工具 DataFactory 的简单使用
- 使用MS ACCESS + MS EXCEL实现最简单的数据分析。
- 一个简单的使用XMLHttpRequest获得服务器数据的例子
- SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出
- 使用objectdatasource结合数据绑定控件进行简单三层架构的开发
- SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出
- 一个简单的双击编辑表格单元格,更新数据表的demo。
- 使用objectdatasource结合数据绑定控件进行简单三层架构的开发
- javascript使用xml 数据岛 简单实例
- xpo 使用简单demo
- SQL Server BI Step by Step --- 使用SSIS进行简单的数据导入导出
- 使用简单的方法进行批量删除数据
- 数据自动生成工具 DataFactory 的简单使用
- DataTable用中使用Compute 实现简单的DataTable数据的统计.....
- asp.net简单数据工厂 ------使用方法