隨着前端開發的快速發展,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-hant/n/183733.html
微信掃一掃
支付寶掃一掃