响应长键值对组件的性能影响
React performance implications of long key value on component
如何将字符串的长度应用于从某些数据集创建的某些组件集合,如下所示:
{this.state.list.map(item => {
const url = item.url;
return (
<ListItemComponent url={url} key={url}/>
);
})}
有什么限制吗?具有长键值对性能有何影响?
背景。有时我们需要创建很长的项目列表(比如编码了很多参数的 url),只有 suitable/unique 用作自然键的东西是这个很长的东西。
您用于密钥的字符串的长度根本不会影响性能。
Javascript 中的字符串是不可变的,另外现代 Javascript 引擎使用 string interning,这意味着当您的解释器正在检查是否 '/some/url/ === '/some/other/url'
它不需要在O(n)
线性时间内遍历数组中的每个字符,而是可以简单地检查两个值是否相同。
有关更多上下文,请参阅此答案:Do common JavaScript implementations use string interning?
如何将字符串的长度应用于从某些数据集创建的某些组件集合,如下所示:
{this.state.list.map(item => {
const url = item.url;
return (
<ListItemComponent url={url} key={url}/>
);
})}
有什么限制吗?具有长键值对性能有何影响?
背景。有时我们需要创建很长的项目列表(比如编码了很多参数的 url),只有 suitable/unique 用作自然键的东西是这个很长的东西。
您用于密钥的字符串的长度根本不会影响性能。
Javascript 中的字符串是不可变的,另外现代 Javascript 引擎使用 string interning,这意味着当您的解释器正在检查是否 '/some/url/ === '/some/other/url'
它不需要在O(n)
线性时间内遍历数组中的每个字符,而是可以简单地检查两个值是否相同。
有关更多上下文,请参阅此答案:Do common JavaScript implementations use string interning?