Мне нравится использовать const
и мне нравится switch
заявления.Является ли это предложение переключателя IIFE причиной ненужных накладных расходов?
примечание: Ниже приведен упрощенный пример. Код в каждом случае немного сложнее, а возвращаемый объект является компонентом JSX.
Рассмотрим это:
let retval // can't declare as const!
switch (value) {
case 'a':
retval = 'aa'
break
case 'b':
retval = 'bb'
break
case 'c':
retval = 'cc'
break
case 'd':
retval = 'dd'
break
default:
retval = 'xx'
}
// mistakenly by purpose change retval here..
retval = function nope(){ return null }
но я DO хотите использовать мои consts, сравните это:
const retval = (() => {
switch (value) {
case 'a':
return 'aa'
case 'b':
return 'bb'
case 'c':
return 'cc'
case 'd':
return 'dd'
default:
return 'xe'
}
})()
retval = null // nope you are safe here!, raises error
ли это вызывает излишнюю нагрузку? ... или будет ли его использовать двигатель?
Во всяком случае, это изящное решение - в некоторых случаях. Но все же это означает, что все обрабатывается и хранится в памяти, не так ли? Я создаю сложные компоненты JSX и возвращаю их. Мне не нужно создавать все компоненты, только нужные. Используя этот подход, они построят все сначала, верно? – Qwerty
it зависит от содержания. если is является функцией, то может быть выполнено только желаемое. –
Я фактически использую функции в этих случаях, поэтому этот подход действительно очень крут! Добавьте, пожалуйста, заметку к вашему ответу, чтобы я мог дать +1. В любом случае, мне все равно хотелось бы услышать слово по моим двум вопросам, это меня действительно интересует, в том числе разница между этим подходом и обычным «переключателем», особенно с точки зрения скорости обработки, эффективности и ресурсов. – Qwerty