Антон Спирин, а, ну да, у меня формулировка в этом плане неудачная. Я больше в качестве альтернативы скинул. Как правило, если начальное состояние зависит от пропсов, то нужно и за их изменениями следить тоже и тогда использовать getDerivedStateFromProps будет разумно. В коде из вопроса необходимости такой нет, но я предполагаю, что это всё-таки больше псевдокод, в котором выпилено многое из реального спора.
Антон Спирин, ну да, сейчас и начальное состояние и изменения пропсов обрабатываются одним методом. Я ж с этим не спорю. Но вы говорите, что начальное состояние в нём не задаётся, а это не так.
getDerivedStateFromProps is invoked after a component is instantiated as well as when it receives new props.
Таким образом, если начальное состояние зависит от пропсов, его нужно задавать не в конструкторе и не в свойстве класса, а именно в getDerivedStateFromProps — в этом весь смысл данного метода. Изменения пропсов тоже будут в нём отрабатываться и меньше вероятность что-то забыть.
А чтобы избежать проблемы "при каждом обновлении props будет обновляться state" нужно просто в методе соответствующие проверки добавить, опять же в документации и rfc этот момент описан.
При сабмите формы, конечно, стоит редирект - форма сабмитится как обычно, данные сохраняются, генерируется идентификатор и идёт редирект на "красивый" урл.
А при открытии страницы можно действительно через middleware или прямо в контроллере заполнить Request нужными данными, как будто они пришли из запроса.
Хочу ходить по улицам в рыцарских доспехах, чтобы, если меня захотят убить, было сложнее это сделать. Но переживаю, что возникнут проблемы при прохождении флюорографии. Для этого можно, конечно, вырезать форточки с обеих сторон лат, но сколько подобных нюансов работы врачей есть! Разумно ли использование такого хода в указанных целях?
Иными словами: вероятность того, что вы испортите жизнь себе при таком решении намного выше, чем вероятность испортить жизнь мифическим копирователям.
Переменная timer всегда будет undefined в clearTimout. Зачем вообще clearTimout там? Чем это отличается от того, что у автора сейчас, кроме того, что всё будет запущено на 200 мс позже, но так же разом?
Проблема в том, что на ваш вопрос невозможно дать ответ - всё зависит от структуры таблиц, нагрузки на БД, количества ресурсов на сервере, конкретной выборки, количества данных и фазы луны. Единственный надёжный вариант - сделать как я сказал.
Скажу только, что между первым и вторым вариантом заметной разницы по времени выполнения и по нагрузке на процессор не будет.