在Vue中,mounted是一個生命周期鉤子函數,Vue實例在掛載完成后會執行這個函數。可以使用mounted函數解決Vue中一些需要在DOM渲染后才能訪問的問題。下面我們將詳細介紹mounted的使用方法。
mounted(){
//代碼塊
}
首先,在Vue的實例中定義mounted函數,可以在這里訪問組件渲染后的DOM節點。例如,我們可以在mounted函數中獲取元素寬度高度,或者獲取元素的位置,然后進行相關的操作。
mounted(){
let myDiv = document.getElementById('myDiv');
console.log(myDiv.clientWidth);
console.log(myDiv.clientHeight);
}
另外,我們也可以在mounted函數中通過調用接口等方式獲取數據。當數據加載完成后,在mounted函數中使用這些數據來更新狀態管理器,以便再次渲染組件。
mounted(){
axios.get('/api/data')
.then(res =>{
this.dataList = res.data;
})
.catch(err =>{
console.log(err);
});
}
mounted函數也適用于在渲染組件之前執行某些操作。例如,我們可以在mounted函數中獲取路由參數,并據此更新組件的狀態。
mounted(){
this.id = this.$route.params.id;
axios.get(`/api/data/${this.id}`)
.then(res =>{
this.data = res.data;
})
.catch(err =>{
console.log(err);
});
}
另外,mounted函數還可以用于DOM操作,如添加事件監聽器或添加特定的類。通過這些操作,我們可以控制組件的CSS并更改其行為。
mounted(){
let myElement = document.getElementById('myElement');
myElement.addEventListener('click', this.clickHandler);
myElement.classList.add('active');
}
最后,mounted函數總是在beforeUpdate鉤子之后執行。如果你需要在渲染組件之前修改數據,那么beforeUpdate鉤子可以讓你在這之前操作。
beforeUpdate(){
this.loading = true;
},
mounted(){
axios.get('/api/data')
.then(res =>{
this.dataList = res.data;
this.loading = false;
})
.catch(err =>{
console.log(err);
});
}
總之,mounted函數是Vue中非常重要的生命周期鉤子函數之一。它可以訪問到DOM,獲取數據,操作CSS以及執行其他在DOM渲染后才能執行的任務。
上一篇c#解析json字符串類
下一篇vue 的循環嵌套