Skip to content

vue/define-macros-order

强制编译器宏的顺序(definePropsdefineEmits 等)

  • 🔧 command line 上的 --fix 选项可以自动修复此规则报告的一些问题。
  • 💡此规则报告的某些问题可以通过编辑器 suggestions 手动修复。

    ¥💡 Some problems reported by this rule are manually fixable by editor suggestions.

📖 规则详情

当编译器宏(如 definePropsdefineEmits,但也包括自定义宏)不是 <script setup> 中的第一个语句(在任何潜在的导入语句或类型定义之后)或顺序不正确时,此规则会报告它们。

¥This rule reports compiler macros (like defineProps or defineEmits but also custom ones) when they are not the first statements in <script setup> (after any potential import statements or type definitions) or when they are not in the correct order.

🔧选项

¥🔧 Options

json
{
  "vue/define-macros-order": ["error", {
    "order": ["defineProps", "defineEmits"],
    "defineExposeLast": false
  }]
}
  • order (string[]) ...宏应出现的顺序。默认为 ["defineProps", "defineEmits"]

    ¥order (string[]) ... The order in which the macros should appear. The default is ["defineProps", "defineEmits"].

  • defineExposeLast (boolean) ...在末尾强制使用 defineExpose

    ¥defineExposeLast (boolean) ... Force defineExpose at the end.

{ "order": ["defineProps", "defineEmits"] }(默认)

¥{ "order": ["defineProps", "defineEmits"] } (default)

Now loading...
Now loading...
Now loading...

{ "order": ["defineOptions", "defineModel", "defineProps", "defineEmits", "defineSlots"] }

Now loading...
Now loading...
Now loading...

{ "order": ["definePage", "defineModel", "defineCustom", "defineEmits", "defineSlots"] }

Now loading...
Now loading...

{ "defineExposeLast": true }

Now loading...
Now loading...

🚀版本

¥🚀 Version

此规则在 eslint-plugin-vue v8.7.0 中引入

¥This rule was introduced in eslint-plugin-vue v8.7.0

🔍代码实现

¥🔍 Implementation

eslint-plugin-vue v10.0 中文网 - 粤ICP备13048890号