Метод-1: Проверка при условии: (Быстрее)
const { foo } = props;
if (foo) {
foo();
}
Метод-2: Пустая функция как значение по умолчанию: (Медленнее)
const { foo = () => {} } = props;
foo();
Method-1 (if-check) быстрее (более эффективно) при многократном выполнении (~ 50+); и Метод-2 быстрее при выполнении несколько (1 или 2) раз.
JS на скамейке: https://jsbench.me/4bkdj9r61i
Это так, потому что в методе-2 функция, пустая или переданная, выполняется каждый раз , тогда как в методе-1 функция выполняется только , если она определена.
В типичном приложении React вы не будете вызывать функцию много раз, поэтому вам подходит любой из них.
Но я бы посоветовал использовать Method-1 (if-check) , потому что if будет проверять все ложные (null
, undefined
, ''
, 0
, false
et c) значения, тогда как Method-2 ( функция по умолчанию) будет защищать только тогда, когда значение не передано, что означает undefined
.
Кроме того, если вы хотите проверять только значения null
и undefined
и ваш инструментарий поддерживает это , вы можете использовать опциональную цепочку : foo?.()