微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

【vue-09】axios

文档:Axios中文文档 官网

为什么要使用axios

功能特点:

支持发送ajax异步

支持在NodeJs中发送ajax请求。

支持Promise

支持拦截器请求和响应

支持对请求和响应数据的转换。

快速上手

安装:npm install axios --save或者使用cdn

data.json和demo1.html在同一个文件夹下

data.json

{
  "name": "Java",
  "url": "https://www.baidu.com",
  "page":1,
  "isOK":true,
  "address": {
    "sheng": "广东",
    "shi":"深圳"
  },
  "links": [
    {
      "name": "name1",
      "url": "url1"
    },
    {
      "name": "name2",
      "url": "url2"
    }
  ]
}

demo1.html

  • v-cloak解决网页刚加载会出现{{info.name}}这种的,让网页是白的
  • mounted 编译好的HTML挂载到页面完成后执行的事件钩子,这个钩子函数一般会做一些ajax请求获取数据,进行数据初始化
  • response=>(console.log(this.info=response.data)需要改成ES6,不然会出现表达式异常

  • data()方法接受mounted的返回值
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <Meta charset="UTF-8">
    <title>Title</title>
    <style>
        [v-cloak]{
            display:none;
        }
    </style>
</head>
<body>
<div id="app" v-cloak>
    <div>{{info.name}}</div>
    <div>{{info.address.shi}}</div>
    <a v-bind:href="info.url">百度</a>
</div>
</body>
<--引入axios的cdn--></--引入axios的cdn-->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    var vm = new Vue({
        el:"#app",
        data(){
            //请求的返回参数要和json字符串一样
            return{
                info:{
                    name:null,
                    address:{
                        sheng:null,
                        shi:null
                    },
                    url:null
                }
            }
        },
        mounted(){
            axios.get('data.json').then(response=>(console.log(this.info=response.data)))
        }
    });
</script>
</html>

Promise回调例子

new Promise((resolve, reject) => {
        setTimeout(()=>{
          resolve('HelloWorld')
        }, 1000)
      }).then(data => {
        console.log(data)
        return Promise.resolve(data + '111')
      }).then(data => {
        console.log(data)
        return Promise.resolve(data + '222')
      }).then(data => {
        console.log(data)
      })

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐