欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue 使用Ajax異步或同步的方法

 更新時(shí)間:2025年07月03日 09:22:24   作者:凌冰_  
本文介紹了Vue中使用Axios動(dòng)態(tài)加載員工列表數(shù)據(jù),并通過async/await替代then/catch優(yōu)化代碼結(jié)構(gòu),同時(shí)詳解了Vue生命周期的8個(gè)階段及鉤子函數(shù)應(yīng)用場景,強(qiáng)調(diào)mounted鉤子用于初始化數(shù)據(jù)請求,感興趣的朋友跟隨小編一起看看吧

一、使用Axios動(dòng)態(tài)加載員工列表數(shù)據(jù)

  1、運(yùn)行頁面效果

 2、單擊查詢顯示所有的數(shù)據(jù)

3、 再通過姓名,性別,職位分別查詢數(shù)據(jù)

4、單擊清空按鈕,查詢字段恢復(fù)原來狀態(tài),那就是顯示所有的數(shù)據(jù)

 5、JS代碼片段

<!-- 引入axios.js -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script type="module">
        import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'
        createApp({
            data() {
                return {
                    findForm: {
                        name: '',
                        gender: '',
                        position: ''
                    },
                    users: [] // 用于存儲(chǔ)查詢結(jié)果的用戶數(shù)據(jù)數(shù)組
                };
            },
            methods: {
                showMessage() {
                    // 這里可以添加實(shí)際的查詢邏輯
                    axios.get(`https://webserver.ma.net/emps/list?name=${this.findForm.name}&gender=${this.findForm.gender}&job=${this.findForm.position}`)
                        .then(response => {
                            this.users = response.data.data;
                        })
                        .catch(error => {
                            console.error('查詢用戶數(shù)據(jù)失敗:', error);
                        })
                },
                  // 清空查詢表單
                clearForm() {
                    this.findForm = {
                        name: '',
                        gender: '',
                        position: '',
                    }
                    this.showMessage(); // 清空后重新查詢,獲取所有用戶數(shù)據(jù)
                }
            }
        }).mount('#app');
    </script>

說明:使用axios中提供的.then(function(){....}).catch(function(){....}),這種回調(diào)函數(shù)的寫法,會(huì)使得代碼的可讀性和維護(hù)性變差。

解決:可以通過async、await可以讓異步變?yōu)橥讲僮?/strong>

async:聲明一個(gè)異步方法,await:等待異步任務(wù)執(zhí)行。

 如下操作:(代碼修改后就變成同步操作了,也就是從前往后一行一行執(zhí)行。)

methods: {
 async showMessage() {
   // 這里可以添加實(shí)際的查詢邏輯
  let response= await axios.get(`https://webserver.ma.net/emps/list?name=${this.findForm.name}&gender=${this.findForm.gender}&job=${this.findForm.position}`)
  this.users = response.data.data;
},

注意:await關(guān)鍵字只在async函數(shù)內(nèi)有效,await關(guān)鍵字取代then函數(shù),等待獲取到請求成功的結(jié)果值 

二、Vue生命周期

1、它是vue對象從創(chuàng)建銷毀的過程

 2、它的8個(gè)階段:

       每觸發(fā)一個(gè)生命周期事件,會(huì)自動(dòng)執(zhí)行一個(gè)生命周期方法,這些生命周期方法也被稱為鉤子方法。

生命周期階段鉤子函數(shù)觸發(fā)時(shí)機(jī)典型應(yīng)用場景
創(chuàng)建階段beforeCreate實(shí)例初始化后,數(shù)據(jù)觀測/事件配置前插件初始化、非響應(yīng)式變量設(shè)置
created實(shí)例創(chuàng)建完成(數(shù)據(jù)觀測/方法可用,DOM未生成)異步請求數(shù)據(jù)、初始化非DOM相關(guān)操作
掛載階段beforeMount模板編譯完成,虛擬DOM已創(chuàng)建但未渲染最后修改渲染數(shù)據(jù)(不會(huì)觸發(fā)重新渲染)
mounted實(shí)例掛載到真實(shí)DOM后操作真實(shí)DOM、初始化第三方庫(如ECharts)
更新階段beforeUpdate數(shù)據(jù)變化后,虛擬DOM重新渲染前獲取更新前的DOM狀態(tài)(慎改數(shù)據(jù))
updated虛擬DOM重新渲染并應(yīng)用更新后依賴新DOM的操作(如調(diào)整插件尺寸)
銷毀階段beforeDestroy實(shí)例銷毀前(仍完整可用)清除定時(shí)器、解綁事件、銷毀全局監(jiān)聽
destroyed實(shí)例銷毀后(所有綁定和子實(shí)例已移除)釋放非Vue管理的資源(如手動(dòng)創(chuàng)建的DOM事件)

生命周期圖示:

 mounted:掛載完成,Vue初始化成功,HTML頁面渲染成功。

一般用于頁面初始化自動(dòng)的ajax請求后臺(tái)數(shù)據(jù)

如果想在頁面加載完畢,就能列出所有員工數(shù)據(jù),就可以在mounted鉤子函數(shù)中,發(fā)送異步請求查詢員工數(shù)據(jù)了。

     methods: {
               async showMessage() {
                    // 這里可以添加實(shí)際的查詢邏輯
                   let response= await axios.get(`https://webserver.ma.net/emps/list?name=${this.findForm.name}&gender=${this.findForm.gender}&job=${this.findForm.position}`)
                   this.users = response.data.data;
                },
                  // 清空查詢表單
                clearForm() {
                    this.findForm = {
                        name: '',
                        gender: '',
                        position: '',
                    }
                    this.showMessage(); // 清空后重新查詢,獲取所有用戶數(shù)據(jù)
                }
            },
            mounted() {
                this.showMessage(); // 頁面加載完成后,自動(dòng)查詢所有用戶數(shù)據(jù)
            }

運(yùn)行:

到此這篇關(guān)于Vue 使用Ajax異步或同步的文章就介紹到這了,更多相關(guān)Vue Ajax異步或同步內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 從0到1構(gòu)建vueSSR項(xiàng)目之node以及vue-cli3的配置

    從0到1構(gòu)建vueSSR項(xiàng)目之node以及vue-cli3的配置

    這篇文章主要介紹了從0到1構(gòu)建vueSSR項(xiàng)目之node以及vue-cli3的配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • 解決echarts vue數(shù)據(jù)更新,視圖不更新問題(echarts嵌在vue彈框中)

    解決echarts vue數(shù)據(jù)更新,視圖不更新問題(echarts嵌在vue彈框中)

    這篇文章主要介紹了解決echarts vue數(shù)據(jù)更新,視圖不更新問題(echarts嵌在vue彈框中),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue的輪播圖組件實(shí)現(xiàn)方法

    Vue的輪播圖組件實(shí)現(xiàn)方法

    下面小編就為大家分享一篇Vue的輪播圖組件實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Element-Plus表格實(shí)現(xiàn)Table自定義合并行數(shù)據(jù)

    Element-Plus表格實(shí)現(xiàn)Table自定義合并行數(shù)據(jù)

    在開發(fā)項(xiàng)目中,我們時(shí)常會(huì)用到表格,許多需求可能會(huì)要求自定義特定的行或列,下面就跟隨小編一起來學(xué)習(xí)一下在實(shí)際開發(fā)中如何實(shí)現(xiàn)這一要求吧
    2024-12-12
  • Element?Plus修改表格行和單元格樣式詳解

    Element?Plus修改表格行和單元格樣式詳解

    在使用Element Plus中的table組件展示數(shù)據(jù)時(shí),由于需要對表格行內(nèi)數(shù)據(jù)的數(shù)據(jù)進(jìn)行修改,下面這篇文章主要給大家介紹了關(guān)于Element?Plus修改表格行和單元格樣式的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例

    Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Vue技巧Element Table二次封裝實(shí)戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • vue-json-editor json編輯器的使用

    vue-json-editor json編輯器的使用

    本文主要介紹了vue-json-editor json編輯器的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • vue data對象重新賦值無效(未更改)的解決方式

    vue data對象重新賦值無效(未更改)的解決方式

    這篇文章主要介紹了vue data對象重新賦值無效(未更改)的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 淺談vue父子組件怎么傳值

    淺談vue父子組件怎么傳值

    這篇文章主要介紹了淺談vue父子組件怎么傳值,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue+thinkphp5.1+axios實(shí)現(xiàn)文件上傳

    Vue+thinkphp5.1+axios實(shí)現(xiàn)文件上傳

    這篇文章主要為大家詳細(xì)介紹了Vue+thinkphp5.1+axios實(shí)現(xiàn)文件上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論