Я был эффективным, оптимизируя наше приложение недавно и как таковой, я попал в Nitty Gritty of JavaScript. Один из вещей, о которых я думал, это если есть какая-либо реальная разница между объявлением компонента, как это:
const MyComponent = () => {
return(
..
)
}
против.
function MyComponent() {
return(
..
)
}
В этой форме Функция Синтаксис немного короче.
А потом?
Время от времени мы можем написать функцию стрелки, как это:
const MyComponent = () => (...)
Если мы положим нормальную скобки после стрелки, нам не нужно писать вернуть Отказ Так что короче, если мы сможем вернуться немедленно.
А потом?
Еще одна вещь, которую я видел, о чем говорят, это Экспорт компонента.
export default function MyComponent() {}
против.
const MyComponent = () => {}
export default MyComponent
Синтаксис функции дает нам возможность экспортировать по умолчанию компонент на месте.
А потом? (Любой чувак, где мои любители автомобиля здесь?)
Подъемность
Оказывается самая большая причина (как я мог найти) связан с подъемом. Давайте посмотрим на пример с действительным синтаксисом:
// I like to write my components before I use them
const MyComponent = () => {}
const AlsoMyComponent = () => {}
const App = () => (
<>
)
А потом? Давайте посмотрим на неверный синтаксис:
const App = () => (
<>
)
// I like to keep my components at the bottom
const MyComponent = () => {}
const AlsoMyComponent = () => {}
Этот пример 👆 будет привлекать ваш Линтер, чтобы бросить ошибку. Потому что компоненты используются до того, как они будут объявлены.
Поэтому, если вы хотите сохранить свои компоненты внизу, и используйте их до того, как они объявлены, мы можем написать их с помощью синтаксиса функций, и вы можете подняться на верхнюю часть файла.
const App = () => (
<>
)
// I like to keep my components at the bottom
function MyComponent() {}
function AlsoMyComponent() {}
Этот пример 👆 будет не Задействуйте свой Linter, потому что, когда мы запустим файл, он будет выглядеть так с JavaScript Engine:
// Components are hoisted to the top.
function MyComponent() {}
function AlsoMyComponent() {}
const App = () => (
<>
)
// I like to keep my components at the bottom
👀 where did they go?
А потом?
Вот и все! Я думаю…? Если у вас есть другая идея, то мне, или узнайте больше различий, пожалуйста, дайте мне знать!
Оригинал: “https://dev.to/ugglr/react-functional-components-const-vs-function-2kj9”