时间:2021-05-26
在我们的生产实际中,后端的接口往往是较晚才会出来,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于是有没有可以制造假数据来模拟后端接口呢,答案是肯定的。于是今天我们来介绍一款非常强大的插件Mock.js ,可以非常方便的模拟后端的数据,也可以轻松的实现增删改查这些操作,在后台数据完成之后,你所做的只是去掉mockjs:停止拦截真实的ajax,仅此而已。
搭建一个vue项目
安装mockjs
开启项目
创建一个mockjs文件夹以及mockjs,并且在main.js引入这个文件
此时可以看到像这样的一个项目结构
mockjs的使用
在项目中的mock.js文件中,写入模拟的数据,此时我们可以参照一下mockjs的文档。
接下来可以做我们想要做的事了
在mock.js中模拟简单的一些数据
const Mock = require('mockjs');// 获取 mock.Random 对象 const Random = Mock.Random; // mock一组数据 const produceData = function (opt) { console.log('opt', opt); let articles = []; for (let i = 0; i < 30; i++) { let newArticleObject = { title: Random.csentence(5, 30), // Random.csentence( min, max ) thumbnail_pic_s: Random.dataImage('300x250', 'mock的图片'), // Random.dataImage( size, text ) 生成一段随机的 Base64 图片编码 author_name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名 date: Random.date() + ' ' + Random.time() // Random.date()指示生成的日期字符串的格式,默认为yyyy-MM-dd;Random.time() 返回一个随机的时间字符串 } articles.push(newArticleObject) } return { data: articles } }Mock.mock('/news', /post|get/i, produceData);//当post或get请求到/news路由时Mock会拦截请求并返回上面的数据在vue中请求
methods: { setNewsApi: function() { this.$http.post("/news", "type=top&key=123456").then(res => { console.log(res.data); this.newsListShow = res.data.data; }); } }效果预览
再做一个删除的处理
模拟数据
let arr = [] for (let i = 0; i < 30; i++) { let newArticleObject = { name: Random.cname(), // Random.cname() 随机生成一个常见的中文姓名 content: Random.csentence(5, 30), // Random.csentence( min, max ) id: i } arr.push(newArticleObject); } let list = function (options) { let rtype = options.type.toLowerCase(); //获取请求类型 switch (rtype) { case 'get': break; case 'post': let id = parseInt(JSON.parse(options.body).params.id) //获取删除的id arr = arr.filter(function(val){ return val.id!=id;//把这个id对应的对象从数组里删除 }); break; default: } return { data: arr } //返回这个数组,也就是返回处理后的假数据 } Mock.mock('/list', /get|post/i, list);//get用于请求数据,post用于删除数据vue中使用
methods: { setNewsApi: function() { this.$http.get("/list", "").then(res => { this.data = res.data.data; }); }, deleteList(data) { //删除数据 let id = data.id; this.$http.post('/list', { params: { id: id } }).then(function(res) { console.log(res); this.data = res.data.data; alert(data.name + '删除成功'); }.bind(this)) .catch(function(error) { console.log(error) }); }, }效果预览
github代码地址
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在使用vue-cli项目创建项目中,使用sass等预编译css语言时,不需要在config中配置,只需要在项目中安装相应loader即可。例如:1、在项目中使用
最近使用vue-cli做了一个小小的项目,在项目中需要使用vue-resource来与后台进行数据交互,所以我使用了本地json数据来模仿后台获取数据的流程。至
前言我们在使用vue-cli启动项目的时候npmrundev便可以启动我们的项目了,通常我们的请求地址是以localhost:8080来请求接口数据的,loca
这里请求的是知乎日报的api,由@izzyleung这位大神提供的,这是github地址。在vue-cli构建的项目中先安装axiosnpminstallaxi
最近在学习Vue,今天尝试了使用axios模拟本地网络请求。使用的过程中发现接口请求一直404,后来发现在当期的Vue-cli构建的最新的项目中,接口请求应该这