­

Vue-Axios

Vue-Axios

什麼是Axios

Axios是一個開源的可以用在瀏覽器端和NodeJs的非同步通訊框架,她的主要作用就是實現AJAX非同步通訊,其功能特點如下:

  • 從瀏覽器中創建XMLHttpRequests從node.js創建http請求
  • 支援Promise API[JS中鏈式編程]
  • 攔截請求和響應
  • 轉換請求數據和響應數據
  • 取消請求
  • 自動轉換JSON數據
  • 客戶端支援防禦XSRF(跨站請求偽造)

GitHub://github.com/gxios/axios

中文文檔://www.axios-js.com/

1

第一個Axios實例

1.創建data.json

{
  "name":"MoYu",
  "url":"//www.moyuzc.cn/",
  "page":1,
  "isNonProfit":true,
  "address": {
    "street":"含光門",
    "city":"陝西西安",
    "country":"中國"
  },
  "links":[
      {
        "name": "bilibili",
        "url": "//space.bilibili.com/84493733"
      },
      {
        "name": "MoYu",
        "url": "//moyu-zc.gitee.io/"
      }
    ]
}

2.Vue綁定

<div id="vue"></div>

<script src="//cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
<script src="//unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
    var vm = new Vue({
        el:'#vue'
    });
</script>

3.鉤子函數

<script type="text/javascript">
    var vm = new Vue({
        el:'#vue',
        mounted(){   //鉤子函數   鏈式編程  ES6新特性
            axios.get('../data.json').then(response=>(console.log(this.info=response.data)));
        }
    });
</script>

2

成功獲取

注意:response=> 該表達式為ES6新特性,如果出錯,可以這樣解決:

3

4.頁面顯示資訊

<div id="vue">
    <div>
        {{info.name}}
        <br>
        {{info.address}}
    </div>
</div>

<script src="//cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.js"></script>
<script src="//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
                    },
                }
            }
        },
        mounted(){   //鉤子函數   鏈式編程  ES6新特性
            axios.get('../data.json').then(response=>(console.log(this.info=response.data)));
        }
    });
</script>

4

Vue-呼吸問題

在剛進入頁面時,可能會出現如下情況:

5

顯示的是html文件中的資訊,而不是調用出的文字

過一會才會變為調用出的文字,這個就是Vue呼吸問題

解決方法

<div id="vue" v-clock>
</div>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--解決閃爍問題-->
    <style>
        [v-clock]{
            display: none;
        }
    </style>
</head>

這個就可以啦

5.a標籤綁定

<div id="vue" v-clock>
    <div>
        {{info.name}}
        <br>
        {{info.address}}
        <br>
        <a v-bind:href="info.url">點擊</a>
    </div>
</div>
data(){
    return{
        //請求的返回參數,必須和 json 字元串一樣
        info:{
       		name: null,
            address: {
                street: null,
                city: null,
                country: null
            },
        	url: null
        }
    }
},

點擊 a 標籤,就會進入你在 data.json ,設置好的 url

個人部落格為:
MoYu’s Github Blog
MoYu’s Gitee Blog

Tags: