Все эффекты с элементами, движущимися с разной скоростью (как будто они находятся на разном расстоянии) называются параллакс. Гуглите и обрящете — параллаксы бывают разные, но выполняются все примерно одинаково.
Вы для каждой клетки рисуете четыре стороны толщиной в 1px. Вполне естественно, что на границе двух клеток границы клеток образуют линию толщиной в 2px.
Они не медленные. Дело в том, где располагается код, который вызовет редирект. Если он находится в конце страницы, то до выполнения кода сначала (внезапно) отрендерится страница, а потом произойдёт редирект. Если скрипт находится в head, то тело страницы не успеет отрисоваться до редиректа. Читайте учебник по DOM.
Стейт менеджер нужен для консистентного управления состоянием приложения, внезапно.
Если вы не пользуетесь менеджером состояния в реакт-приложении, то либо используете контекст (вот хорошее объяснение, почему на проде так делать не нужно), либо пишете заведомо неподдерживаемое приложение. Ну или ваше приложение — это игра в крестики-нолики с двумя полями в стейте корневого компонента.
Большие приложения нельзя писать без стейт-менеджера — это выльется в огромную неподдерживаемую кучу спагетти.
Потому что сначала уходит ответ, сервера, а потом происходит получение данных из базы. Переместите код ответа внутрь коллбэка получения данных из базы.
Советую посмотреть вот это интервью. Там много воды и ламповых историй, но ближе к последней трети они достаточно адекватно обсуждают какие технологии в каких проектах востребованы. И упоминают, что mean мёртв. Есть, кстати, mern)
TL;DR компоненты-классы нужно использовать для создания error boundaries и при ssr. В остальных случаях компонент-функция будет короче и проще.
Если хочешь понять, что могут и чего не могут функциональные компоненты — вот подробное объяснение.
Там написано, что это не для новичков — поэтому нужно на самом деле разбираться, что такое компоненты, как они создаются в виде класса, а как — в виде функции.