Vue.$nextTick 當dom更新后觸發(fā),結(jié)合案例理解:
場景: 頁面種有個按鈕(button),一個隱藏的div,當點擊button時掩完,顯示div并獲取寬度,如果顯示div時就獲取寬度總是為零硼砰,放入Vue.$nextTick中獲取且蓬。
案例
<template>
<div>
<button @click="getDivInfo">點擊獲取div高度,寬度是:{{divInfoW}}</button>
<div v-show="isShow == true" id="divInfo" style="border:1px solid red;">這是一個div</div>
</div>
</template>
<script>
export default {
data(){
return {
isShow: false,
divInfoW: 0
}
},
methods:{
getDivInfo(){
//
this.isShow = !this.isShow
//如果設(shè)置true后立刻獲取div寬度是0,因為dom還未更新完畢
//this.divInfoW = document.getElementById('divInfo').offsetWidth;
//放入nextTick中獲取
this.$nextTick(function(){
this.divInfoW = document.getElementById('divInfo').offsetWidth;
});
}
}
}
</script>