JS.VUE.VALID.NEXT.TICK

Enforce valid 'nextTick' function calls

  • Some problems reported by this rule are manually fixable by editor suggestions (https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

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).

{'vue/valid-next-tick': ['error']}

Copy
<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 (https://v2.vuejs.org/v2/api/#Vue-nextTick)
  • vm.$nextTick API in Vue 2 (https://v2.vuejs.org/v2/api/#vm-nextTick)
  • Global API Treeshaking (https://v3-migration.vuejs.org/breaking-changes/global-api-treeshaking.html)
  • Global nextTick API in Vue 3 (https://v3.vuejs.org/api/global-api.html#nexttick)
  • Instance $nextTick API in Vue 3 (https://v3.vuejs.org/api/instance-methods.html#nexttick)

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/