<div v-for="(item, i) in formList" :key="i"> <div @click="viewMyForm(item)"> <i :class="$style.formIcon"></i> <div :class="$style.title"> <span :title="titles[i]" :id="`nameLabel${item.formId}`">{{ item.formName }}</span> </div> </div></div>
this.$nextTick(() => { this.formList.forEach((f, i) => { const item = document.querySelector<HTMLDivElement>(`#nameLabel${f.formId}`); if (item) { const width = item.offsetWidth; this.titles.push(width > 200 ? f.formName : ""); } });});
Vue.nextTick() 定義,在下次 DOM 更新循環結束以後執行延遲迴調。在修改數據以後當即使用這個方法,獲取更新後的 DOM。javascript
其實能夠這樣理解,是將回調函數延遲在下一次dom更新數據後調用,通俗點就是:當數據更新了,在dom中渲染後,自動執行該函數。前端
本文分享自微信公衆號 - 前端一塊兒學(gh_3ba18d51f982)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。java