在 Vue 頁面加載后,我們可以使用生命周期函數對頁面進行一些操作。比較常用的是 created 和 mounted。
created 生命周期函數會在 Vue 實例創建完成后立即被調用,可以進行一些初始化數據和操作。比較常見的場景是使用 created 函數發送網絡請求獲取數據。
created() {
this.$http.get('/api/data').then(res =>{
// 處理數據
})
}
mounted 生命周期函數會在頁面 DOM 元素掛載完成后立即被調用,可以進行一些需要操作 DOM 元素的操作。比較常見的場景是使用 mounted 函數初始化一些第三方組件。
mounted() {
this.$nextTick(() =>{
this.$refs.carousel.init()
})
}
除了這兩個生命周期函數,還有許多其他的生命周期函數可以用來完成各種操作。比如 updated 函數會在組件重新渲染完成后被調用,可以用來進行操作 DOM 元素的更新;destroyed 函數會在組件銷毀前被調用,可以用來釋放一些資源。
updated() {
this.$refs.spinner.stop()
}
destroyed() {
clearTimeout(this.timeoutId)
}
除了生命周期函數,還有一些鉤子函數可以用來完成一些特殊操作。比如 watch 函數可以監聽數據的變化,當數據發生變化時自動調用特定的函數進行處理。
watch: {
data(newValue, oldValue) {
// 處理數據
}
}
除了鉤子函數,還有一些 Vue 提供的函數可以方便我們對頁面進行操作。比如 $emit 函數可以向父組件發送事件, $refs 函數可以獲取組件的 DOM 元素。
this.$emit('my-event', data)
const el = this.$refs.myComponent.$el
除了官方提供的函數之外,還有許多 Vue 插件可以用來幫助我們更方便地操作頁面。比如 Vuex 插件可以方便地管理組件之間共享的數據, Vue Router 插件可以方便地管理頁面路由。
最后,在開發 Vue 頁面時,我們需要注意一些性能優化的問題。比如盡量避免直接操作 DOM 元素,使用 Vue 提供的數據綁定來更新頁面;盡量避免使用深度嵌套的組件結構,因為這樣會導致渲染的性能變差;盡量避免過度使用計算屬性和監聽器,因為這樣會造成無謂的計算和事件監聽。