<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