例如,如果我有一个数组(示例有 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
包装器(父)组件中的 并传递首选项props
吗?
实际上,组件嵌套了三次,这会导致道具传递混乱,所以这就是我使用上下文的原因,但是我可以想象如果它多次调用上下文会使应用程序变慢