Skip to content
← Back to rules

vue/no-deprecated-data-object-declaration Correctness

An auto-fix is available for this rule.

作用

禁止在 data 中声明对象(在 Vue.js 3.0.0+ 中)。

为什么这不好?

在 Vue 3 中,将 data 声明为对象会导致同一个对象在组件的每个实例之间共享,从而引发跨实例状态污染。data 必须是一个函数,返回每个实例各自的新对象。

示例

下面是此规则的错误代码示例:

vue
<script>
export default {
  data: {
    foo: "bar",
  },
};
</script>

下面是此规则的正确代码示例:

vue
<script>
export default {
  data() {
    return { foo: "bar" };
  },
};
</script>

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "plugins": ["vue"],
  "rules": {
    "vue/no-deprecated-data-object-declaration": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  plugins: ["vue"],
  rules: {
    "vue/no-deprecated-data-object-declaration": "error",
  },
});
bash
oxlint --deny vue/no-deprecated-data-object-declaration --vue-plugin

版本

此规则于 v1.62.0 中添加。

参考资料