таймер во вью приложении. Используется в двух компонентах. В сторе допустимо запускать таймер? и комитами каждую секунду менять стейт или как с ними работать
Теоретически должен работать во vuex (не пробовала)
Свойство Date вроде как не реактивно и не будет вызывать перерендер
допустимо запускайте таймер в экшне, сохраняя этот таймер в стейт что бы таймер не запустился дважды, сделайте условие в экшне
А что за скептицизм за таймеры в сторах?) Пока вы выманиваете какой-то другой ответ, уже бы за это время успели написать в сторе + я вам уже ответил что это нормально в вашем случае
Уже интересно стало, что лучше: таймер во Vuex или таймеры в каждом компоненте? 😄 Или разницы нет?
Спасибо за ваше мнение, я предпочитаю услышать разные подходы и сделать вывод
Выполнить одну и ту же операцию один раз или 100 раз? Что проще?)
Или иметь таймер только в одном компоненте) Или иметь только один таймер, но вне компонентов и стора)
Ну будет один компонент, ок. Но если мы юзаем его несколько раз в разных частях страницы?
таймера ж всего 2, мифическая выгода от синхронизации времени через стор растворяется в оверхеде, который требуется на обновление данных в сторе логичнее сделать один унифицированный компонент, который показывает нужное время и вызывать его там, где нужно requestAnimationFrame в помощь для нормальной производительности
Надо смотреть, что такое "в разных частях страницы". Пока описано было только вывод времени в одном месте
в хедере таймер и на одном роуте. Когда мы находимся на этом роуте получается работают два таймера
два setTimeout или прям вывод оставшегося времени? Или просто по таймеру должно что-то произойти в этом другом компоненте?
функция из либы dt-fns каждую секунду показывает время в формате .. осталось "10 часов 15 минут 30 секунд", в нее мы прокидывает new Date() и нуобходимую дату в будущем
Не всегда решение хорошее, если оно сделано быстро) Также можно и классы в доме менять по $refs.el.addClass() вместо добавления какого-то там состояния. А причина долгого обсуждения обычно в том, что задача полностью не описываются почти, и приходится всегда особенности, нюансы и условия задачи выпытывать)
У вас получается уже третий раз не отвечать на вопрос) dt-fns как раз никакого отношения к задаче тут не имеет. Вопрос, что во втором компоненте делает таймер? Ровно тоже самое? Тоже выводит тоже самое время точно также? Может вообще один компонент просто в двузх местах вывести?
Я не хотел сказать что так быстрее всего, я хотел сказать что решение вполне себе в его случае)
в одном компоненте время форматируется, в другом нет. По сути они одинаковые
сделай один унифицированный компонент, через проп указывай необходимость форматирования, ну и вызывай их хоть в 5 разных местах достаточно хотя бы заюзать requestAnimationFrame вместо setInterval
Один компонент в разных местах - это как? Типа Singleton что-то?
Я имел в виду один просто компонент, а не один экземпляр компонента
то есть таймер вынести в отдельный компонент? но ведь проблема двух таймеров опять же будет? или это вовсе не проблема?)
Обсуждают сегодня