全部规则
通过此索引查找规则的用途、默认配置及所属分组。分组页面包含说明、配置、完整的错误和正确示例,以及当前支持范围。此页面现有的规则和示例链接仍然可用。
66 个项目条目链接到跨文件规则页面中的完整共享文件以及错误和正确示例。60 个分析器代码保留其实际支持边界:19 个 CLI 代码(18 对已验证的源代码示例,以及一个保留响应式图的说明性项目)、16 个该 CLI 阶段不会单独输出的实验性 Rust 分析器代码,以及 25 个当前没有生成器的契约。配置 ID 不会启用尚不可用的生成器。
公共 CLI 可通过 vize lint --cross-file 执行同一检查。显示的 vize:croquis/cf/* 代码在 vue.linter.rules 中写为 croquis/cf/*(省略 vize:)。信息和提示诊断会转换为 CLI 警告。相关位置说明来源与消费者之间的关系。
全部规则 · 规则选项 · ESLint 迁移对应表 · 项目检查 · 组件间属性传递
a11y/alt-text
要求媒体元素提供替代文本
a11y/anchor-has-content
要求锚点元素具有可访问的内容
a11y/anchor-is-valid
要求锚点元素具有有效的 href
a11y/aria-props
禁止无效的 ARIA 属性
a11y/aria-role
具有 ARIA 角色的元素必须使用有效的非抽象 ARIA 角色
a11y/aria-unsupported-elements
禁止在不支持 ARIA 的元素上使用 ARIA 属性
a11y/click-events-have-key-events
要求点击事件配有键盘事件处理器
a11y/form-control-has-label
要求表单控件具有相关联的标签
a11y/heading-has-content
要求标题元素具有可访问的内容
a11y/heading-levels
禁止跳过标题层级
a11y/iframe-has-title
要求 iframe 元素具有 title 属性
a11y/img-alt
要求图片提供 alt 属性,以支持无障碍访问
a11y/interactive-supports-focus
要求具有交互角色的元素可获得焦点
a11y/label-has-for
要求标签具有相关联的表单控件
a11y/landmark-roles
验证地标角色的位置及唯一性
a11y/media-has-caption
要求媒体元素具有字幕
a11y/mouse-events-have-key-events
要求鼠标事件配有 focus/blur 事件
a11y/no-access-key
禁止使用 accesskey 属性
a11y/no-aria-hidden-on-focusable
禁止在可获得焦点的元素上使用 aria-hidden="true"
a11y/no-autofocus
禁止使用 autofocus 属性
a11y/no-distracting-elements
禁止 <marquee> 和 <blink> 等分散注意力的元素
a11y/no-i-for-icon
禁止使用 <i> 元素表示图标
a11y/no-redundant-roles
禁止多余的 ARIA 角色
a11y/no-refer-to-non-existent-id
禁止引用不存在的 ID
a11y/no-role-presentation-on-focusable
禁止在可获得焦点的元素上使用 role="presentation" 或 role="none"
a11y/no-static-element-interactions
禁止在静态元素上设置事件处理器
a11y/placeholder-label-option
要求 required 的 select 带有占位选项
a11y/role-has-required-aria-props
要求 ARIA 角色具有必需属性
a11y/tabindex-no-positive
禁止正数 tabindex 值
a11y/use-list
建议为类似项目符号的文本使用列表元素
css/no-display-none
建议使用 v-show 代替 display: none
css/no-hardcoded-values
建议使用 CSS 变量代替硬编码值
css/no-id-selectors
不建议在 CSS 中使用 ID 选择器
css/no-important
不建议在 CSS 中使用 !important
css/no-utility-classes
警告在组件样式中实现工具类
css/no-v-bind-performance
警告 CSS v-bind() 的性能开销
css/prefer-logical-properties
建议使用 CSS 逻辑属性,以更好地支持国际化
css/prefer-nested-selectors
建议为后代选择器使用 CSS 嵌套
css/prefer-slotted
建议使用 ::v-slotted() 为插槽内容设置样式
css/require-font-display
要求 @font-face 规则具有 font-display
ecosystem/nuxt-prefer-nuxt-link
应用内部链接优先使用 NuxtLink
ecosystem/pinia-prefer-store-to-refs
解构 Pinia store 时优先使用 storeToRefs()
ecosystem/router-link-require-to
要求 RouterLink 和 NuxtLink 组件具有 to 目标
ecosystem/void-link-require-href
要求 Void Vue Link 组件具有 href
ecosystem/void-link-valid-method
验证 Void Vue Link 的静态 method prop
ecosystem/vue-i18n-no-missing-key
报告本地 SFC 消息中不存在的静态 vue-i18n 键
ecosystem/vue-router-extra-param
路由未声明 tab;Vue Router 会丢弃它。
ecosystem/vue-router-missing-param
缺少必需的 postId;依赖当前路由并不稳健。
ecosystem/vue-router-param-type
postId 不是可重复参数,因此数组无效。
ecosystem/vue-router-prefer-named-link
RouterLink 优先使用具名路由对象,而不是静态路径字符串
ecosystem/vue-router-prefer-named-push
Vue Router 编程式导航优先使用具名路由对象
ecosystem/vue-router-unknown-route
名称不在完整且已安装的路由器中。
ecosystem/vue-test-utils-no-html-snapshot
避免在 Vue Test Utils 测试中对 wrapper.html() 生成快照
html/cross-component-nesting
检查导入组件组合后的实际 HTML 嵌套。
html/deprecated-attr
禁止已弃用的 HTML 属性
html/deprecated-element
禁止已弃用的 HTML 元素
html/id-duplication
禁止重复的元素 ID
html/no-consecutive-br
禁止连续的 <br> 元素
html/no-dupe-style-properties
禁止内联 style 属性中重复的属性声明
html/no-duplicate-class
禁止静态 class 属性中重复的类名
html/no-duplicate-dt
禁止 <dl> 中重复的 <dt> 名称
html/no-empty-palpable-content
禁止预期具有可见内容的空元素
html/require-datetime
要求 <time> 元素具有 datetime 属性
musea/no-empty-variant
禁止空的 <variant> 块
musea/prefer-design-tokens
优先使用设计令牌 CSS 变量,而不是硬编码的原始值
musea/require-component
要求 <art> 块具有 component 属性
musea/require-title
要求 <art> 块具有 title 属性
musea/unique-variant-names
要求 variant 名称唯一
musea/valid-variant
要求 <variant> 块具有 name 属性
nuxt/no-nuxt-config-test-key
禁止在 Nuxt 配置中设置 test 键
nuxt/no-page-meta-runtime-values
禁止在 definePageMeta 的立即求值层使用运行时上下文值;该层在构建时被提取到独立代码块,并在组件 setup 之前运行
nuxt/nuxt-config-keys-order
优先使用推荐的 Nuxt 配置属性顺序
nuxt/prefer-import-meta
优先使用 import.meta.*,而不是 process.*
petite-vue/no-unsupported-directive
禁止 petite-vue 不支持的指令
petite-vue/valid-v-effect
要求 v-effect 具有非空表达式
petite-vue/valid-v-scope
要求 v-scope 绑定对象字面量
script/component-options-name-casing
要求组件 name 选项使用 PascalCase
script/custom-event-name-casing
要求发出的自定义事件名称使用 camelCase
script/define-emits-declaration
要求使用类型形式 defineEmits<{}>(),而不是运行时或数组形式
script/define-macros-order
要求 <script setup> 中的 Vue 编译器宏保持一致的顺序
script/define-props-declaration
要求使用类型形式 defineProps<{ ... }>(),而不是运行时或对象形式
script/define-props-destructuring
要求 <script setup> 中的 defineProps 解构风格保持一致
script/no-arrow-functions-in-watch
禁止将箭头函数用作 Options API watch 处理器
script/no-async-in-computed
禁止计算属性中的异步函数
script/no-boolean-default
禁止为 Boolean prop 设置默认值
script/no-deep-destructure-in-props
禁止在 defineProps 中进行深层嵌套解构
script/no-deprecated-data-object-declaration
禁止将对象字面量作为组件 data 选项(Vue 3 要求函数)
script/no-deprecated-destroyed-lifecycle
禁止已弃用的 destroyed 和 beforeDestroy 生命周期钩子
script/no-deprecated-dollar-listeners-api
禁止 Vue 3 已移除的 $listeners 实例属性(已合并到 $attrs)
script/no-deprecated-dollar-scopedslots-api
禁止 Vue 3 已移除的 $scopedSlots 实例属性(使用 $slots)
script/no-deprecated-events-api
禁止已移除的 Vue 2 事件 API($on / $off / $once)
script/no-deprecated-props-default-this
禁止在 prop 默认值或校验函数中使用 this(Vue 3 已移除)
script/no-dupe-keys
禁止 Options API 的 props/data/computed/methods/setup/inject 之间重复的键
script/no-duplicate-attr-inheritance
标记重复应用透传属性的组件
script/no-export-in-script-setup
禁止 <script setup> 内的 export 语句
script/no-expose-after-await
禁止在 await 之后调用 expose() 和 defineExpose()
script/no-get-current-instance
禁止在 Vapor 模式使用 getCurrentInstance()(返回 null)
script/no-import-compiler-macros
禁止导入自动可用的 Vue 编译器宏
script/no-internal-imports
禁止从 Vue 内部模块导入
script/no-lifecycle-after-await
禁止在 setup() 中 await 之后注册生命周期钩子
script/no-multiple-slot-args
禁止向作用域插槽函数调用传入多个参数
script/no-next-tick
禁止面向 Vapor 的组件使用 nextTick()
script/no-options-api
禁止 Vapor 模式中的 Options API 模式
script/no-potential-component-option-typo
标记 Options API 组件选项名称中的疑似拼写错误
script/no-reactive-destructure
禁止导致响应性丢失的响应式对象解构
script/no-ref-as-operand
要求将 ref 绑定变量用作操作数时通过 .value 访问
script/no-required-prop-with-default
禁止 prop 同时具有 required: true 和默认值
script/no-reserved-identifiers
禁止使用 Vue 编译器保留标识符
script/no-reserved-keys
禁止将 Vue 保留名称用作 Options API props/data/computed/methods/setup/inject 键
script/no-reserved-props
禁止在组件 props 声明中使用保留名称
script/no-restricted-globals
禁止直接引用必须通过类型化包装器访问的运行时环境全局变量
script/no-restricted-members
禁止项目配置的 object.property 成员访问
script/no-side-effects-in-computed-properties
禁止 Options API 计算 getter 中的副作用
script/no-top-level-ref-in-script
禁止顶层 ref/reactive,以防止跨请求状态污染
script/no-unstable-nested-components
禁止在 setup 或 render 函数内定义组件
script/no-unused-emit-declarations
标记已声明却从未发出的事件
script/no-use-computed-property-like-method
禁止像方法一样调用 Options API 计算属性
script/no-watch-after-await
禁止在 setup() 中 await 之后注册未保留停止句柄的侦听器
script/no-with-defaults
不建议使用 withDefaults,优先使用解构默认值(Vue 3.5+)
script/prefer-computed
响应式派生状态优先使用 computed()
script/prefer-define-options
优先使用 defineOptions(),而不是仅设置 name/inheritAttrs 的普通 <script>
script/prefer-import-from-vue
优先从 'vue' 导入,而不是内部包
script/prefer-ref-over-reactive
建议使用 ref() 而不是 reactive() 管理状态
script/prefer-use-attrs
建议使用 useAttrs() 而不是 context.attrs
script/prefer-use-id
建议使用 useId() 生成唯一 ID(Vue 3.5+)
script/prefer-use-slots
建议使用 useSlots() 而不是 context.slots
script/prefer-use-template-ref
模板引用建议使用 useTemplateRef 而不是 ref(Vue 3.5+)
script/require-default-prop
要求每个可选的非 Boolean prop 具有默认值
script/require-explicit-emits
要求发出的事件在 defineEmits 或 emits 选项中声明
script/require-explicit-slots
要求通过 useSlots() 使用的插槽由 defineSlots<...>() 显式定义类型
script/require-function-return-type
要求函数具有返回类型注解
script/require-prop-type-constructor
要求 prop 的 type 值是构造器,而不是字符串字面量
script/require-prop-types
要求每个 prop 声明类型
script/require-symbol-provide
建议使用 Symbol 作为 provide/inject 的注入键
script/require-typed-object-prop
要求运行时类型为 Object 或 Array 的 prop 具有显式类型
script/require-typed-ref
要求无初始值、null 或 undefined 初始化的 ref() 具有显式类型参数
script/require-valid-default-prop
要求 prop 默认值符合声明类型
script/return-in-computed-property
要求每个计算 getter 返回值
script/return-in-emits-validator
要求每个 Options API emits 校验函数返回值
script/valid-define-emits
要求 defineEmits() 用法有效(不同时提供类型和运行时参数、不引用局部变量、只调用一次)
script/valid-define-options
要求 defineOptions() 用法有效(单个对象参数、不包含 props/emits/expose/slots)
script/valid-define-props
要求 defineProps() 用法有效(只调用一次、不同时提供类型和运行时参数、不引用局部变量)
script/valid-next-tick
要求 nextTick() 调用结果被等待、链式处理,或提供回调
ssr/no-browser-globals-in-ssr
禁止 SSR 上下文中的浏览器专用全局变量
ssr/no-hydration-mismatch
禁止导致水合不匹配的不确定值
type/no-floating-promises
禁止悬空(未处理)的 Promise
type/no-reactivity-loss
禁止赋值和调用中对响应式值取普通快照
type/no-unsafe-template-binding
禁止解析为不安全类型的模板绑定
type/require-typed-emits
要求 defineEmits 具有类型定义
type/require-typed-props
要求 defineProps 具有类型定义
type/strict-boolean-expressions
要求脚本和模板条件使用安全的布尔表达式
vapor/no-inline-template
禁止已弃用的 inline-template 属性
vapor/no-vue-lifecycle-events
禁止 @vue:xxx 元素生命周期事件(Vapor 不支持)
vapor/prefer-static-class
字符串字面量优先使用静态 class,而不是动态 class 绑定
vapor/require-vapor-attribute
建议为 script setup 添加 vapor 属性
vize:croquis/cf/array-mutation
通过索引修改数组,无法被该响应式数组跟踪。
vize:croquis/cf/async-boundary
响应式状态跨越异步边界,可能被观察为过期值。
vize:croquis/cf/async-no-suspense
异步组件在没有 Suspense 边界的情况下渲染。
vize:croquis/cf/browser-api-ssr
在组件可能于服务端渲染的位置使用了浏览器专用 API。
vize:croquis/cf/circular-dep
组件相互导入,形成循环。
vize:croquis/cf/circular-reactive-dependency
响应式计算相互依赖,形成循环。
vize:croquis/cf/closure-captures-reactive
闭包捕获了响应式值,无法看到后续更新。
vize:croquis/cf/composable-outside-setup
组合式函数在 setup 外被调用。
vize:croquis/cf/computed-side-effects
计算 getter 写入状态或执行其他副作用。
vize:croquis/cf/deep-import
导入链超过项目允许的深度。
vize:croquis/cf/destructuring-breaks-reactivity
解构响应式对象会复制字段并丢失跟踪。
vize:croquis/cf/di-outside-setup
provide 或 inject 在 setup 外被调用。
vize:croquis/cf/dom-access-without-next-tick
在 Vue 完成更新刷新之前读取 DOM。
vize:croquis/cf/duplicate-id
多个组件使用同一个元素 id。
vize:croquis/cf/event-listener-leak
注册了事件监听器,却从未移除。
vize:croquis/cf/event-modifier
事件监听器使用了发出事件不支持的修饰符。
vize:croquis/cf/hydration-risk
此诊断代码归类多种响应性问题,包括将 prop 复制到 ref。它并不表示跨文件分析遍会检测所有 Date.now() 表达式。
vize:croquis/cf/inherit-attrs-unused
设置了 inheritAttrs: false,但组件从不读取属性。
vize:croquis/cf/inject-without-symbol
inject 使用普通键,而不是 InjectionKey symbol。
vize:croquis/cf/injected-async-mutation-race
注入值被可能发生竞态的异步任务修改。
vize:croquis/cf/lifecycle-outside-setup
生命周期钩子在 setup 外注册。
vize:croquis/cf/lifecycle-without-cleanup
生命周期钩子启动任务,却从不清理。
vize:croquis/cf/missing-required-prop
未传入必需的 prop。
vize:croquis/cf/missing-suspense
异步依赖在 Suspense 边界之外使用。
vize:croquis/cf/module-scope-reactive
响应式状态在模块作用域创建,被所有调用者共享。
vize:croquis/cf/multi-root-attrs
多根节点组件接收了属性,却没有放置目标。
vize:croquis/cf/mutated-after-escape
响应式对象逸出其所有者后被修改。
vize:croquis/cf/non-reactive-provide
提供的值不具响应性,后代无法看到更新。
vize:croquis/cf/non-unique-id
循环内的元素 id 对每个列表项并不唯一。
vize:croquis/cf/object-identity-comparison
响应式对象按身份比较,解包后身份会改变。
vize:croquis/cf/pinia-getter
Pinia getter 未通过 storeToRefs 读取,无法保持响应性。
vize:croquis/cf/prop-type-mismatch
传入的 prop 值与声明类型不匹配。
vize:croquis/cf/provide-inject-type
提供值与其 inject 类型不一致。
vize:croquis/cf/provide-without-symbol
provide 使用普通键,而不是 InjectionKey symbol。
vize:croquis/cf/reactive-export
响应式状态从模块导出。
vize:croquis/cf/reactivity-outside-setup
响应式 API 在 setup 外被调用。
vize:croquis/cf/reassignment-breaks-reactivity
重新赋值响应式绑定,将其替换为普通值。
vize:croquis/cf/reference-escapes-scope
响应式引用逸出拥有其生命周期的作用域。
vize:croquis/cf/setup-context-violation
setup 上下文被以 Vue 不允许的方式使用。
vize:croquis/cf/shallow-deep-access
读取 shallowReactive 或 shallowRef 的深层属性,却假定它受到跟踪。
vize:croquis/cf/spread-breaks-reactivity
展开响应式对象会复制值并丢失跟踪。
vize:croquis/cf/suspense-no-fallback
<Suspense> 没有后备内容。
vize:croquis/cf/template-ref-timing
模板 ref 在组件挂载之前被读取。
vize:croquis/cf/toraw-mutation
使用 toRaw 后修改了原始对象。
vize:croquis/cf/uncaught-error
组件可能抛错,却没有错误边界捕获。
vize:croquis/cf/undeclared-emit
组件发出了未声明的事件。
vize:croquis/cf/undeclared-prop
父组件传入了子组件未声明的 prop。
vize:croquis/cf/undefined-slot
父组件填充了子组件未暴露的插槽。
vize:croquis/cf/unhandled-event
子组件发出的事件没有父组件处理。
vize:croquis/cf/unmatched-inject
inject 指定的键没有任何祖先提供。
vize:croquis/cf/unmatched-listener
父组件监听了子组件不发出的事件。
vize:croquis/cf/unregistered-component
模板使用了未注册或导入的组件。
vize:croquis/cf/unresolved-import
导入无法解析为模块。
vize:croquis/cf/unused-attrs
透传属性传给了未使用它们的多根节点组件。
vize:croquis/cf/unused-emit
已声明的 emit 从未使用。
vize:croquis/cf/unused-provide
提供的键从未被注入。
vize:croquis/cf/value-extraction-breaks-reactivity
将响应式值读取到局部变量后丢失后续更新。
vize:croquis/cf/watch-can-be-computed
侦听器只将值复制到状态,可以改为计算属性。
vize:croquis/cf/watcheffect-async
watchEffect 启动异步任务,却无法清理上一轮执行。
vize:croquis/cf/watcher-outside-setup
watch 或 watchEffect 在 setup 外被调用。
vue/a11y-img-alt
要求图片提供 alt 属性,以支持无障碍访问
vue/attribute-hyphenation
规范自定义组件的属性命名风格
vue/attribute-order
要求属性保持一致的排列顺序
vue/component-definition-name-casing
要求组件定义名称使用 PascalCase 或 kebab-case
vue/component-name-in-template-casing
要求模板中的组件名称使用指定的大小写风格
vue/cross-file-attrs-fallthrough
父组件传入属性,但已解析子组件的根无法继承它们,也没有显式使用 $attrs。
vue/html-button-has-type
要求 button 元素显式指定有效的 type
vue/html-quotes
规范 HTML 属性的引号风格
vue/html-self-closing
规范自闭合标签风格
vue/max-template-complexity
限制组件自身模板的复杂度(圈复杂度和认知复杂度)
vue/multi-word-component-names
要求组件名称由多个单词组成
vue/mustache-interpolation-spacing
要求双花括号插值内部的空格保持一致
vue/no-array-index-key
禁止直接将 v-for 的索引变量用作 :key
vue/no-bare-strings-in-template
禁止在模板中直接写入应当国际化的用户可读文本
vue/no-boolean-attr-value
禁止为 HTML 布尔属性显式指定值
vue/no-child-content
禁止在使用 v-html 或 v-text 时提供子内容
vue/no-deprecated-filter
禁止使用已弃用的 Vue 2 管道运算符过滤器语法
vue/no-deprecated-functional-template
禁止在 SFC 的 <template> 上使用 functional 属性
vue/no-deprecated-html-element-is
禁止在原生 HTML 元素上使用已弃用的 is 属性
vue/no-deprecated-inline-template
禁止使用已弃用的 inline-template 属性
vue/no-deprecated-router-link-tag-prop
禁止在 <router-link> 上使用 tag prop
vue/no-deprecated-scope-attribute
禁止在 <template> 上使用已弃用的 scope 属性
vue/no-deprecated-slot-attribute
禁止使用已弃用的 slot 属性
vue/no-deprecated-slot-scope-attribute
禁止使用已弃用的 slot-scope 属性
vue/no-deprecated-v-bind-sync
禁止在 v-bind 上使用已弃用的 .sync 修饰符
vue/no-deprecated-v-is
禁止使用已废弃的 v-is 指令
vue/no-deprecated-v-on-native-modifier
禁止在 v-on 上使用已弃用的 .native 修饰符
vue/no-deprecated-v-on-number-modifiers
禁止在 v-on 上使用已弃用的数字 keyCode 修饰符
vue/no-dupe-v-else-if
禁止在 v-if / v-else-if 链中使用重复条件
vue/no-duplicate-attributes
禁止在同一元素上重复声明属性
vue/no-empty-component-block
禁止空的 SFC 块
vue/no-inline-style
不建议使用内联 style 属性
vue/no-invalid-html-attribute
禁止 HTML 属性使用无效的静态值
vue/no-lone-template
禁止不必要的 <template> 元素
vue/no-multi-spaces
禁止连续多个空格
vue/no-multiple-objects-in-class
禁止在 :class 数组绑定中使用多个对象字面量
vue/no-multiple-template-root
禁止模板包含多个根节点
vue/no-mutating-props
禁止修改组件 props
vue/no-negated-v-if-condition
禁止在含有 v-else 的条件链中使用否定的 v-if 条件
vue/no-non-component-keep-alive-child
禁止在 <KeepAlive> 的直属子层使用普通元素包装
vue/no-preprocessor-lang
不建议使用 CSS 预处理器,优先使用现代 CSS
vue/no-reserved-component-names
禁止使用保留名称作为组件名称
vue/no-root-v-if
禁止在模板的唯一根元素上使用 v-if
vue/no-script-non-standard-lang
不建议使用非标准的 script lang 值
vue/no-src-attribute
不建议在 SFC 块上使用 src 属性
vue/no-static-inline-styles
禁止静态内联 style 属性
vue/no-template-key
禁止在 <template> 上使用 key 属性
vue/no-template-lang
不建议在 template 块上使用 lang 属性
vue/no-template-shadow
禁止使用遮蔽外层作用域变量的变量名称
vue/no-template-target-blank
禁止使用 target="_blank" 而不设置 rel="noopener noreferrer"
vue/no-textarea-mustache
禁止在 <textarea> 内使用双花括号插值
vue/no-undefined-refs
禁止在模板中引用未定义的变量
vue/no-unsafe-url
警告可能不安全的 URL 绑定
vue/no-unsandboxed-iframe
要求 iframe 元素具有 sandbox 属性
vue/no-unused-components
禁止注册未在模板中使用的组件
vue/no-unused-properties
禁止 defineProps 中定义的未使用属性
vue/no-unused-refs
报告从未在 <script> 中引用的模板 ref(ref="x")
vue/no-unused-setup-bindings
禁止从未读取的 script setup 绑定
vue/no-unused-vars
禁止 v-for 和 v-slot 指令中未使用的变量定义
vue/no-use-v-else-with-v-for
禁止在同一元素上使用 v-else-if 或 v-else 与 v-for
vue/no-use-v-if-with-v-for
禁止在同一元素上使用 v-if 与 v-for
vue/no-useless-mustaches
禁止表达式为常量字符串字面量的双花括号插值
vue/no-useless-template-attributes
禁止在 <template> 元素上使用不起作用的属性
vue/no-useless-v-bind
禁止值为普通字符串字面量的 v-bind
vue/no-v-for-template-key-on-child
禁止在 <template v-for> 的子节点上使用 key
vue/no-v-html
警告使用 v-html,以避免 XSS 漏洞
vue/no-v-text
禁止 v-text 指令,优先使用双花括号插值
vue/no-v-text-v-html-on-component
禁止在组件元素上使用 v-text / v-html
vue/permitted-contents
要求符合 HTML 内容模型规则
vue/prefer-props-shorthand
建议使用 props 简写语法(Vue 3.4+)
vue/prefer-true-attribute-shorthand
优先使用绑定到 true 的布尔属性简写
vue/prop-name-casing
规范所声明 prop 名称的大小写风格
vue/require-component-is
要求 <component> 元素具有 v-bind:is
vue/require-component-registration
要求显式导入或注册组件
vue/require-scoped-style
要求 style 标签具有 scoped 属性
vue/require-toggle-inside-transition
要求 <transition> 包裹的元素具有切换条件
vue/require-v-for-key
要求 v-for 指令搭配 v-bind:key
vue/scoped-event-names
建议使用 context:event 格式的作用域事件名称
vue/sfc-element-order
要求 SFC 顶层元素保持一致的顺序
vue/single-style-block
建议只使用一个 style 块
vue/slot-name-casing
要求通过 v-slot 使用的具名插槽采用 kebab-case
vue/this-in-template
禁止在模板表达式中使用 this.
vue/use-unique-element-ids
要求使用 useId() 生成唯一元素 ID,而不是静态字面量
vue/use-v-on-exact
存在带按键修饰符的处理器时,要求在 v-on 上使用 .exact
vue/v-bind-style
规范 v-bind 指令风格
vue/v-on-event-hyphenation
要求组件上 v-on 中的自定义事件名称使用连字符
vue/v-on-handler-style
要求 v-on 处理器写为方法引用或内联函数
vue/v-on-style
规范 v-on 指令风格
vue/v-slot-style
规范 v-slot 指令风格
vue/valid-attribute-name
要求属性名称有效
vue/valid-template-root
要求 <template> 根节点符合 Vue 3 片段语义
vue/valid-v-bind
要求 v-bind 指令有效
vue/valid-v-cloak
要求 v-cloak 指令有效
vue/valid-v-else
要求 v-else 指令有效
vue/valid-v-else-if
要求 v-else-if 指令有效
vue/valid-v-for
要求 v-for 指令有效
vue/valid-v-html
要求 v-html 指令有效
vue/valid-v-if
要求 v-if 指令有效
vue/valid-v-is
要求 v-is 指令有效
vue/valid-v-memo
要求 v-memo 指令有效
vue/valid-v-model
要求 v-model 指令有效
vue/valid-v-on
要求 v-on 指令有效
vue/valid-v-once
要求 v-once 指令有效
vue/valid-v-pre
要求 v-pre 指令有效
vue/valid-v-show
要求 v-show 指令有效
vue/valid-v-slot
要求 v-slot 指令有效
vue/valid-v-text
要求 v-text 指令有效
vue/warn-custom-block
警告 SFC 文件中的自定义块
vue/warn-custom-directive
警告需要注册的自定义指令