1. 程式人生 > 實用技巧 >【Vue自學筆記(三)】網路請求的簡單使用

【Vue自學筆記(三)】網路請求的簡單使用

如果想要呼叫介面,需要使用到一個axios,axios必須先匯入才可以使用。使用get或post方法即可傳送對應的請求,then方法中的回撥函式會在請求成功或失敗時觸發,通過回撥函式的形參可以獲取響應內容或錯誤資訊。

本章節只簡述簡單的使用,詳細請見文件:https://github.com/axios/axios

準備工作

  1. axios庫
<!-- 官網提供的axios線上地址 -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  1. 介面

介面1:隨機笑話
請求地址:https://autumnfish.cn/api/joke/list


請求方法:get
請求引數:num(笑話條數,數字)
響應內容:隨機笑話

介面2:使用者註冊
請求地址:https://autumnfish.cn/api/user/reg
請求方法:post
請求引數:username(使用者名稱,字串)
響應內容:註冊成功或失敗

完整程式碼

<body>
    <!-- 官網提供的axios庫線上地址 -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <input type="button" value="get請求" class="get">
    <input type="button" value="post請求" class="post">
</body>
<script>
    document.querySelector(".get").onclick = function () {
        axios.get("https://autumnfish.cn/api/joke/list?num=3")
            .then(function (responce) {
                console.log(responce)
            }, function (err) {
                console.log(err)
            })
    }
    document.querySelector(".post").onclick = function () {
        axios.post("https://autumnfish.cn/api/user/reg", { username: "天龍教主夫人" })
            .then(function (responce) {
                console.log(responce)
            }, function (err) {
                console.log(err)
            })
    }
</script>

講解

querySelector()方法返回文件中匹配指定 CSS 選擇器的一個元素。
注意: querySelector()方法僅僅返回匹配指定選擇器的第一個元素。如果你需要返回所有的元素,請使用 querySelectorAll()方法替代。

get方法對應get請求。引數使用字串的形式拼接在後面。post方法對應post請求。引數以物件的形式作為引數提供給方法,和url用逗號隔開。

axios與vue結合

axios回撥函式中的this已經改變無法訪問到data中資料,需要把this儲存起來,回撥函式中直接使用儲存的this即可。

<body>
    <div id="app">
        <input type="button" value="獲取笑話" @click="getJoke">
        <P>{{joke}}</P>
    </div>
</body>
<script>
    var app = new Vue({

        el: "#app",
        data: {
            joke: "很好笑的笑話"
        },
        methods: {
            getJoke: function () {
                var _this = this
                axios.get("https://autumnfish.cn/api/joke")
                    .then(function (responce) {
                        _this.joke = responce.data
                        console.log(responce)
                    }, function (err) {
                        console.log(err)
                    })
            }
        }

    })
</script>

很簡單,效果就是顯示一則笑話。