视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2020-11-27 22:33:23 责编:小采
文档


最近使用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
 }
};

下载本文
显示全文
专题