Post #452
3.35K
Предпочитайте несколько композиций
В своем блоге Кайл Шевлин предложил, что, если компонент имеет ограниченный набор вариантов обработки, то будет удобнее иметь четкие отдельные ветки if/else для каждого случая, а не распространять условные выражения повсюду в JSX. Сравните два примера:
Хоть и во втором примере больше кода, он более читабельный. По мере усложнения проекта уменьшается скорость чтения кода, наличие условных операторов особенно усложняет понимание кода. Во втором примере вместо трех условных операторов используется только один условный оператор. Код стал понятнее и менее подвержен багам.
https://kyleshevlin.com/prefer-multiple-compositions/
Kyle Shevlin's Blog Prefer Multiple Compositions | Kyle Shevlin The flexibility of JavaScript and React means there are lots of ways to achieve the same result. Let's consider why we might choose one way over another when it comes to React. Specifically, when to choose a more verbose solution with composition over the… В своем блоге Кайл Шевлин предложил, что, если компонент имеет ограниченный набор вариантов обработки, то будет удобнее иметь четкие отдельные ветки if/else для каждого случая, а не распространять условные выражения повсюду в JSX. Сравните два примера:
function VideoControls() {
const { isPlaying, play, pause } = useVideoControls()
return (
<Button onPress={isPlaying ? pause : play}>
<Icon name={isPlaying ? 'pause' : 'play'} />
<Button.Text>{isPlaying ? 'Pause' : 'Play'}</Button.Text>
</Button>
)
}
function VideoControls() {
const { isPlaying, play, pause } = useVideoControls()
if (isPlaying) {
return (
<Button onPress={pause}>
<Icon name="pause" />
<Button.Text>Pause</Button.Text>
</Button>
)
}
return (
<Button onPress={play}>
<Icon name="play" />
<Button.Text>Play</Button.Text>
</Button>
)
}
Хоть и во втором примере больше кода, он более читабельный. По мере усложнения проекта уменьшается скорость чтения кода, наличие условных операторов особенно усложняет понимание кода. Во втором примере вместо трех условных операторов используется только один условный оператор. Код стал понятнее и менее подвержен багам.
https://kyleshevlin.com/prefer-multiple-compositions/
- 👍 34
- 👎 4