# vue/valid-next-tick
enforce valid
nextTick
function calls
- 🔧 The
--fix
option on the command line (opens new window) can automatically fix some of the problems reported by this rule.
# 📖 Rule Details
Calling Vue.nextTick
or vm.$nextTick
without passing a callback and without awaiting the returned Promise is likely a mistake (probably a missing await
).
<script>
import { nextTick as nt } from 'vue';
export default {
async mounted() {
/* ✗ BAD: no callback function or awaited Promise */
nt();
Vue.nextTick();
this.$nextTick();
/* ✗ BAD: too many parameters */
nt(callback, anotherCallback);
Vue.nextTick(callback, anotherCallback);
this.$nextTick(callback, anotherCallback);
/* ✗ BAD: no function call */
nt.then(callback);
Vue.nextTick.then(callback);
this.$nextTick.then(callback);
await nt;
await Vue.nextTick;
await this.$nextTick;
/* ✗ BAD: both callback function and awaited Promise */
nt(callback).then(anotherCallback);
Vue.nextTick(callback).then(anotherCallback);
this.$nextTick(callback).then(anotherCallback);
await nt(callback);
await Vue.nextTick(callback);
await this.$nextTick(callback);
/* ✓ GOOD */
await nt();
await Vue.nextTick();
await this.$nextTick();
/* ✓ GOOD */
nt().then(callback);
Vue.nextTick().then(callback);
this.$nextTick().then(callback);
/* ✓ GOOD */
nt(callback);
Vue.nextTick(callback);
this.$nextTick(callback);
}
}
</script>
# 🔧 Options
Nothing.
# 📚 Further Reading
Vue.nextTick
API in Vue 2 (opens new window)vm.$nextTick
API in Vue 2 (opens new window)- Global API Treeshaking (opens new window)
- Global
nextTick
API in Vue 3 (opens new window) - Instance
$nextTick
API in Vue 3 (opens new window)
# 🚀 Version
This rule was introduced in eslint-plugin-vue v7.5.0