vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)


Posted in Javascript onAugust 04, 2017

最近使用vue-cli做了一个小小的项目,在项目中需要使用vue-resource来与后台进行数据交互,所以我使用了本地json数据来模仿后台获取数据的流程。

至于vue-resource的安装和json的准备我就不赘述了、、、

下面是操作方法:

1、首先介绍一下项目的结构:将本地的json文件放在最外层和index.html在一起,姑且叫做data.json。

我的json数据文件大概如此:

{
 "seller": {
   "name": "粥品香坊(回龙观)",
   "description": "蜂鸟专送",
   "bulletin": "会指定餐饮服务商。",
   "avatar": "http://static.galileo.xiaojukeji.com/static/tms/seller_avatar_256px.jpg",
 },
 "goods": [
   {
    "name": "热销榜",
    "type": -1
   },
   {
    "name": "热销榜",
    "type": -1
   }
 ],
 "ratings": [
  {
   "username": "3******c",
   "avatar": "http://static.galileo.xiaojukeji.com/static/tms/default_header.png",
   "recommend": [
    "南瓜粥",
    "皮蛋瘦肉粥"
   ]
  },
  {
   "username": "2******3",
   "avatar": "http://static.galileo.xiaojukeji.com/static/tms/default_header.png",
   "recommend": [
    "扁豆焖面"
   ]
  }
 ]
}

2、接着在build的dev-server.js中进行加入代码:

//模拟服务器返回数据--开始
var appData = require('../data.json');
var seller = appData.seller;
var goods = appData.goods;
var ratings = appData.ratings;

var apiRoutes = express.Router();

apiRoutes.get('/seller', function (req, res) {
 res.json({
  errno: 0,
  data: seller
 });
});

apiRoutes.get('/goods', function (req, res) {
 res.json({
  errno: 0,
  data: goods
 });
});

apiRoutes.get('/ratings', function (req, res) {
 res.json({
  errno: 0,
  data: ratings
 });
});

app.use('/api', apiRoutes);
//模拟服务器返回数据--结束

特别注意:修改好后重新进行cnpm run dev(注意当dev-server.js和db.json改变后都需要进行该步骤)。

解释下以上代码:

1》首先请求根目录下的data.json文件,获取到文件内容并将其赋值给appData变量,然后获取其中的各个字段数据,分别定义变量seller、goods,ratings来赋值。

2》之后,通过express提供的Router对象及其一些方法(这里用的get方法)来设置接口(请求路径)以及请求成功后的回调函数来处理要返回给请求端的数据。(errno这个类似以js请求中的code值)

3》最后,我们要“使用”这个Router对象,为了统一管理api接口,我们在要请求的路由前边都加上‘api/'来表明这个路径是专门用来提供api数据的。在这个“接口”中,当我们访问“http://localhost:8080/api/sites”路径的时候,就会返回db.json里的sites对象给我们。

3、使用resouce获取这些数据,并使用

export default{
 data () {
  return {
   seller: {}
  };
 },
 created () {
  this.$http.get('/api/seller').then((response) => {
   // console.log(response);
   response = response.body;
   const ERR_OK = 0;
   if (response.errno === ERR_OK) {
    let data = response.data;
    console.log(data);
   }
  });
 },
 components: {
  'v-header': header
 }
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery淡入淡出元素让其效果更为生动
Sep 01 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
Jan 21 Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
清除js缓存的多种方法总结
Dec 09 Javascript
Ionic 2 实现列表滑动删除按钮的方法
Jan 22 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 Javascript
JavaScript实现随机五位数验证码
Sep 27 Javascript
解决vue组件中click事件失效的问题
Nov 09 Javascript
js实现验证码干扰(静态)
Feb 22 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 #jQuery
vue修改vue项目运行端口号的方法
Aug 04 #Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 #Javascript
微信小程序 本地图片按照屏幕尺寸处理
Aug 04 #Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 #Javascript
微信小程序 五星评分的实现实例
Aug 04 #Javascript
JavaScript中in和hasOwnProperty区别详解
Aug 04 #Javascript
You might like
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
2016/12/19 PHP
再谈javascript面向对象编程
2012/03/18 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
兼容FF和IE的动态table示例自写
2013/10/21 Javascript
JSONP之我见
2015/03/24 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
使用Python读取大文件的方法
2018/02/11 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
Python pandas用法最全整理
2019/08/04 Python
金宝贝童装官网:Gymboree
2016/08/31 全球购物
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
临床医学系毕业生推荐信
2013/11/09 职场文书
初婚未育证明
2014/01/15 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
地道战观后感400字
2015/06/04 职场文书
英语读书笔记
2015/07/02 职场文书
Python time库的时间时钟处理
2021/05/02 Python