How to pass parameter to "keep alive" page

How to pass parameters or object to page with keepAlive option if we can’t use query and route params and component props?

keepAlive используется в конфигурации маршрута, при этом “кешируется” только первое открытие. Ваш вопрос до конца не понятен.

вопрос в том, как передавать параметры странице при последующих открытиях, если они были закешированы при первом открытии

Никак, об этом сказано в документации.

налицо недоработка роутинга

Роутинг у F7 крайне мощный и продуманный, но нужно научиться им пользоваться, для этого достаточно внимательно прочитать документацию и посмотреть kitchen.

Документация прочитана, примеры просмотрены, вопрос остался.
Видимо роутинг хоть и мощный, но не до конца продуманный.
Я без наезда, интересуюсь, может кто имеет вариант решения или Владимир что-то реализует для этого.
Как и собственно keep-alive маршруты появились после моей просьбы здесь на форуме.

Сформулируйте задачу, которую нужно решить, я попробую подсказать куда смотреть.

ну я уже формулировал - требуется передавать параметры keep-alive странице.
route path и route query не годятся, так как кешируются при первом открытии.

Эта страница живет всегда. Она больше не “открывается”. Правильное решение - обработка событий через Event Bus

Такой велосипед я уже собрал, но всё-таки было бы удобнее передавать параметры по-человечески в router.navigate.

Это не велосипед.
keepAlive - страница одна и имеет свое состояние, оно больше не сбрасывается.

А то, что при открытии страницы ожидается с одной стороны ее состояние должно сохраниться, а с другой - открыться с новыми параметрами - это конечно же жесть:)

Велосипед, это когда для решения задачи открытия страницы с параметрами всегда использовались navigate, а для страницы keep-alive встроенного решения нет и каждый должен изобретать своё.

Я например рассматриваю keep-alive не как страницу с сохраненным состоянием, а как страницу, которая не должна каждый раз инициализироваться со всеми её компонентами.
При этом, при каждом её открытии её состояние меняется, отображая переданные параметры (как и обычная страница)

Инициализация “компонентов” зависит от входящих данных.

В этом случае состояние не сохранится. Если меняете входящие параметры => меняется состояние. Нужно пересоздавать все заново. Это не keepAlive. Чтобы изменить состояние, нужно обработать событие.

Вообще это все не относится к F7, это относится в целом к JS, даже в общем к программированию.

Зачем всё пересоздавать, если можно не пересоздавать?
В документации прямо сказано, что keep-alive нужен для тяжелых страниц чтоб как раз не пересоздавать каждый раз их.
Про сохранение состояния тоже сказано.
С второй функцией отлично справляется, с первой - не очень, так как нет встроенных средств для изменения сохраненной страницы.

Затем, что начальное состояние зависит от входящих данных: параметры маршрута или контекст

Есть - это setState, Event Bus и Dom7.

В том то и дело, что не только начальное, а на момент открытия страницы.
Получается неконсистентность:

  1. Если страница обычная, то при ее открытии через navigate параметры передаются
  2. Если keep-alive, то параметры игнорируются и рекомендуемого пути решения передачи параметров нет. Хотя, по логике, это вопрос, который должен решать фреймворк и роутер.

А то приходится изобретать велосипеды с помощью