Size: a a a

2020 June 25

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
Допустим так: нажимаем на ссылку -> меняется url -> запускаются хуки роута для фетча данных -> если все хорошо то рендерим страницы соответствующую росту с полученными данными
Ну вот после нажимаем на ссылку можно попробовать свернуть в другую сторону
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
Ну вот после нажимаем на ссылку можно попробовать свернуть в другую сторону
Ну описанный мной подход больше похож на нативное поведение браузера при переходе по ссылкам
источник

AO

Aleksandr Osipov in ☄️ effector
Можно вообще опцией выбрать поведение, менять урл до отработки хуков или после (не знаю зачем, но вдруг)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
Ну описанный мной подход больше похож на нативное поведение браузера при переходе по ссылкам
На поведение когда интерактив достигался только сменой урла и загрузкой нового документа
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
Ещё вот хотелось бы сделать такое поведение: есть роут, но хотелось бы загрузить данные до перехода, только потом менять урл и показывать страницу.

То есть некий роут который работает с промисом, если собираемся на него перейти, то пока идёт загрузка, то видна текущая страница, только после резолва меняется урл и контент
И тут сразу куча эджкейсов. А что если в процессе загрузки данных, юзер ткнул еще куда-то? Отменять старый запрос или не давать новый сделать?
А что если интернет медленный? Юзер будет ничего не видеть пока данные грузятся и будет думать что ничего не происходит. И тыкать снова и снова
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
Ну описанный мной подход больше похож на нативное поведение браузера при переходе по ссылкам
Ну то есть когда урл определяет состояние и при этом блокирует взаимодействие после старта загрузки хтмл
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
createStore<🦉> ⁣
И тут сразу куча эджкейсов. А что если в процессе загрузки данных, юзер ткнул еще куда-то? Отменять старый запрос или не давать новый сделать?
А что если интернет медленный? Юзер будет ничего не видеть пока данные грузятся и будет думать что ничего не происходит. И тыкать снова и снова
В любой непонятной ситуации делать так чтоб было похоже на поведение браузера с обычными страницами
источник

DS

Dmitriy Shuleshov in ☄️ effector
createStore<🦉> ⁣
И тут сразу куча эджкейсов. А что если в процессе загрузки данных, юзер ткнул еще куда-то? Отменять старый запрос или не давать новый сделать?
А что если интернет медленный? Юзер будет ничего не видеть пока данные грузятся и будет думать что ничего не происходит. И тыкать снова и снова
Про ткнул и при стандартном походе я лично часто тыкаю из-за кумулятивного сдвига. Да это типа решается скелетоном...
Мне кажется показывать не блокирующий лоадер после действия юзера оптимальный вариант
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
В любой непонятной ситуации делать так чтоб было похоже на поведение браузера с обычными страницами
Максимально проклято
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
В любой непонятной ситуации делать так чтоб было похоже на поведение браузера с обычными страницами
Идем не в сторону улучшения, а в сторону консерватизма
источник

c⁣

createStore<🦉>... in ☄️ effector
Типа зачем исправлять проблемы старых подходов, давайте копировать их в новых
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
Ну то есть когда урл определяет состояние и при этом блокирует взаимодействие после старта загрузки хтмл
Ну почему блокирует, браузер не блокирует же когда ты на ссылку нажимаешь
источник

c⁣

createStore<🦉>... in ☄️ effector
Aleksandr Osipov
Ну почему блокирует, браузер не блокирует же когда ты на ссылку нажимаешь
Пока идет запрос нет, но когда начинаешь получать верстку да
источник

AO

Aleksandr Osipov in ☄️ effector
Ну это да
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
Типа зачем исправлять проблемы старых подходов, давайте копировать их в новых
С твоих слов не совсем понял, ты против подхода fetch before render? Для типовых сайтов это приведёт к тому что будем при кликах мгновенно переходить на страницу и видеть кучу лоадеров, для приложений типа сайтов обычных мне кажется это не очень хорошо
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
createStore<🦉> ⁣
Типа зачем исправлять проблемы старых подходов, давайте копировать их в новых
Ок. Долго грузится - показывай лоадер, оборвалось - показывай прежнюю страницу и говори об ошибке. Клик по третьей ссылке пока грузится вторая - забивай на вторую и грузи третью
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
В любой непонятной ситуации делать так чтоб было похоже на поведение браузера с обычными страницами
Тут надо перефразировать, имел ввиду делать так чтоб было не хуже обычных страниц
источник

AO

Aleksandr Osipov in ☄️ effector
createStore<🦉> ⁣
Типа зачем исправлять проблемы старых подходов, давайте копировать их в новых
А в чем проблема старых подходов? Отсутсвие интерактивности мгновенной при переходах между роутами?
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
Ок. Долго грузится - показывай лоадер, оборвалось - показывай прежнюю страницу и говори об ошибке. Клик по третьей ссылке пока грузится вторая - забивай на вторую и грузи третью
осталось реализовать
источник

VI

Vadim Ivanov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
у меня вот так вышло) при клике новые элементы добавляются по месту нажатия https://share.effector.dev/cC6Db0wg

пара моментов:
—  ресайз-листенер не нужен, так как первый же тик вернёт все круги в рамки текущего окна
— document.body.offsetWidth учитывает margin и padding благодаря чему нет нужды в их установке в ноль в body
нормас)
источник