图解Axios的全局引用和使用

一、找到package.json文件 

查看组件有没有安装完成。如果没有安装,请输入命令安装

npm install axios

npm install vue-axios

二、找到main.js文件

全局引入的出入口,所有的组件都要引入到这里。

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
//引入axios组件
import axios from 'axios';
import VueAxios from 'vue-axios';
const app=createApp(App);
app.use(VueAxios,axios);
app.use(store).use(router).mount('#app')
源码 
<template>
  <div class="hello ">
    <!-- 创建一个事件按钮 -->
  <button type="button" @click="huoqu">添加阿贾克斯</button>
      <ul class="box">
        <!-- 遍历li中的所有内容 -->
        <li v-for="item in lists" :key="item.index">  
          <img :src="item.imgurl" width="100" alt="">
          <p>标题 : {{ item.title }}</p>
          <p>现价 : {{ item.price }} <span>原价: {{ item.uprice }}</span></p>
        </li>
      </ul>
  </div>
  </template>
<script>
export default {
  data() {
    return {
      // uid: '', //相当于fastmock中的每个id
      lists: [],//用户承载fastmock中的所有值
    }
        },
  methods: {
    huoqu() {
      //将数据写入fastmock中,通过获取网址的数据
      let url = "https://www.fastmock.site/mock/fa8a771554dfd181a46f8e1b742dd651/test/pro"
      this.axios.get(url).then(res => {
        // console.log(res);  
        // console.log(res.data.datas);
       //  将从网址中获取的值赋值给数组
      this.lists = res.data.datas; 
        // console.log(this.lists);
      }).catch((err) => {
        console.log(err);
      })
    },
    mounted() {    //自动执行
      this.huoqu()
    },
  },
}
</script>
运行结果

 源码2
<template>
  <div class="hello">
        <ul class="box">
          <li v-for="item in lists" :key="item.uid">
            <img :src="item.imgurl" width="100" alt="">
            <p>{{ item.title }}</p>
            <br>
            <p>套餐 : {{ item.price }}</p>
            <br>
            <p>原价: {{ item.uprice }}</p>
            <br>
          </li>
        </ul>
  </div>
</template>
<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data() {
    return {
      lists: [],
      //数组传参,
    }
  },
  mounted(){    //自动执行
  this.huoqu()
},
methods:{
  huoqu() {
    let url = "https://www.fastmock.site/mock/775d524a96d23ca9e8e837908a128d9b/_meituan/meituan"
    this.axios.get(url).then(res => {
      console.log(res.data.datas);
      this.lists = res.data.datas;
      console.log(this.lists);
    }).catch((err) => {
      console.log(err);
    })
  }
},
}
</script>
<style scoped lang="scss">
.box{
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  li{
    width: 180px;
  }
  img{
    width: 180px;
    height: 150px;
    margin-left: 5px;
    border-radius: 5px;
    // margin-right: 5px;
  }
}
</style>
运行结果

Vue是一种流行的JavaScript框架,用于开发Web应用程序。Axios是一种用于发送异步请求的JavaScript库,可轻松处理HTTP请求和响应。封装axios并将其应用到Vue的全局中,可以让我们在任何Vue组件中调用API时更加方便和简单。 首先,我们需要在Vue应用的main.js文件中引入axios库: ``` import vue from 'vue'; import axios from 'axios'; ``` 这将使我们可以在整个Vue应用使用axios。然后,我们将向Vue原型添加axios实例,并在全局中进行注册: ``` vue.prototype.$axios = axios; ``` 这使我们可以在每个Vue组件中使用`this.$axios`,从而发送HTTP请求。但是,我们可能还需要在请求之前和之后进行一些操作,例如设置请求头、拦截错误等。因此,我们可以创建一个新的axios实例并对其进行自定义配置,以便在应用程序中进行全局使用。 ``` const axiosInstance = axios.create({ baseURL: "http://example.com/api", headers: { "Content-Type": "application/json" } }) axiosInstance.interceptors.response.use( response => response.data, error => { console.log(error); return Promise.reject(error); } ); vue.prototype.$axios = axiosInstance; ``` 这样,我们可以使用`this.$axios`来发出修改后的HTTP请求,并在发送请求之前和之后执行我们的操作。我们还可以使用拦截器对响应进行预处理,以便在需要时对响应进行统一处理。最后,封装Axios的方法可以根据项目需求进行自定义配置,以提高效率并使代码更加可读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值