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

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

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

27 ответов

8 просмотров

“svg” - иконки?

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

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

ну кмк не очень хорошо, как минимум вес проекта растет при желании модульность можно сделать отдельным 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
Ну мне удобно дублировать и импортировать. Удобств...

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
Дороу! У кого-нибудь есть в загашнике проверенная функция экранирования, аналог re.escape в Python? Из доки: » Escape all the characters in pattern except ASCII letters and n...
Daniil Smolyakov
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Народ поскажите хороший туториал как написать программу-службу Лазарем?
Alexander
6
Карта сайта