2016-12-29 2 views
1

Как длина строки применяется к какой-то компонент коллекции, созданной из некоторого набора данных, как это:Реагировать влияет на производительность длинных ключевого значения на компоненте

{this.state.list.map(item => { 
    const url = item.url; 
    return (
    <ListItemComponent url={url} key={url}/> 
); 
})} 

Есть ли какие-то ограничения? Каковы последствия использования длинных ключевых значений?

Фон. Иногда нам нужно создать список очень длинных элементов (например, URL-адреса с большим количеством параметров, закодированных), и только подходящая/уникальная вещь для использования в качестве естественного ключа - это очень длинная вещь.

ответ

3

Длина строки, которую вы используете для вашего ключа, не должна влиять на производительность вообще.

Строки в Javascript непреложные и дополнительно современные двигатели Javascript использовать строки интернирование, а это означает, что, когда ваш переводчик проверяет ли '/some/url/ === '/some/other/url' это не нужно, чтобы пройти каждый символ в массиве в O (N) линейное время, но может просто проверьте, совпадают ли эти два значения.

См. Этот ответ для получения дополнительной информации: Do common JavaScript implementations use string interning?

Смежные вопросы