Vue-Axios异步通信

本文介绍了Vue中如何使用Axios进行异步通信,Vue推荐使用Axios而非jQuery,因为Vue遵循Soc原则。Axios是一个支持Promise API的开源库,适用于浏览器和Node.js,用于处理Ajax异步请求。此外,还简述了Vue的生命周期及其钩子函数,说明了在Vue实例的不同阶段可以注册钩子函数以控制应用的行为。
摘要由CSDN通过智能技术生成

Axios异步通信

网络通信可以使用jQuery,但是vue是一个视图层框架,作者比较遵守Soc原则,所以vue不包含Ajax异步通信功能,为了解决通信功能,就开发了vue-resource插件,但是这个插件停止了更新,就推荐使用了这个框架,少用jQuery,因为操作Dom太频繁了

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

  • 从浏览器创建异步请求XML Http Requests
  • 从Node.js创建http请求
  • 支持PromiseAPI
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动住那换JSON数据
  • 客户端支持防御XSRF(跨站请求伪造)

Vue的生命周期:钩子函数

Vue的实例有一个完整的生命周期,创建、初始化数据、编译模板、挂在Dom、渲染、更新、渲染、卸载等一系列过程

就是从Vue实例从创建到销毁的过程就是Vue的生命周期

Vue的生命周期中提供了一系列的事件,让我们在事件触发时注册JS方法,可以让我们自己注册的JS方法控制整个大局,这些事件响应方法中this直接指向的是Vue的实例

举的一个列子是,当运行Vue对象时,初始化到渲染中间是有一大段空闲的,在这些间隙中挂载钩子,来执行一些命令

image-20200905152412714

image-20200905152557265

image-20200905152629377

image-20200905152718112

  • 如何使用

  • GitHub

  • 在线cdn

  • image-20200905075646621

  • 要使用ES6规范,ES5写不了这个代码、

  • <body>
        <div id="vue">
    
        </div>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
        <script type="text/javascript">
            var vm = new Vue({
                el:'#vue',
     
                mounted(){
                    axios.get("data.json").then(Response=>(console.log(Response.data)));
                }
            });
        </script>
    </body>
    
  • {
      "name": "haoyun",
      "url": "https://www.baidu.com",
      "page": 1,
      "address": {
        "street": "东咀",
        "city": "珠海",
        "country": "中国"
      }
    }
    
  • image-20200905160854473

  • <body>
        <div id="vue" v-clock>
            {{info.address.street}}
            {{info.name}}
            <a v-bind:href="info.url">百度</a>
        </div>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.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{
                        info:{
                            name:null,
                            url:null,
                            page:null,
                            address:{
                                street:null,
                                city:null,
                                country:null
                            }
                        }
                    }
                },
                /*钩子函数*/
                mounted(){
                    axios.get("data.json").then(Response=>(this.info=Response.data));
                }
            });
        </script>
    </body>
    
  • image-20200905173527496

  • 可以从axios官网学习

  • http://www.axios-js.com/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值