隨著前端開發的快速發展,Vue框架逐漸成為主流框架之一。對於一些有經驗的開發者來說,可能可以很輕鬆地實現Vue頁面的載入,然後調用相應的函數來處理邏輯,但是對於部分新手或者剛剛接觸Vue框架的開發者,這個問題可能會比較棘手。本文將從多個方面,詳細闡述如何在Vue頁面載入完畢後調用函數。
一、Vue頁面載入完畢如何調用函數
在Vue框架中,當頁面完全載入完成後進行後續處理,可以使用Vue的生命周期函數來實現,其中created、mounted和beforeDestroy是比較常使用的生命周期函數。具體實現方式如下:
export default { data() { return { message: 'Hello World!' } }, mounted() { this.showMessage(); }, methods: { showMessage() { alert(this.message); } } }
在以上代碼中,mounted函數被調用,Vue頁面已經完全渲染完畢。在該函數內調用了showMessage方法,將message路徑的值彈出了一個消息框。
二、Vue頁面載入完成後調用多個函數
在實際開發過程中,我們可能需要調用多個函數來處理邏輯。那麼如何在Vue頁面載入完成後調用多個函數?只需要在mounted生命周期函數中,多次調用即可。具體實現方式如下:
export default { data() { return { message: 'Hello World!' } }, mounted() { this.showMessage(); this.showOtherMessage(); }, methods: { showMessage() { alert(this.message); }, showOtherMessage() { alert('Other message.'); } } }
在以上代碼中,mounted生命周期函數中調用了showMessage和showOtherMessage兩個函數,以供處理邏輯。
三、Vue頁面載入完成後調用非同步函數
非同步函數的場景下,我們需要等介面數據返回後才能夠進行相關處理,而且在非同步數據未返回時直接調用一個函數,是無法處理相關數據的。對於這種情況,我們可以使用async/await關鍵字來實現。具體實現方式如下:
import fetchContent from './api'; export default { data() { return { content: null } }, async mounted() { await this.fetchContent(); this.showMessage(); }, methods: { async fetchContent() { this.content = await fetchContent(); }, showMessage() { alert(this.content); } } }
在以上代碼中,fetchContent是一個非同步函數,此函數在數據返回前是無法處理數據的,而在mounted函數中我們使用await關鍵字非同步等待數據返回後,再調用showMessage函數進行處理。
四、Vue頁面載入完成後調用帶參數的函數
帶參數的函數的實現,需要在調用函數時將參數傳遞給對應的函數。具體實現方式如下:
export default { data() { return { message: 'Hello World!' } }, mounted() { this.showMessage('Hi!'); }, methods: { showMessage(msg) { alert(msg + ' ' + this.message); } } }
在以上代碼中,我們在mounted函數中使用this.showMessage(‘Hi!’)調用了showMessage函數,並將參數’Hi!’傳遞給了showMessage函數,以供實現相關邏輯。
五、Vue頁面非同步請求數據的處理
在Vue開發中,經常會使用axios等非同步數據請求庫。如果需要使用Vue頁面載入完畢來調用非同步請求,就需要使用到Promise來實現。具體實現方式如下:
export default { data() { return { dataList: [] } }, mounted() { this.fetchData(); }, methods: { fetchData() { const that = this; axios.get('/api/data').then(res => { that.dataList = res.data; console.log(that.dataList); that.showMessage(); }).catch(e => { console.log(e); }); }, showMessage() { alert('Data loaded.'); } } }
在以上代碼中,fetchData函數使用axios非同步請求數據,並將獲取到的數據存入dataList數組中,在數據獲取到後再調用showMessage函數處理邏輯。
六、總結
本文對於如何在Vue頁面載入完成後調用函數做了詳細的闡述,介紹了調用一個函數、調用多個函數、調用非同步函數、帶參數函數的實現方式,並在數據請求場景下介紹了Promise的使用。通過學習本文介紹的方法,相信大家已經可以輕鬆實現Vue頁面載入完畢後調用需求了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/183733.html