Рендер только новых элементов при добавлении их в массив?
key={elem * Math.random()}
при добавлении новых 20 в массив перерисовываются ещё и старые 300
нет слов
Вы же слышали про shouldComponentUpdate ?) Просто добавьте его к вашим item-компонентам
Или React.memo для функциональных компонентов

Но вообще, если у вас компоненты в цикле выводятся, а не просто div-блоки, то при тех же пропсах ререндера не будет. Просто это не в map нужно в консоли проверять, а внутри самого компонента-item. map в любом случае обязан перебрать все элементы