Когда в Next.js нужен Link, а когда router.push
Когда в Next.js нужен Link, а когда router.push. В App Router это не спор двух инструментов, а обычная архитектурная развилка.
Если переход известен заранее и является частью интерфейса, лучше Link.Если адрес нужно собрать по ходу действия, например из search input, фильтра, формы или условия, лучше router.push.
Хорошая короткая формула:Link — декларативная навигация.router.push — навигация из логики.
Ошибка здесь обычно не в выборе API, а в смешении ролей. Когда любой переход начинают делать через push, JSX теряет прозрачность. Когда через Link пытаются выразить логику, код тоже становится странным. Поэтому выбор лучше делать не по вкусу, а по типу навигации.
Контекст по App Router и URL-state разобрал на Хабр
Живой пример: Goods Finder