🧱 Суть
Порядок JSX-атрибутов не влияет на работу приложения, но влияет на читаемость.
📦 Проблема
React не требует определённого порядка атрибутов:
<Button className="red" onClick={save} disabled />и
<Button disabled onClick={save} className="red" />работают одинаково.
Но в больших проектах придерживаются единого стиля для читаемости.
💻 Код
Рекомендуемый порядок JSX props
1. key
Всегда первым:
<Item
key={item.id}
/>2. ref
После key:
<Input
ref={inputRef}
/>3. Поведение компонента
События и управление:
<Button
onClick={handleClick}
disabled={loading}
/>Примеры:
onClickonChangedisabledhreftype
4. Внешний вид
После логики:
<Button
onClick={handleClick}
className="button"
/>Примеры:
classNamestyle
5. Варианты отображения
Настройки внешнего вида:
<Button
variant="primary"
size="lg"
/>Примеры:
variantsizecolor
Автоматизация через ESLint
Установить:
npm install eslint-plugin-react --save-devНастройка:
{
"rules": {
"react/jsx-sort-props": [
"warn",
{
"callbacksLast": true,
"shorthandFirst": true,
"reservedFirst": true,
"noSortAlphabetically": true
}
]
}
}🎯 Вывод
Удобный порядок:
- key
- ref
- управление (
onClick,disabled) - внешний вид (
className,style) - варианты (
size,variant)