Расстаемся с SVG-in-JS в 2023 году
Хранение SVG в JS бандле ухудшает производительность сайта и будет лучше использовать SVG в HTML, сохраняя JS бандл небольшим и быстрым. В блоге Джейкоб Гросс вышел обзор использования SVG в JS и почему это неправильно, а также как правильно хранить и использовать SVG на сайте.
Основная причина, почему SVG в JS это плохо – производительность. При хранении SVG в JS браузеру приходится тратить больше времени на парсинг и компиляцию. Плюс там, где есть парсинг, там и увеличение объема использованной памяти для хранения результатов. Особенно эти проблемы с производительностью ощущают пользователи недорогих смартфонов.
Есть несколько практик вставок SVG на сайте, каждый из них может использоваться в разных ситуациях:
- Использование тега <img />.
- Использование SVG и <use /> для спрайтов текущего домена.
- Использование CSS и mask-image для спрайтов любых доменов.
https://kurtextrem.de/posts/svg-in-js