学静思语
Published on 2025-02-13 / 5 Visits
0
0

前端技术笔记-Axios

Axios

一、基本说明

  • axios是独立于vue的一个项目,不是vue的一部分

  • axios通常和Vue一起使用,实现Ajax操作

  • axios是一个基于Promise的Http库

  • 学习文档:https://javasoho.com/axios/

  • 将JSON对象装成JSON.stringify(response)格式化输出JSON字符串,方便观察分析

二、实现代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Axios使用</title>
</head>
<!--引入vue和axios-->
<script type="text/javascript" src="script/vue.js"></script>
<script type="text/javascript" src="script/axios.min.js"></script>
<body>
<!--创建容器-->
<div id="app">
    <table border="1" width="300">
        <tr>
            <th>名字</th>
            <th>年龄</th>
        </tr>
        <tr v-for="monster in monsters">
            <td>{{monster.name}}</td>
            <td>{{monster.age}}</td>
        </tr>
    </table>
</div>
<!--创建vue对象-->
<script type="text/javascript">
    let vm = new Vue({
        el: "#app",
        data: {
            //定义一个数组,获取到的数据赋值给monster
            monsters: []
        },
        methods: {
            list() {
                // 发出Ajax请求
                /*
                * 1.axios.get() 表示发出Ajax请求
                * 2.http://localhost:63342/frontend_study/axios_study/data/response.data.json 表示请求的URL
                *   这个和之前学的Promise的用法没有太大区别
                * 3.axios发出Ajax请求的基本语法
                *   3.1 axios.get(url).then(箭头函数)...catch(箭头函数)
                *   3.2 如果get请求成功就进入到第一个then()
                *   3.3 可以再次发出Ajax请求,在前一个then()中发出请求,并且要将get()返回,才可以调用then()方法
                *   3.4 如果有异常,会进入catch(箭头函数)
                * 4.list() 应当在created()方法中调用
                * */
                axios.get("http://localhost:63342/frontend_study/axios_study/data/response.data.json").then(returnData => {
                    //打印信息
                    // console.log("returnData======>",returnData);
                    // 把JSON对象转换成字符串方便观察
                    console.log("json字符串===>",JSON.stringify(returnData))
                    // console.log("returnData.data======>",returnData.data);
                    // console.log("returnData.data======>",returnData.data.data);
                    console.log("returnData.data.items======>",returnData.data.data.items);
                    //将数据赋值给数据池中的monsters
                    this.monsters = returnData.data.data.items;
                //     可以发出第二次Ajax请求
                    return axios.get("http://localhost:63342/frontend_study/axios_study/data/response.data.json")
                }).then(returnData=>{
                    console.log("第二次请求returnData.data.items======>",returnData.data.data.items);
                }).catch(error=>{
                    console.log("错误为==>",error)
                })
            }
        },
        created(){
            this.list();
        }
​
    });
​
</script>
</body>
</html>



Comment