Axios异步通信

什么是Axios?

  Axios是一个开源的可以用在浏览器端和NodeJS的异步通信框架,主要作用

就是实现AJAX异步通信,其功能特点如下:

··从浏览器中创建XMLHttpRequests

··从node.js创建http请求

··支持Promise API [ JS中链式编程  ]

··拦截请求和响应

··转换请求数据和响应数据

··取消请求

··自动转换JSON数据

··客户端支持防御XSRF(跨站请求伪造)

 

为什么要使用Axios?

  由于Vue.js是一个视图层框架并且作者(尤雨溪)严格遵守SoC(关注度分离原则),所以

Vue.js并不包含Ajax通信功能,为了解决通信问题。作者单独开发了一个名为vue-rescouce的

插件,不过在进入2.0版本后停止了对该插件的维护并推荐了Axios框架。少用jQuery,因为他

操作Dom太频繁。

 

第一个Axios程序

  现在开发的接口大部分采用的JSON格式。可以先在项目里模拟一段JSON数据,数据内容

:创建一个名为data.json的文件并填入上面的内容,放在项目的根目录下。

{
"name": "我要学Vue",
"url": "https://www.bilibili.com",
"page": 1,
"isNonProfit": true,
"address": {
"street": "财富门",
"city": "湖南长沙",
"country": "中国"
},
"links": [
{
"name": "hao123",
"links": "https://www.hao123.com"
},
{
"name": "百度",
"links": "https://www.baidu.com"
},
{
"name": "博客园",
"links": "https://www.cnblogs.com"
}
]
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        <!--解决闪烁-->
        [v-clock]{
            display: none;
        }
    </style>

</head>
<body>

<div id="vue" v-clock>
    <div>{{info.name}}</div>
    <div>{{info.address.street}}</div>

    <a v-bind:href="info.url">点我</a>
</div>
</div>

<!--引入js文件-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el: '#vue',
        data(){
            return{
                //请求的返回参数合适,必须和json字符串一样
                info:{
                    name: null,
                    address:{
                        street:null,
                        city:null,
                        country:null
                    },
                    url:null
                }
            }
        },
        mounted(){//钩子函数 链式编程 注意要用ES6以上的浏览器
            axios.get('../data.json').then(response=>(console.log(this.info=response.data)))
        }
    });
</script>
</body>
</html>

posted on 2022-12-08 13:51  键盘敲烂的朱  阅读(60)  评论(0编辑  收藏  举报