Можно убрать из data.json второй элемент массива(который отвечает за данные с сервера) и поместить его в код компонента в хук useState. При этом стоит установить значения для поля items, как undefined(т.к. данные пока не подгружены).
const [list, setList] = useState({
id: 'list',
name: 'Список',
items: undefined,
});
В возвращаемой разметке можем сделать условие, в котором будем проверять значение поля list.items и если его значение будет оличаться от undefined, то отображаем, иначе показываем лоадер.
Пример кода:
const ListComponent = () => {
const [list, setList] = useState({
id: 'list',
name: 'Список',
items: undefined,
});
useEffect(() => {
// Код для подгрузки необходимых данных...
}, []);
return (
<ul>
<span>Настройки</span>
<li>Включить игру</li>
<li>Перезагрузить</li>
</ul>
<ul>
<span>Список</span>
{list.items ? (// Необходимая разметка) : <p>Загрузка...</p>}
</ul>
)
}