Всем привет!
Пытаюсь понять как правильно работать с DOM при использовании SSR Angular Universe.
Например задача: получить window.innerWidth произвести с ним арифметические операции и присвоить компоненту какую-то ширину, высоту, по событиям их менять.
Я так понимаю, что по хорошему при SSR не следует обращаться к window, но иначе дизайнерские идеи не реализовать.
Какие рекомендации? Где бы почитать?
Использовать css variables + calc, оборачивая их в isBrowser. Для того чтобы работать с media queries можно в SSR смотреть из useragent размеры экрана. Увы css vars не работают с медиа запросами, поэтому приходится ставить классы в компонентах (ну и у нас к примеру управляющие директивы типа isMobile). Важно понимать одну вещь: при таком подходе мы получаем два SSR сайта - мобильный и обычный. И тестить их нужно отдельно. И гугл их тоже индексирует отдельно.