📅  最后修改于: 2023-12-03 15:39:29.042000             🧑  作者: Mango
在Vue中,有时我们需要将一些方法延迟执行,以便让DOM先更新完毕。这时我们可以使用一些方法来实现延迟执行,包括setTimeout
、Vue.nextTick
和$nextTick
等。
使用setTimeout(callback, delay)
函数可以在指定的延迟时间后执行一个回调函数。在Vue中,我们可以在mounted
钩子函数中使用setTimeout
来延迟执行一些需要DOM更新后才能生效的代码。
export default {
mounted() {
setTimeout(() => {
// 在这里执行需要延迟执行的代码
}, 100)
}
}
使用Vue.nextTick([callback])
或this.$nextTick([callback])
函数则可以在DOM更新后执行一个回调函数。
如果在mounted
钩子函数中使用,Vue.nextTick
和this.$nextTick
的效果是一样的。但是在其他生命周期函数中,如created
、updated
等,由于DOM更新还没有完成,这时使用Vue.nextTick
更加可靠。
export default {
mounted() {
Vue.nextTick(() => {
// 在这里执行需要延迟执行的代码
})
}
}
export default {
mounted() {
this.$nextTick(() => {
// 在这里执行需要延迟执行的代码
})
}
}
使用setTimeout
、Vue.nextTick
或$nextTick
等方法都可以实现延迟执行。在选择要使用的方法时,需要根据具体场景和需求来选择。如果需要在DOM更新后执行,建议使用Vue.nextTick
或$nextTick
。如果只是延迟执行一段时间后调用函数,可以使用setTimeout
。