一。使用axios 和vue-axios 来获取static/mock/ 数据。我们要知道只有static 文件夹 可以被外部访问到。
所以我们先把假数据放在static/mock下面 然后在methods里面定义获取的方法,然后在mounted(){}中使用。
因为整个Vue实例已经初始化完成了。
methods:{
// 拉取数据 会把axios 挂载到vue实例化对象中上面去
cartInit(){
// 这是发送一个GET 请求 返回的是promise 可以及使用then进行调用
// 箭头函数可以调用外层作用域。不存在作用域问题
// 只有static 文件夹 可以被外部访问到
// 在.gitignore文件中 加入static/mock 他就不会提交到git仓库和本地仓库里面的。
// 上线时,自动替换api vue 有代理的功能
// 开发环境的转发
this.axios.get('/api/cart.json').then(this.getHomeInfoSucc)
},
getHomeInfoSucc(response){
// console.log(response);
let res = response.data;
this.cartList=res.data
}
},
mounted(){
this.cartInit(); //初始化购物车列表
},
然后我们在config文件下,webpack依赖下面config/index.js 配置代理
proxyTable: {
// 代理 请求api的时候 还是转换到当地的端口中
'/api':{
target:'http://localhost:8080',
pathRewrite:{
// 请求的地址 是api形式的。
// 那么就将api 切换成'/static/mock'
// 请求的地址 变换下。
'^/api':'/static/mock'
}
}
},
这样在项目上线的时候,我们切换真实的API 就可以了。