Vue的異步渲染axios問題

Vue異步渲染axios

首先我們要知道axios不是vue裡面的。

axios是一個基於Promise的,發送http請求的一個工具庫,並不是vue中的第三方插件,使用時不能通過“Vue.use()”安裝插件,需要在原型上進行綁定。

axios異步跟jquery中ajax其實是一樣的,功能相同,不過獲取到數據以後渲染的難易程度不同讓axios更加突出,jquery需要不停的操作dom元素進行渲染,而axios利用Vue進行渲染,其中的方便就大幅度展現出來瞭。

首先用Springboot實現一下簡單的axios異步請求以及渲染。

點擊事件觸發,將獲取的數據進行渲染。

<div id="box"> 
     <span>{{name}}</span>
    <input type="button" v-on:click="ss">
</div>
 
<script type="text/javascript">
    new Vue({
        el:"#box",
        data:{
            name:'李佳琪'
        },
        methods:{
            ss:function (){
                axios.get("/boot1/123").then(response=>(this.name=response.data))
            }
        }
    })
</script>

這裡在簡單說一下,thymeleaf中的路徑引用

引入外部文件的寫法。

 <link rel="stylesheet" type="text/css" th:href="@{/css/ss.css}" rel="external nofollow" />
    <script th:src="@{/js/vue.js}" type="text/javascript" charset="utf-8"></script>
    <script th:src="@{https://unpkg.com/axios/dist/axios.min.js}"></script>

Vue axios發起異步請求

axios是vue中專門用來發起異步請求的庫,可以理解為python中的requests庫,java中的rest-assured庫。

1.安裝axios

cnpm install axios -S

2.使用

  • axios.get(url) :發起請求
  • .then():請求成功需要做的事
  • .catch():請求失敗需要做的事

要修改data()中的屬性,此處用箭頭函數來指定this對象,否則,this.xxx修改的是.then()中的function對象。

1.往往我們可以把這類api的請求都封裝到一個api.js文件中:

2.使用的地方導入:

真實項目中的使用

1.封裝api.js,將axios請求的多個接口封裝好

2.在組件的created或者mounted或者methods中向後端發起axios請求,得到數據

3.將得到的數據賦值給組件的data()中的屬性,組件再在模版<template></template>中渲染,展示給前端。

總結

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: