const应该在React.js的外部函数组件吗?



我的一些代码得到了类似于"将const移出函数以避免重新声明"的评论。这是一个正常的函数组件,类似这样:

export default function someComponent() {
const someString = 'A string';
///...
}

我对这引起重新声明的想法感到困惑,因为它没有,我知道保存变量和常量的记录属于作用域,所以它不完全是这样。但后来我想起typescript不允许在类中使用const,不确定原因或这是否相关。但是,ts在其v2中添加了只读修饰符,因此仍然存在混淆。

const应该在函数组件之外吗?我很想知道更多的意见。

硬币有两面。首先,考虑到代码的整洁性和可读性,我强烈推荐像您的示例那样的局部声明。我也喜欢使用更多的嵌套函数。

然而,在JavaScript中,每次函数执行时,局部定义都将被重新声明,即使它们是常量或函数。所以这是一种权衡。如果函数被多次调用,这将成为一个开销。

我认为对于像TypeScript的tsc或其他预处理器这样的编译器来说,在编译时提取这些定义以获得两全其美的效果并不难。但很可能他们这样做不是为了保持完全兼容。我不知道有这样的工具,但如果有的话我会感兴趣的。

最新更新