# vue/next-tick-style
enforce Promise or callback style in
nextTick
- 🔧 The
--fix
option on the command line (opens new window) can automatically fix some of the problems reported by this rule.
# 📖 Rule Details
This rule enforces whether the callback version or Promise version (which was introduced in Vue v2.1.0) should be used in Vue.nextTick
and this.$nextTick
.
<script>
import { nextTick as nt } from 'vue';
export default {
async mounted() {
/* ✓ GOOD */
nt().then(() => callback());
await nt(); callback();
Vue.nextTick().then(() => callback());
await Vue.nextTick(); callback();
this.$nextTick().then(() => callback());
await this.$nextTick(); callback();
/* ✗ BAD */
nt(() => callback());
nt(callback);
Vue.nextTick(() => callback());
Vue.nextTick(callback);
this.$nextTick(() => callback());
this.$nextTick(callback);
}
}
</script>
# 🔧 Options
Default is set to promise
.
{
"vue/next-tick-style": ["error", "promise" | "callback"]
}
"promise"
(default) ... requires using the promise version."callback"
... requires using the callback version. Use this if you use a Vue version below v2.1.0.
# "callback"
<script>
import { nextTick as nt } from 'vue';
export default {
async mounted() {
/* ✓ GOOD */
nt(() => callback());
nt(callback);
Vue.nextTick(() => callback());
Vue.nextTick(callback);
this.$nextTick(() => callback());
this.$nextTick(callback);
/* ✗ BAD */
nt().then(() => callback());
await nt(); callback();
Vue.nextTick().then(() => callback());
await Vue.nextTick(); callback();
this.$nextTick().then(() => callback());
await this.$nextTick(); callback();
}
}
</script>
# 📚 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