vue项目笔记(14)-axios实现数据(模拟数据)请求

本文介绍了如何在Vue项目中使用axios进行数据请求,包括安装axios、需求分析、减少网络请求次数、axios发起请求的步骤。通过在mounted钩子中发起请求,使用static文件夹下的json文件模拟数据,并利用webpack-dev-server的代理功能,将api请求转发到本地模拟数据,以提升开发效率并避免线上问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

axios实现数据(模拟数据)请求

1、在终端运行以下命令,安装axios

npm install axios --save

2、进行需求分析,在本例中首页Home组件中有Header、Swiper、Icons、Recommend、Weekend等5个子组件需要进行数据绑定。换言之,我们需要发起5次ajax请求,但是频繁发起ajax请求,网站的性能必定是很低的。所以,我们需要尽量减少网络请求的次数,我们可以通过父组件Home发起数据请求,然后把数据传给子组件就可以了。

3、利用axios发起网络请求的步骤

(1)首先,在父组件Home中引入,在mounted钩子中发起请求

import axios from "axios"
import axios from "axios"
  import HomeHeader from "./components/Header";
  import HomeSwiper from "./components/Swiper"
  import HomeIcons from "./components/Icons"
  import HomeRecommend from "./components/Recommend"
  import HomeWeekend from "./components/Weekend"
  export default {
    name: "Home",
    data() {
      return {
        city: '',
        iconList:[],
        recommendList:[],
        swiperList:[],
        weekendList:[]
      };
    },
    components: {
      HomeHeader,
      HomeSwiper,
      HomeIcons,
      HomeRecommend,
      HomeWeekend
    },
    mounted(){
      this.getHomeInfo();
    },
    methods: {
      getHomeInfo(){
        // axios返回的结果是一个promise对象
        axios.get('/api/index.json').then(
          // 注意:这里绝对不可以写成this.getHomeInfoSucc(),否则请求的结果会是undefined
          this.getHomeInfoSucc
        )
      },
      getHomeInfoSucc(res){
        console.log(res);
        res = res.data;
        if (res.ret && res.data) {
          this.city = res.data.city;
          this.swiperList = res.data.swiperList;
          this.iconList = res.data.iconList;
          this.recommendList = res.data.recommendList;
          this.weekendList = res.data.weekendList;
        }
      }
    }
  };

(2)在没有后端支持的时候,我们可以通过json文件进行数据模拟。但是,对应的json文件应该放在什么位置呢?在vue项目目录中,static文件夹是存放的静态文件,只有该文件夹下的文件可以被外界访问到(验证方法:地址栏输入对应static文件夹下面json文件的正确路径如:http://localhost:8080/static/mock/index.json)。发现,对应的模拟数据index.json文件的内容,可以看到,如下:

(3)此外,对于模拟数据,我们不希望把它们上传至线上,应该怎么处理呢?其实,很简单,我们只要忽略上传它们即可。具体做法是:打开.gitignore文件,在忽略的文件中,我们添加上模拟数据所在的文件路径(static、mock)即可。如图:

(4)网络请求的地址应该怎么写呢?上线之前修改代码是很忌讳的。我们设想一下,如果可以实现转发,那就再好不过了。在开发环境中,把api下面json文件的请求转化到本地的文件夹下。很幸运,vue中webpack-dev-server提供了代理功能,具体做法如下:打开config-index.js文件,做以下修改。需要注意的是:在修改了配置文件之后,我们需要重启项目npm run dev。

proxyTable: {
      '/api': {
        target: 'http://localhost:8080', //设置转化的域
        pathRewrite:{
          '^/api': '/static/mock' // 路径替换
        }
      }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHH5431

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值