169 похожих чатов

Привет. подскажите плиз, есть ли какой-то смысл не дублировать svg

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

27 ответов

37 просмотров

“svg” - иконки?

А чё помойка, выносишь статику в одно место и структурируешь

ну кмк не очень хорошо, как минимум вес проекта растет при желании модульность можно сделать отдельным icons.js файлом для группы компонентов (н-р сделай такой в папке main-page, где у тебя лежит все для главной страницы) и туда импортни нужное

Pavel-Vladimirov Автор вопроса
Sunrise
А чё помойка, выносишь статику в одно место и стру...

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

Для иконок самый правильный путь - использовать спрайты. Советую свою тулзу - https://www.npmjs.com/package/@neodx/svg Почитать можешь тут https://t.me/this_is_your_channel/44 и тут https://t.me/so_this_is/7

Pavel-Vladimirov Автор вопроса
Natalie
ну кмк не очень хорошо, как минимум вес проекта ра...

ну это ещё больше каши добавляет, не? лишние импорты

или так у меня вообще (не лучшая практика, да, но у меня мало иконок, так что пойдет) вся разметка в одном файле в объекте лежит, я ее потом вызываю через название поля

нихера себе))) мы тут за килобайты деремся, мегабайт это много

Natalie
или так у меня вообще (не лучшая практика, да, но...

А могла бы взять поделку и делать так: import { Icon } from '@/shared/ui'; export function SomeFeature() { return ( <div className="space-y-4"> <Icon name="common/add" /> <Icon name="common/close" className="text-red-500" /> <Icon name="text/bold" className="text-lg" /> <Icon name="actions/delete" className="p-2 rounded-md bg-stone-300" /> </div> ); }

Pavel-Vladimirov Автор вопроса
Natalie
нихера себе))) мы тут за килобайты деремся, мегаба...

так а на что влияет? или при старте приложения оно всё прогружается у клиента в браузере? а лишние 100кб при загрузке новой страницы это разве много?

Pavel Vladimirov
так а на что влияет? или при старте приложения оно...

- Да - Ты сам себе руинишь DX - SVG in JS - раковник

Dmitry Remezov
Для иконок самый правильный путь - использовать сп...

@Pavel5284 Ты понял, о чем говорю?) Один раз настраиваешь плагин для генерации спрайтов, пишешь компонент иконки и везде юзаешь, оно всё автоматически будет работать. Никаких svg in js, сотен импортов, всё максимально быстро, просто, правильно и удобно

Pavel-Vladimirov Автор вопроса

Нет. Где можно посмотреть реальный код?

Pavel Vladimirov
Нет. Где можно посмотреть реальный код?

Тут https://www.npmjs.com/package/@neodx/svg#step-by-step И тут https://github.com/secundant/neodx/tree/main/examples/svg-vite

Dmitry Remezov
https://t.me/so_this_is/7

а это чей канал кстати?

Dmitry Remezov
https://t.me/so_this_is/7

Есть у спрайтов минусы?

Abdullaev
Есть у спрайтов минусы?

Да, ломаются на масках/фильтрах (типа <g filter=“url(#kek)”>), пока не дошли руки до автоматического инлайна таких приколов. Но это всё не актуально для иконок

Pavel-Vladimirov Автор вопроса
Dmitry Remezov
Тут https://www.npmjs.com/package/@neodx/svg#step-...

Спс. Попробую внедрить на выхах. Но в чём смысл? Бандл уменьшится или что?

Pavel-Vladimirov Автор вопроса
/ /
удобство паша, удобство

Ну мне удобно дублировать и импортировать. Удобство это вкусовщина и дело привычки, не?

Pavel Vladimirov
Спс. Попробую внедрить на выхах. Но в чём смысл? Б...

Ты бы открыл что скидывал, там написаны проблемы) Много причин, например: - DX - у тебя будет один компонент с автокомплитом и типизацией - Скорость сборки (dev-сборки тоже) - Само собой, меньше бандл, ты всю статику сделал статикой, а не впердолил в JS - +100кб svg in JS != +100кб svg в виде отдельного файла

Pavel Vladimirov
Ну мне удобно дублировать и импортировать. Удобств...

Нет, удобство - субъективная практика поверх объективных предпосылок. Основа удобства - объективные характеристики (о субъективном вообще так-то не поговоришь) Дизайн, простота, концепции, требуемая ментальная нагрузка и прочее.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта