Vue 模拟请求后台数据

Vue 项目开发过程中,在没有后端支持的情况下,如何模拟请求后台数据呢?

可以在根目录 /static 目录下新建 mock 文件夹,在 mock 文件夹下创建 json 文件来存放模拟数据,例如:

index.json 内容如下:

//注意:json 文件里不要加注释,否则无法正常解析
{
  "ret": true,
  "data": {
    "indexList": [{
      "id": "0001",
      "title": "gongcw"
    }]
  }
}

那么,为什么要在 /static 目录下存放模拟数据呢?是因为,在 Vue 项目中,只有 /static 目录下的内容可以被外部访问,访问其余目录会自动跳转到“首页”。

接下来,就可以通过 axios 发送 ajax 请求获取数据了:

<script>
import axios from 'axios'
export default {
  name: 'Home',
  methods: {
    getHomeInfo () {
      axios.get('/static/mock/index.json').then(this.getHomeInfoSucc)
    },
    getHomeInfoSucc (res) {
      console.log(res)
    }
  },
  mounted () {
    this.getHomeInfo()
  }
}
</script>

这样虽然可以正常获取模拟数据了,但还存在一个问题。一般项目获取后台数据都是通过 ‘/api/iddex.json’ 方式获取,如果使用上述方式,在项目上线前就需要修改所有 ajax 请求,这显然不是太友好。

我们可以在 /config/index.js 文件里添加下述代码来解决:

module.exports = {
  ...
  dev: {
    ...
    proxyTable: {
        '/api': {
            target: 'http://localhost:8080',
            pathRewrite: {
                '^/api': '/static/mock'
            }
        }
    }
    ...
  }
  ...
}

接下来就可以请求 ‘/api/index.json’ 来获取模拟数据了。

最后,如果需要把代码提交到 git 上管理,可以在 .gitignore 文件里添加如下代码,来忽略提交模拟数据

static/mock
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值