Нет, не пробовал. Но кажется lottie это просто инструмент для быстрого переноса анимаций из after effects. Не думаю, что он может быть производительнее, чем просто анимация на canvas.
И опять же, любая анимация на JS имеет недостаток, что выполняется в том же потоке что и ваш код. Будете блокировать поток - будет тормозить анимация.
Да, но есть проблема с тем, чтобы засунуть в webgl кривые. По крайней мере у меня не вышло. А как и у решение на canvas проблема с выполнением в основном потоке остаётся.
Вы имеете в виду SMIL? Да, наверное это свойство могло бы ещё улучшить это и другие решения, но главная проблема в том, что все решения, кроме CSS работают в том же потоке.
Тут либо спиннер оставлять в основном потоке, а всю работу с данными переводить в воркеры, либо упростить спиннер ?
Полностью согласен, что решение отличное. Но согласитесь, одно дело использовать его в каком-то специфическом случае, когда нам надо отобразить 3D задёшево, другое - использовать подобную технику для простого индикатора загрузки.
Да, согласен, react - это не лучший инструмент для анимаций. Но бывает так, что ты просто приходишь на проект и там уже есть решение. А ты лишь можешь его улучшить или заменить. И да, эта задача решалось мной ещё до текущего места работы.
Кроме того, статья в целом не про то, что "мы съехали с React и стало всё замечательно". Вы могли заметить, что все представленные решения имеют какой-то недостаток. Главная же идея была показать, что есть иные варианты решения проблемы и один из главных - просто отказаться от ненужной сложности.
Решение с анимированным GIF нам не подошло по причине низкого качества картинки и отсутствия возможности сделать прозрачный фон.
Да, возможно это было бы можно решить с помощью современных форматов, типа Webp, но на момент поиска решения (~2 года назад) Safary не умел в Webp, а тем более анимированный
Не знаю как другие, но у меня несколько окон с разным набором вкладок. Зависит от темы, по которой сейчас работаю.
Когда я разбирался с проблемой организации всего этого добра, то наткнулся на встроенные возможности chrome. Да, само не сортирует вкладки, но лично мне это и не надо — я бы не хотел, чтобы мне все-все гитхаб вкладки вдруг в одном окне собрали =)
Хотел ещё добавить. Вот есть статья. И конкретно раздел про мемоизацию. Ведь по сути, useCallback — это ведь useMemo.
Так вот, с одной стороны мысль о мемоизации всего — выглядит крайне страной. С другой стороны, автор утверждает что нет никакой заметной разницы при "лишней" мемоизации. Так не кажется ли вам, что вся эта тема с useCallback не стоит даже обсуждения? Особенно без каких то замеров.
Я, признаться, не очень понимаю всю эту шумиху вокруг хуков. Они мне с самого начала показались порочной практикой. Они слишком много делают "магически". Да, в какой-то мере удобно, но читать это всё потом такая боль
Поправьте, если я вас не правильно понял, но вы предлагаете следующее: если "ниже" DOM нода, то не используйте useCallback. Если же там компонент, то лучше обернуть.
Примеры автора статьи слишком упрощены, как и во многих других статьях. От этого и масса вопросов.
Например пример со списками — лучше для перформанса наверное вообще не прокидывать в каждый элемент колбек. А ловить клик на родителе и уже там определять выбранный элемент.
Кроме того, не понятны примеры, когда колбек принимает аргумент и что-то с ним делает. В таком случае в зависимостях у него ничего нет и тут действительно стоит задуматься, чтобы выкинуть такой колбек за пределы рендер-функции.
Могу посоветовать начать с советов от самого Гугла
К сожалению не видел статьи, где бы разбирались все панели devTools, но по частям можно найти именно в блоге Гугла
Нет, не пробовал. Но кажется lottie это просто инструмент для быстрого переноса анимаций из after effects. Не думаю, что он может быть производительнее, чем просто анимация на canvas.
И опять же, любая анимация на JS имеет недостаток, что выполняется в том же потоке что и ваш код. Будете блокировать поток - будет тормозить анимация.
Да, но есть проблема с тем, чтобы засунуть в webgl кривые. По крайней мере у меня не вышло. А как и у решение на canvas проблема с выполнением в основном потоке остаётся.
Вы имеете в виду SMIL? Да, наверное это свойство могло бы ещё улучшить это и другие решения, но главная проблема в том, что все решения, кроме CSS работают в том же потоке.
Тут либо спиннер оставлять в основном потоке, а всю работу с данными переводить в воркеры, либо упростить спиннер ?
Полностью согласен, что решение отличное. Но согласитесь, одно дело использовать его в каком-то специфическом случае, когда нам надо отобразить 3D задёшево, другое - использовать подобную технику для простого индикатора загрузки.
Да, согласен, react - это не лучший инструмент для анимаций. Но бывает так, что ты просто приходишь на проект и там уже есть решение. А ты лишь можешь его улучшить или заменить. И да, эта задача решалось мной ещё до текущего места работы.
Кроме того, статья в целом не про то, что "мы съехали с React и стало всё замечательно". Вы могли заметить, что все представленные решения имеют какой-то недостаток. Главная же идея была показать, что есть иные варианты решения проблемы и один из главных - просто отказаться от ненужной сложности.
Решение с анимированным GIF нам не подошло по причине низкого качества картинки и отсутствия возможности сделать прозрачный фон.
Да, возможно это было бы можно решить с помощью современных форматов, типа Webp, но на момент поиска решения (~2 года назад) Safary не умел в Webp, а тем более анимированный
Когда я разбирался с проблемой организации всего этого добра, то наткнулся на встроенные возможности chrome. Да, само не сортирует вкладки, но лично мне это и не надо — я бы не хотел, чтобы мне все-все гитхаб вкладки вдруг в одном окне собрали =)
Спасибо за подробный ответ.
Хотел ещё добавить. Вот есть статья. И конкретно раздел про мемоизацию. Ведь по сути, useCallback — это ведь useMemo.
Так вот, с одной стороны мысль о мемоизации всего — выглядит крайне страной. С другой стороны, автор утверждает что нет никакой заметной разницы при "лишней" мемоизации. Так не кажется ли вам, что вся эта тема с useCallback не стоит даже обсуждения? Особенно без каких то замеров.
Я, признаться, не очень понимаю всю эту шумиху вокруг хуков. Они мне с самого начала показались порочной практикой. Они слишком много делают "магически". Да, в какой-то мере удобно, но читать это всё потом такая боль
Поправьте, если я вас не правильно понял, но вы предлагаете следующее: если "ниже" DOM нода, то не используйте useCallback. Если же там компонент, то лучше обернуть.
Примеры автора статьи слишком упрощены, как и во многих других статьях. От этого и масса вопросов.
Например пример со списками — лучше для перформанса наверное вообще не прокидывать в каждый элемент колбек. А ловить клик на родителе и уже там определять выбранный элемент.
Кроме того, не понятны примеры, когда колбек принимает аргумент и что-то с ним делает. В таком случае в зависимостях у него ничего нет и тут действительно стоит задуматься, чтобы выкинуть такой колбек за пределы рендер-функции.