之前都是介绍在普通项目中使用mock.js,那么本次就来介绍一下在vue中使用mock.js实现前后端分离。
安装:
npm install mockjs
这里先写个小案例介绍一下具体使用,写法不规范,仅供参考。
然后案例讲完后我们讲具体的规范使用
那么一起来看看这个案例吧:
<script> import Mock from "mockjs" export default { name: "FunctionsDbSource", methods:{ // 接口测试 init(){ // 请求后端数据,查询数据源 this.axios({ method: "get", url:`${this.baseURL}/GetAll`, headers: { Account: "Admin", Password:"888888" } }) .then((response)=> { console.log(response); }) .catch((error)=> { console.log(error); }); } }, created(){ Mock.mock(`${this.baseURL}/GetAll`, { 'users|5': [ { 'name': '@cname', //中文名称 'age|1-100': 100, //100以内随机整数 'birthday': '@date("yyyy-MM-dd")', //日期 'city': '@city(true)' //中国城市 }] }); this.init(); } } </script>
首先引入了mock.js,然后定义了一个方法,用axios请求后台数据,在创建后调用此方法,然后我在创建后使用mock.js拦截请求,模拟数据(这里我模拟的是一个5位长度的users数组),只要mock的url地址和请求的地址相同,就会自动拦截请求。
我们打印了一下请求的结果response:
大家可以看到,和后端返回的数据格式一致,只是里面内容是我们自己模拟的,所以,只要提前和后端商量好数据格式,我们自己进行模拟数据,完成界面得渲染,等到后端写好数据接口,到时候只要把mock部分删除,就是我们自己想要的结果了。
但是每个请求都这样在vue页面中去写mock,后期删除起来也不方便,可维护性低,高耦合,所以我们这里就涉及到规范的写法。
1、安装:
npm install mockjs
2、手动新建mock.js文件(当然新建文件夹把它抽离出来也是可以的)
内容如下(根据实际需求更改):
import Mock from 'mockjs' // 引入mockjs let data = 'users|5': [ { 'name': '@cname', //中文名称 'age|1-100': 100, //100以内随机整数 'birthday': '@date("yyyy-MM-dd")', //日期 'city': '@city(true)' //中国城市 }] Mock.mock('/data/index', 'get', data) // 根据数据模板生成模拟数据
3、main.js中引入(注意自己js文件的路径)
// 引入mock require('./mock.js');
4、页面中使用:
<script> import Mock from "mockjs" export default { name: "FunctionsDbSource", methods:{ // 接口测试 init(){ // 请求后端数据,查询数据源 this.axios({ method: "get", url:"data/index", }) .then((response)=> { console.log(response); }) .catch((error)=> { console.log(error); }); } }, created(){ this.init(); } } </script>
以此我们就完成了抽离mock.js,之后只要往mock的js文件中添加请求即可,后续只要等后端接口写好,把main.js中的引入mock.js注释(删除)即可。
还有一种更直接的方法,因为mock只是我们生产环境需要的东西,当我们发布上线肯定不需要这部分请求,都会换成实际请求地址和数据,所以直接把mock.js配置到生产环境,上线部署打包不打包这部分即可,就和vue中的代理部分,上线是不会打包这部分的一样。
感兴趣的童鞋可以自己去研究研究哈。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。