Более чистое решение для условных выражений и циклов в JSX с использованием Babel 6

JSX быстро становится немного беспорядочным при вложении условных выражений или выполнении циклов. Одно из решений - разбить его на несколько функций или компонентов, но иногда это просто усложняет отслеживание;

<div>
  {condition1 ?
    [
      (condition2 ?
        [
          <span></span>,
          'My name is ' + name + '!',
          <span></span>
        ]
      : null),
      'Hello ' + name + '!'
    ]
  : <span>Something else</span>}
  {myArray.map((item) => (
    <div>
      {item.awd}
    </div>
  )}
</div>

Возможно, вы захотите проверить небольшой проект под названием jsx-control-statement. Это плагин Babel, который представляет несколько виртуальных компонентов, которые вы можете использовать в своем JSX.

<div>
  <Choose>
    <When condition={condition1}>
      <If condition={condition2}>
        My name is {name}!
      </If>
      Hello {name}!
    </When>
    <Otherwise>
      <span>Something else</span>
    </Otherwise>
  </Choose>
  <For each="item" of={myArray} index="i">
    <div key={i}>
      {item.awd}
    </div>
  </For>
</div>

Вам не нужно импортировать какие-либо компоненты, они анализируются плагином Babel и заменяются настоящими условными операторами и циклами за кулисами.

Есть даже плагин eslint, который гарантирует, что вы не получите предупреждений об отсутствии импорта, отключенных переменных и тому подобном.

Перейдите по ссылке ниже, чтобы получить инструкции по установке и дополнительную информацию.