axios的介绍与使用

axios

1.什么是axios

axios不是一门新的技术。

Axios是一个基于promise的HTTP库,简单的讲就是可以发送get、post等请求。

本质上是对原生Ajax的封装,只不过它是Promise的实现版本。

2.为什么要使用axios

原生的ajax使用起来十分繁琐。原来发送http请求采用JQuery.ajax()非常方便。既然已经开始使用vue进行前端开发,抛弃了对页面的DOM元素操作,再加载jQuery就十分多余了。买椟还珠。

Vue本身不支持Ajax请求,需要使用第三方插件。Vue1.0推荐大家使用vue-resource。16年尤玉溪发布消息,不再维护vue-resource,推荐大家使用axios。

3.下载安装

如果没有使用脚手架开发,还是用原来的HTML方式。

**<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.24.0/axios.js"></script>**

下载全局 axios

npm i -g axios

在vscode中下载第三方插件

npm i vue-axios

在vue模块化项目下引入
为了方便使用(一次性引入)main.js

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
//导入axios
import axios from "axios";
//导入vue-axios插件
import VueAxios from "vue-axios";

Vue.config.productionTip = false;

//想要在组件中使用axios,可以将导入的axios绑定到Vue的原型链上。
// Vue.prototype.$axios = axios;

//安装 (注册) 插件
Vue.use(VueAxios,axios);

new Vue({
  router,
  store,
  render: (h) => h(App),
}).$mount("#app");

使用json-server模拟数据
创建一个json-server文件夹
下载 json-server

npm install -g json-server

在这个文件夹下 创建一个db.json

{
  "book": [
    {
      "id": 2,
      "title": "西游记",
      "author": "吴承恩"
    },
    {
      "id": 3,
      "title": "红楼梦",
      "author": "施耐庵"
    },
    {
      "title": "红楼梦",
      "author": "施耐庵",
      "id": 4
    }
  ]
}

在Home.vue 组件 中处理数据


<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png" />
    <br>
     <button @click="bookAdd"></button>
      <button @click="bookDel"></button> 
      <button @click="bookUp"></button>
         <button @click="book">查询所有</button>
   <button @click="bookInfo">查询单个</button>
  </div>
</template>

<script>

export default {
  name: "Home",
  dada:{
   msg:[]
  },
  components: {
    // HelloWorld,
  },
  methods: {
    book() {
      //发送请求
      this.axios({
        // 设置请求的方式
        method:"get",
        //设置请求的URL
        url:"http://localhost:3000/book"
      }).then(resp=>{
        //请求成功之后,执行then的回调函数  resp就是结果
        console.log(resp);
      }).catch(err=>{
        //请求失败之后,执行catch的回调函数
        console.log(err);
      })
    },
      bookInfo() {
      //发送请求
      this.axios({
        // 设置请求的方式
        method:"get",
        //设置请求的URL
        url:"http://localhost:3000/book/1"
      }).then(resp=>{
        //请求成功之后,执行then的回调函数  resp就是结果
        console.log(resp);
      }).catch(err=>{
        //请求失败之后,执行catch的回调函数
        console.log(err);
      })
    },
      bookAdd() {
      //发送请求
      this.axios({
        // 设置请求的方式
        method:"post",
        //设置请求的URL
        url:"http://localhost:3000/book",
        data:{
          title:"红楼梦",
          author:"施耐庵"
        }
      }).then(resp=>{
        //请求成功之后,执行then的回调函数  resp就是结果
        console.log(resp);
      }).catch(err=>{
        //请求失败之后,执行catch的回调函数
        console.log(err);
      })
    },
      bookDel() {
      //发送请求
      this.axios({
        // 设置请求的方式
        method:"delete",
        //设置请求的URL
        url:"http://localhost:3000/book/1",
        // data:{
        //   title:"红楼梦",
        //   author:"施耐庵"
        // }
      }).then(resp=>{
        //请求成功之后,执行then的回调函数  resp就是结果
        console.log(resp);
      }).catch(err=>{
        //请求失败之后,执行catch的回调函数
        console.log(err);
      })
    },
      bookUp() {
      //发送请求
      this.axios({
        // 设置请求的方式
        method:"put",
        //设置请求的URL
        url:"http://localhost:3000/book/1",
        data:{
          title:"红楼梦",
          author:"施耐庵"
        }
      }).then(resp=>{
        //请求成功之后,执行then的回调函数  resp就是结果
        console.log(resp);
      }).catch(err=>{
        //请求失败之后,执行catch的回调函数
        console.log(err);
      })
    },
  },
};
</script>
<style  scoped>
  button{
    margin: 0 10px;
  }
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值