207 похожих чатов

Всем привет. Вопрос: Как узнать ширину экрана на сервере или избежать

ошибки гидрации из-за того что на сервере приложение отрендерилось для десктопа, а на клиенте ренедрится как для мобилки?

Описание:
У меня в приложении есть computed поле $IS_MOBILE, которое подключается ко всем компонентам vue через mixin в plugins nuxt.config.js

{
src: '@/plugins/mixins/nossr',
mode: 'client'
},

Эта переменная зависит от ширины экрана. Выставить её на сервере я не могу. Поэтому сейчас во время рендеринга на сервере она undefined. Соответсвенно во всех компонентах где она используется это приводится к false.

Потом во время гидрации на клиенте если экран меньше 768px она устанавливается в true.
И накст выдаёт ошибки гидрации, из-за того что на сервере всё отрендерилось как для десктопа.

Я знаю что могу использовать пакет nuxt-user-agent для опредеоения устройства на сервере, но он не показывает ширину устройства. Например 10 дюймовые планшеты должны получить desctop версию сайта, а 7 дюймовые мобильную.

1 ответов

6 просмотров

попробуй костылем отсрочить переключение флага за пару мгновений после гидрации. сет таймаутом или $nextTick()

Похожие вопросы

Обсуждают сегодня

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
77
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Карта сайта