Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] v3 #1042

Open
Tracked by #6874
inomdzhon opened this issue Dec 4, 2024 · 0 comments · May be fixed by #1049
Open
Tracked by #6874

[RFC] v3 #1042

inomdzhon opened this issue Dec 4, 2024 · 0 comments · May be fixed by #1049
Assignees
Milestone

Comments

@inomdzhon
Copy link
Contributor

inomdzhon commented Dec 4, 2024

BREAKING CHANGE

Отказ от системы спрайтов

С v1.3.0 пакет @vkontakte/icons перешёл на использование системы спрайтов для рендера иконок. Это превентивно оптимизировало случаи, когда одна иконка могла использовать несколько раз на странице.

Но с увеличением количества иконок в репозитории, обнаружилась обратная сторона этого решения – рендер спрайта занимает больше времени, чем если бы иконка рендерилась самостоятельно без спрайта.

Скриншоты до и после

Помимо скорости рендера, нет поддержки SSR (#123), т.к. спрайт собирается только на клиенте. Это приводит к проблеме с морганием иконок во время первого рендера.

Видео

origin.mov
slow.mov

В связи с этим в v3 пакета @vkontakte/icons-sprite будет удалена реализация спрайтов. Соотвественно, @vkontakte/icons с v3 будет рендерится без спрайта, что на клиенте, что на сервере.

Удаление CommonJS

Сейчас бандл @vkontakte/icons и @vkontakte/icons-sprite собирается и в CommonJS, и в ESM.

На 2024 год многие сборщики, библиотеки и браузеры уже умеют в поддержку ESM. В экосистеме VK пакет @vkontakte/vkui с v7.0.0 полностью перешёл на модули.

Поэтому начиная c v3 бандлы @vkontakte/icons и @vkontakte/icons-sprite также будут переведены на ESM. Для этого в package.json пакетов появятся поля "type": "module" и "exports".

Обновление поддержки React

Удалена поддержка React 16 и React 17, добавлена поддержка React 19

@inomdzhon inomdzhon added this to the v3.0.0 milestone Dec 4, 2024
@SevereCloud SevereCloud self-assigned this Dec 5, 2024
@SevereCloud SevereCloud linked a pull request Dec 9, 2024 that will close this issue
@github-project-automation github-project-automation bot moved this to 🗃 Backlog in VKUI Dec 9, 2024
@SevereCloud SevereCloud added this to VKUI Dec 9, 2024
@SevereCloud SevereCloud moved this from 🗃 Backlog to 👀 In Review in VKUI Dec 9, 2024
@SevereCloud SevereCloud moved this from 👀 In Review to 🔧 In progress in VKUI Dec 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 🔧 In progress
Development

Successfully merging a pull request may close this issue.

2 participants