Например, если я получил массив (в примере 4 элемента, в реальном 50):
export default ["foo", "bar", "faz", "moo"];
Допустим, я получил компонент, который отображает данные:
import React, { useContext } from 'react';
import PreferenceContext from '../contexts/PreferenceContext';
export default props => {
const { accentColor } = useContext(PreferenceContext);
return (
<div style={{ color: accentColor }}>
{props.foo}
</div>
);
}
затем я повторно использую этот компонент в родительском компоненте
// FooCollection.js
import React from 'react';
import FooDisplay from './FooDisplay';
import fooArray from '../data/fooArray';
export default () => {
return fooArray.map(fooItem => <FooDisplay foo={fooItem} />
}
это приводит к тому, что компонент FooDisplay
будет отображаться, умножив количество элементов в массиве (таким образом, вызывая useContext
столько же раз). Итак, если я получу массив большего размера с большим количеством элементов, заметно ли это повлияет на производительность? Или мне лучше использовать useContext
в компоненте-оболочке (parent) и передать предпочтение с помощью props
?
на самом деле компонент вложен трижды, это вызывает беспорядок при передаче реквизита, поэтому я использовал контекст, однако я могу представить, что это замедляет работу приложения, если оно вызывает контекст так много раз