<script src="https://cdn.jsdelivr.net/vue.resource/1.3.1/vue-resource.min.js"></script>
npm install vue-resource --save-dev
下面這些應該放在入口文件main.js里, 而不是組件文件里
import VueResource from 'vue-resource'
Vue.use(VueResource);
methods:{
doSomething: function(){
this.currentView = 'archive';
this.$http.get('data/demo.json').then(function(res){
console.log(res.body)
})
}
}
1、舊版dev-server.js配置本地數據訪問:
在const app = express()后,const compiler = webpack(webpackConfig)前配置即可,
var appData = require('../data.json')
var seller = appData.seller
var goods = appData.goods
var ratings = appData.ratings
var foods = appData.foods
var pice = appData.pice
var apiRoutes = express.Router()
apiRoutes.post('/foods', function (req, res) {
res.json({
errno: 0,
data: foods
});
})
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
});
})
apiRoutes.get('/pice', function (req, res) {
res.json({
errno: 0,
data: pice
});
})
app.use('/api',apiRoutes)
2、新版webpack.dev.conf.js配置本地數據訪問:
在const portfinder = require(‘portfinder’)后添加
//首先
const express = require('express')
const app = express()
var appData = require('../data.json')//加載本地數據文件
var seller = appData.seller//獲取對應的本地數據
var goods = appData.goods
var ratings = appData.ratings
var apiRoutes = express.Router()
app.use('/api', apiRoutes)
//然后找到devServer,在里面添加
before(app) {
app.get('/api/seller', (req, res) => {
res.json({
errno: 0,
data: seller
})//接口返回json數據,上面配置的數據seller就賦值給data請求后調用
}),
app.get('/api/goods', (req, res) => {
res.json({
errno: 0,
data: goods
})
}),
app.get('/api/ratings', (req, res) => {
res.json({
errno: 0,
data: ratings
})
})
} 有的同學說報錯,不能識別before,注意看下你的配置。
補充說一下,有的同學配置后說不能訪問,所有的修改配置都需要重新啟動運行命令的:npm run dev才能生效(切記 ),還有data.json數據也不能少,就放在跟目錄下跟index.html同級;data.json的部分數據:
{
"seller": {
"name": "粥品香坊(回龍觀)",
"description": "蜂鳥專送",
"deliveryTime": 38,
"score": 4.2,
"serviceScore": 4.1,
"foodScore": 4.3,
"rankRate": 69.2,
"minPrice": 20,
"deliveryPrice": 4,
"ratingCount": 24,
"sellCount": 90,
"bulletin": "粥品香坊其烹飪粥料的秘方源於中國千年古法,在融和現代制作工藝,由世界烹飪大師屈浩先生領銜研發。堅守純天然、0添加的良心品質深得消費者青睞,發展至今成為粥類的引領品牌。是2008年奧運會和2013年園博會指定餐飲服務商。",
"supports": [
{
"type": 0,
"description": "在線支付滿28減5"
},
{
"type": 1,
"description": "VC無限橙果汁全場8折"
},
{
"type": 2,
"description": "單人精彩套餐"
},
{
"type": 3,
"description": "該商家支持發票,請下單寫好發票抬頭"
},
{
"type": 4,
"description": "已加入“外賣保”計划,食品安全保障"
}
],
"avatar": "http://static.galileo.xiaojukeji.com/static/tms/seller_avatar_256px.jpg",
"pics": [
"http://fuss10.elemecdn.com/8/71/c5cf5715740998d5040dda6e66abfjpeg.jpeg?imageView2/1/w/180/h/180",
"http://fuss10.elemecdn.com/b/6c/75bd250e5ba69868f3b1178afbda3jpeg.jpeg?imageView2/1/w/180/h/180",
"http://fuss10.elemecdn.com/f/96/3d608c5811bc2d902fc9ab9a5baa7jpeg.jpeg?imageView2/1/w/180/h/180",
"http://fuss10.elemecdn.com/6/ad/779f8620ff49f701cd4c58f6448b6jpeg.jpeg?imageView2/1/w/180/h/180"
],
"infos": [
"該商家支持發票,請下單寫好發票抬頭",
"品類:其他菜系,包子粥店",
"北京市昌平區回龍觀西大街龍觀置業大廈底商B座102單元1340",
"營業時間:10:00-20:30"
]
}
}
以上為get請求,有同學問post怎么設置,再補充下POST請求:
老版本:
apiRoutes.post('/foods', function (req, res) { //注意這里改為post就可以了
res.json({
errno: 0,
data: foods
});
})
新版本:
app.post('/api/foods', function (req, res) { // 注意這里改為post就可以了
res.json({
errno: 0,
data: foods
});
})
在組件里面:
created () {
this.$http.post('http://localhost:8080/api/foods').then((response) => {
console.log(response)
})
}