发布时间:2023-01-12 文章分类:编程知识 投稿人:王小丽 字号: 默认 | | 超大 打印

Axios

1.基本说明

2.应用实例

在Vue项目中使用axios,从服务器获取json数据,显示在页面

day08-Axios

为了简化,使用json文件来模拟后端交互的数据

1.response.data.json:

{
  "success": true,
  "message": "成功",
  "data": {
    "items": [
      {
        "name": "牛魔王",
        "age": 800
      },
      {
        "name": "红孩儿",
        "age": 500
      },
      {
        "name": "蜈蚣精",
        "age": 200
      }
    ]
  }
}

2.在项目中导入vue.js和axios.min.js

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>axios的应用实例</title>
</head>
<body>
<!--页面视图-->
<div id="app">
    <h1>{{msg}}</h1>
    <table border="1px" width="200px">
        <tr>
            <td>名字</td>
            <td>年龄</td>
        </tr>
        <tr v-for="monster in monsterList">
            <td>{{monster.name}}</td>
            <td>{{monster.age}}</td>
        </tr>
    </table>
</div>
<script src="https://www.cnblogs.com/liyuelian/archive/2023/01/12/vue.js"></script>
<script src="https://www.cnblogs.com/liyuelian/archive/2023/01/12/axios.min.js"></script>
<script>
    new Vue({
        el: "#app",
        data: {
            msg: "妖怪信息列表",
            monsterList: []//表示妖怪信息的数组
        },
        methods: {//自定义方法
            list() {//发出ajax请求,获取数据-axios
                /*
                  1.axios.get()表示发出一个ajax请求
                  2."http://localhost:63342/axios/data/response.data.json" 表示请求的url
                     根据实际情况填写
                  3.axios发出ajax请求的基本语法是
                       axios.get(url).then(箭头函数).then(箭头函数)...catch(箭头函数)
                       (1)如果get请求成功后,就进入第一个then()
                       (2)可以在第一个then()中继续发出ajax请求(和promise基本一致)
                       (3)如果有异常,会进入到catch(箭头函数)中处理
                  4.list方法在生命周期函数created()中调用比较好
                  (这个阶段的data和 methods已经初始化结束,可以访问,但dom结构未初始化,页面未渲染)
                 */
                axios.get("http://localhost:63342/axios/data/response.data.json")
                    .then(responseDate => {//如果发出的ajax请求成功后,就会执行then()的箭头函数
                        // console.log("responseDate=>", responseDate);
                        // console.log("responseDate.data=>", responseDate.data);
                        // console.log("responseDate.data.data=>", responseDate.data.data);
                        console.log("responseDate.data.data.items=>", responseDate.data.data.items);
                        //将妖怪列表数据信息,绑定到data数据池
                        this.monsterList = responseDate.data.data.items;
                        //可以再次发出ajax请求,和promise一样,例如:
                        return axios.get("http://localhost:63342/axios/data/response.data.json");
                    }).then(responseData2 => {
                    console.log("第二次axios发出ajax请求返回数据responseData2=>", responseData2);
                    }).catch(err => {
                    console.log("err=>", err);
                    })//这里可以再次发出
            }
        },
        created() {//list方法在生命周期函数created()中调用比较好
            this.list();
        }
    })
</script>
</body>
</html>

responseDate.data.data.items的原生数据格式如下:

day08-Axios

效果:

day08-Axios
day08-Axios

3.注意事项和使用细节

将JSON对象转成JSON.stringify(response),格式输出JSON字符串,可以方便观察分析json字符串结构

例如:

day08-Axios

控制台输出:

day08-Axios

只需要复制字符串,在一些json转换网站中就可以看到json字符串清晰的结构

day08-Axios