Доброго времени суток, появилась нужда, а за ней и вопрос в навигации в приложении.
В первой версии jmix были breadcrumbs, которыми весьма удобно было пользоваться, но во второй версии я найти их не могу. Подскажите пожалуйста, существуют ли они в во второй версии jmix и если их нет, то какой способ навигации наиболее удобный и похожий на “крошки” вы можете предложить?
Версия jmix 2.3.4
Здравствуйте
В версии 2.x по умолчанию используется система навигации React Routing. Breadcrumbs для такой системы не реализовано.
Однако при использовании шаблона для приложения Tabbed Window Application вы можете получить систему навигации как в версии 1.x (начиная с версии 2.6): Tabbed Application Mode :: Документация Jmix
В Tabbed Window Application реализован механизм breadcrumbs, как в версии 1.x
С уважением,
Дмитрий
Здравствуйте Дмитрий,
Если нет возможности перейти на более новую версию jmix, как тогда лучше поступить?
Есть ли готовое решение (если есть, то можно пожалуйста пример) для навигации или придется реализовывать “крошки” вручную?
С уважением,
Максим
Можно посмотреть в сторону решения от Vaadin. В их базе аддонов есть некоторые примеры. Однако не все из них могут быть актуальными. Вы можете поискать то, что подойдёт вам: Vaadin Add-on Directory
Вот несколько примеров, которые вы можете попробовать использовать в вашем приложении:
С уважением,
Дмитрий
Спасибо большое за примеры.
Наш кейс: Enterprise-система с множеством сущностей, где есть навигация между этими сущностями, где необходимо, в том числе, возвращаться назад на некоторый этап.
Можно услышать Вашу рекомендацию: нам лучше обновляться до более новой версии jmix и использовать Tabbed Application Mode и вы будете в будущем его развивать и двигаться в этом направлении или лучше использовать Vaadin аддона?
В случае первой рекомендации: на сколько затратно из версии 2.3.4 перейти в Tabbed Application Mode и что для этого нужно?
С уважением,
Максим
Во-первых проинформирую вас, что дополнение Tabbed Application Mode находится в подписке Enterprise. Во-вторых отмечу, что обновление на новые версии это полезно, как минимум, чтобы получить багфиксы
Как текущая версия так и дополнение будут развиваться равнозначно, оба этих способа существуют в равных правах и будут поддерживаться. Сложность обновления прямо зависит от объёма вашего приложения и количества экранов.
Миграция не затратит много сил, если у вас не часто используются хуки для событий жизненного цикла экрана, которые связаны с системой навигации Vaadin Routing. Можете ознакомиться с гайдом по миграции в нашей документации: Migration to Tabbed Mode :: Документация Jmix
Основной вопрос – какой вариант навигации больше подходят для ваших бизнес-задач.
Могу лишь отметить, что текущая система навигации, используемая у вас в приложении (ReactRouting), является более честной по отношению к web-технологиям. Она чаще всего используется и является стандартом. При навигации на какой-то URL создаётся объект экрана, создаются компоненты, браузер понимает, что он работает с веб приложением. Таким образом, очевидным образом работают различные встроенные функции браузера: обновление страницы, навигация назад и вперед по странице.
Tabbed Application Mode является некой адаптацией desktop подхода для корпоративных приложений в контексте веба. Т.е. экран сохраняет своё состояние даже при перезагрузке, но нет честного роутинга. Также использование URL параметров запроса не представляется возможным (да и нужным).
Выбор способа целиком и полностью зависит от ваших требований.
С уважением,
Дмитрий