Skip to content
← Back to rules

vue/no-reserved-component-names 正确性

它的作用

禁止使用与 HTML / SVG 元素名称冲突的 Vue 组件名称 (以及可选的 Vue 内置组件名称)。

为什么这不好?

使用保留名称会悄悄遮蔽标准元素 / 内置组件, 从而在运行时产生令人困惑的行为。

示例

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

vue
<script>
export default {
  name: "div",
};
</script>

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

vue
<script>
export default {
  name: "MyComponent",
};
</script>

配置

此规则接受一个包含以下属性的配置对象:

disallowVue3BuiltInComponents

type: boolean

default: false

禁止 Vue 3 内置组件名称(例如 TeleportSuspense)。 注意:这也会捕获 Vue 2 的内置组件,因为 Vue 3 的集合包含它们。

disallowVueBuiltInComponents

type: boolean

default: false

禁止 Vue 2 内置组件名称(例如 TransitionKeepAlive)。

htmlElementCaseSensitive

type: boolean

default: false

以区分大小写的方式匹配 HTML / SVG 元素名称。当为 false(默认值)时, HTML 元素的首字母大写形式(例如 Div)也会被报告。

如何使用

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

json
{
  "plugins": ["vue"],
  "rules": {
    "vue/no-reserved-component-names": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  plugins: ["vue"],
  rules: {
    "vue/no-reserved-component-names": "error",
  },
});
bash
oxlint --deny vue/no-reserved-component-names --vue-plugin

版本

此规则添加于 v1.68.0。

参考资料