Skip to content
← Back to rules

vue/no-lifecycle-after-await 正确性

它做了什么

禁止异步注册生命周期钩子。

为什么这是个问题?

生命周期钩子必须在 setup() 执行期间同步注册。 如果在 await 语句之后调用生命周期钩子,可能会注册得太晚,导致其无法按预期工作。

示例

此规则的 错误 代码示例:

vue
<script>
import { onMounted } from "vue";
export default {
  async setup() {
    await doSomething();
    onMounted(() => {
      /* ... */
    }); // 错误
  },
};
</script>

此规则的 正确 代码示例:

vue
<script>
import { onMounted } from "vue";
export default {
  async setup() {
    onMounted(() => {
      /* ... */
    }); // 正确
    await doSomething();
  },
};
</script>

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "plugins": ["vue"],
  "rules": {
    "vue/no-lifecycle-after-await": "error"
  }
}
bash
oxlint --deny vue/no-lifecycle-after-await --vue-plugin

参考资料