проблема проскакивает белая тема, даже после билда на vite preview, как быть? пробовал использовать onBeforeMount, ничего не изменилось также проскакивает белая экран, потом сразу переключается на черный исходник так не работает https://getbootstrap.com/docs/5.3/examples/checkout/ все четко, сразу черный фон.
отправляется на клиент белая тема, а потом с локалстораджа при ините достается темная. Это ж spa
должна быть подмена с <html lang="en" data-bs-theme="auto"> на <html lang="en" data-bs-theme="dark"> почему-то делается это заметно
ну потому что сначала приходит html, а потом уже исполняется js
Попробуй выпилить data-bs-theme из html и подставлять его джаваскриптом
не совсем понял
Браузер получает этот атрибут из html и начинает отрисовывать. Потом подгружается джаваскрипт, меняет значение атрибута и происходит резкий переход. Попробуй выпилить атрибут из html, что бы такого перехода небыло
ты пойми что для решения твоей задачи нужно еще на этапе запроса от клиента определять какая тема ему нужна и сразу ее отправлять с html, чтобы все работало как ты хочешь: сменил на темную тему, перезашел - темная тема пришла сразу же. В твоем случае всегда отправляется светлая тема и уже на клиенте определяется какая именно тема нужна. Именно из-за этого возникает "пролаг".
я выбранную пользователем тему храню в localStorage.setItem('theme', theme), сохранил темную, далее делаю F5 и у меня белый пустой экран проскакивает, если же исходник и там тоже есть сохранение выбранной темы в localStorage.setItem('theme', theme) то нету этого белого пустого экрана, вот я пытался поменять тему в onBeforeMount , но не получилось, все равно после нажатия F5 проскакивает белый экран.
Я ещё раз обьясняю - локалсторадж существует на клиенте. Подумай, что получает "клиент" с сервера, когда происходит загрузка spa.
Обсуждают сегодня