跳至内容

@stylistic/

jsx-first-prop-new-line

强制 JSX 中第一个属性的正确位置。

规则详情

此规则检查所有 JSX 元素的第一个属性是否放置正确。有以下配置选项:

  • always: 第一个属性应始终放在新行。
  • never : 第一个属性永远不要放在新行,例如,应始终与组件的开始标签在同一行。
  • multiline: 当 JSX 标签占用多行时,第一个属性应始终放在新行。
  • multiprop: 除非有多个属性,否则第一个属性永远不要放在新行。
  • multiline-multiprop: 当 JSX 标签占用多行且有多个属性时,第一个属性应始终放在新行。这是默认值。

当配置为 "always" 时,此规则的错误代码示例:

jsx
<Hello personal={true} />

<Hello personal={true}
    foo="bar"
/>

当配置为 "always" 时,此规则的正确代码示例:

jsx
<Hello
    personal />

<Hello
    personal
/>

当配置为 "never" 时,此规则的错误代码示例:

jsx
<Hello
    personal />

<Hello
    personal
/>

当配置为 "never" 时,此规则的正确代码示例:

jsx
<Hello personal={true} />

<Hello personal={true}
    foo="bar"
/>

当配置为 "multiline" 时,此规则的错误代码示例:

jsx
<Hello personal
    prop />
jsx
<Hello foo={{
}} />

当配置为 "multiline" 时,此规则的正确代码示例:

jsx
<Hello personal={true} />

<Hello
    personal={true}
    foo="bar"
/>

当配置为 "multiline-multiprop" 时,此规则的错误代码示例:

jsx
<Hello foo={{
    }}
    bar />

当配置为 "multiline-multiprop" 时,此规则的正确代码示例:

jsx
<Hello foo={{
}} />

<Hello
    foo={{
    }}
    bar
/>

规则选项

jsx
"@stylistic/jsx/jsx-first-prop-new-line": `"always" | "never" | "multiline" | "multiprop" | "multiline-multiprop"`

何时不使用它

如果您没有使用 JSX,则可以禁用此规则。