В вашем первом примере новый функциональный объект должен создаваться при каждом запуске Foo
. Так что отток памяти вам не нужен, если движок JavaScript не сможет его оптимизировать. (Как и почти все проблемы с производительностью, конечно, о таких вещах нужно беспокоиться, если у вас есть проблемы с производительностью. Хотя, если вы делаете это с множеством мелких компонентов, это может сложиться.)
В зависимости от того, что нужно helper
, вы можете определить его вне SFC и просто использовать его внутри него.
// I'm assuming this is in a module, so it's not a global
const helper = () => {
doSomething()
}
const Foo = () => {
// Presumably you use `helper` here somewhere
return (<View />)
}
Если по какой-то причине вы не используете модули (!!), чтобы избежать того, чтобы helper
был глобальным, вы должны сделать обычную область видимости. Может быть:
const Foo = (() => {
const helper = () => {
doSomething()
}
return () => {
// Presumably you use `helper` here somewhere
return (<View />)
}
})()