# vue/no-watch-after-await

disallow asynchronously registered watch

  • ⚙️ This rule is included in all of "plugin:vue/vue3-essential", "plugin:vue/vue3-strongly-recommended" and "plugin:vue/vue3-recommended".

# 📖 Rule Details

This rule reports the watch() after await expression.
In setup() function, watch() should be registered synchronously.

<script> import { watch } from 'vue' export default { async setup() { /* ✓ GOOD */ watch(watchSource, () => { /* ... */ }) await doSomething() /* ✗ BAD */ watch(watchSource, () => { /* ... */ }) } } </script>
Now loading...

This rule is not reported when using the stop handle.

<script> import { watch } from 'vue' export default { async setup() { await doSomething() /* ✓ GOOD */ const stopHandle = watch(watchSource, () => { /* ... */ }) // later stopHandle() } } </script>
Now loading...

# 🔧 Options

Nothing.

# 📚 Further Reading

# 🔍 Implementation