Size: a a a

Vue.js Russian Developers Community

2020 September 16

BS

Bogdan Saliuk in Vue.js Russian Developers Community
Ilya Medzhidov 🖋
При поиске заменяешь контент на нужное сообщения подгружая снизу и сверху несколько,  чтобы заполнить экран. При скрллле грузишь в ту сторону, в которую крутит юзер
Да. Пожалуй, неплохо
источник

IM

Ilya Medzhidov 🖋 in Vue.js Russian Developers Community
Я имею ввиду что скормить хочу компилятору и template и data и methods. И чтобы все это хранилось в результате этого компайла
источник

IM

Ilya Medzhidov 🖋 in Vue.js Russian Developers Community
Сейчас гляну
источник

IM

Ilya Medzhidov 🖋 in Vue.js Russian Developers Community
Попробую поковырять этот способ,  спасибо
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Bogdan Saliuk
Привет :) Есть чат, в нём, разумеется, сообщения. Ты заходишь в чат и загружаешь, скажем, 40 сообщений. Остальное подгружается по скролу. И здесь вроде как всё ок. Но как быть с поиском по сообщениям, когда нужно будет переместиться к конкретному сообщению? Что делать с пагинацией?
хорошего способа нет чисто логически если в чате есть «ползунок скролла»

ТГ например выводит дополнительное окно
Дискорд выводит дополнительное окно

при клике на найденное сообщение идет переход к нему, но индикации по ползунку скролла нет

если ползунок нужен (скорее всего нет), то вам нужен Virtual Scroll и информация о высоте всех элементов между найденным и последним, что в условиях чата может быть очень большой проблемой на опять же чисто логическом уровне
источник

S

Sergey in Vue.js Russian Developers Community
Рафаил Мамедов
хорошего способа нет чисто логически если в чате есть «ползунок скролла»

ТГ например выводит дополнительное окно
Дискорд выводит дополнительное окно

при клике на найденное сообщение идет переход к нему, но индикации по ползунку скролла нет

если ползунок нужен (скорее всего нет), то вам нужен Virtual Scroll и информация о высоте всех элементов между найденным и последним, что в условиях чата может быть очень большой проблемой на опять же чисто логическом уровне
А вот скайп прокручивает сразу к найденному и подгружает несколько сообщений вокруг. И работает это очень плохо, кмк. Интерфейс телеги в этом плане более приятен.
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Ползунок в чате вообще непонятная вещь, что он показывает даже без поиска?

Ползунок это некий показатель прокрученности, где положение в верхней точке это первое сообщение, а в нижний последнее. Очевидно, что в чате (если бы был ползунок) он бы находился почти всегда в нижней точке

10 000 000 сообщений, ну вы прокрутили вверх на 1000 сообщений, на сколько должен сместиться ползунок? На 1000 / 10 000 000 от высоты всей области прокрутки? Непонятно

Прикручивать его на «только подгруженные сообщения» и изменять область скролла при далнейшей прогрузке? Окей, тогда ползунок - это индикация подгруженной области, тогда и при поиске можно придерживаться той же стратегии

Нашли сообщение которое на 88 442 положении от поседнего?
Считайте подгруженной областью 88 342 - 88 542 и ставьте ползунок посередине
Или считайте подгруженной областью 88 442 - 88 642 и ставьте ползунок в самый верх
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
В любом случае это проблема логическая, а не техническая
источник

MM

Maks Maks in Vue.js Russian Developers Community
Как вот типо такого делать? Закидывать каждое поле отдельно?
источник

MM

Maks Maks in Vue.js Russian Developers Community
источник

T

Tmq in Vue.js Russian Developers Community
Grigorii K. Shartsev
Значит его не должно быть в App.vue, либо добавляй meta параметры на него
а если сделать v-if темплейт с логин пейджем в самом app.vue? имеет место быть?
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Tmq
а если сделать v-if темплейт с логин пейджем в самом app.vue? имеет место быть?
нет
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Вы должны принять решение «показывать запрошенную страницу или отправить на логин» еще до начала показа страницы
источник

T

Tmq in Vue.js Russian Developers Community
а как тогда быть с повторяющимися компонентами типа navbar и sidebar? В роутах они везде статичные, кроме логин пейджа
источник

E

Evgeny in Vue.js Russian Developers Community
Tmq
а если сделать v-if темплейт с логин пейджем в самом app.vue? имеет место быть?
Можно сделать через мидлвару и редиректить на страницу с логином, на которой этих компонентов не будет
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Tmq
а как тогда быть с повторяющимися компонентами типа navbar и sidebar? В роутах они везде статичные, кроме логин пейджа
Можете сделать 2 «слоя», один для login. page, другой для всех остальных
источник

T

Tmq in Vue.js Russian Developers Community
Рафаил Мамедов
Вы должны принять решение «показывать запрошенную страницу или отправить на логин» еще до начала показа страницы
Я думал это решение принимать после того, как мне приходит первый ответ, и если там 401, то просто рендерить логин пейдж
источник

E

Evgeny in Vue.js Russian Developers Community
Решается через layout
источник

РМ

Рафаил Мамедов... in Vue.js Russian Developers Community
Tmq
Я думал это решение принимать после того, как мне приходит первый ответ, и если там 401, то просто рендерить логин пейдж
Ну вот чисто на уровне логики

Вы на клиенте знаете, что юзер не авторизован
Он запрашивает страницу с «защищенными данными»

Для чего делать запроса, чтобы понять, что ему туда нельзя?
источник

T

Tmq in Vue.js Russian Developers Community
ага, кажется, понял
спасибо!
источник