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

Возникла следующая идея, хотелось бы узнать ваше мнение :) С учётом

наличия локали в пути [locale] во все ссылки в приложении необходим префикс с локалью, хранящейся в сторе. С одной стороны ничего сложного, просто берём значение локали и создаём литеральную строку:

<a href={`/${$locale}${url}`}>
Link
</a>

Идея в том, имеет ли смысл создать экшн, чтобы автоматом добавлять префиксы с локалью?

<a {href} use:locale>
Link
</a>

Экшн можно объявить в отдельном файле, импортировать туда значение стора и добавлять префикс, обновлять его при смене локали.

Вопрос в том, не будет ли это оверинжинирингом и не будет ли это бить по перформансу с учетом большого количества подписок через экшн?

15 ответов

18 просмотров

Так не сработает. Экшены же не перезапускаются, если передаваемые пропсы не меняются (а тут они и не будут). Придётся императивно href менять, а это уже не подойдёт никак. К сожалению, ничего лучше нет, чем просто завести файлик routes.ts, где завести переменные на каждый путь, и если он локале-специфичный, то делать это через derived-стор.

Eric-Rovell Автор вопроса
Daniil Kozlov
Так не сработает. Экшены же не перезапускаются, ес...

Можно пример, если таковой есть, пожалуйста

Eric-Rovell Автор вопроса
Daniil Kozlov
Вот пример из блога моего.

Спасибо, попробую разобраться!

Eric Rovell
Спасибо, попробую разобраться!

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

Eric-Rovell Автор вопроса
Daniil Kozlov
Так или иначе я всем бы советовал заводить такой ф...

Вопрос возможно глупый, но большое количество derived не будет бить по производительности? Или это та самая экономия на спичках?

Eric Rovell
Вопрос возможно глупый, но большое количество deri...

Тебя же не смущает использование $_() для вставки ключей? :) Это ж всё тоже дерайвды.

Eric-Rovell Автор вопроса
Daniil Kozlov
Тебя же не смущает использование $_() для вставки ...

Да, другого более практичного способа пока не нашёл...

Eric-Rovell Автор вопроса
Daniil Kozlov
Тебя же не смущает использование $_() для вставки ...

Я там посмотрел на пакет i18n, понял как работает и написал свой велосипед на readable сторе для хранения словарей, через derived тащу нужное сообщение с текущей локалью😅

Eric Rovell
Да, другого более практичного способа пока не нашё...

Не заморачивайся на этот счёт. Дерайвды очень дешевы в обращении. Не так дешевы как строка текста, конечно, но всё равно неплохо. При многократной подписке на один и тот же стор свелт держит только одну подписку, поэтому в случае с $_ у тебя по факту будет одна подписка, которая выдаёт функцию. В случае с путями будет еще несколько. Можно, наверное, вместо отдельных дерайвдов сделать одну мапку, чтоб подписка была одна, но это несущественно.

Eric-Rovell Автор вопроса
Daniil Kozlov
Интересное решение, хаха. А зачем?

Тот пакет было сложно настроить для саппера. Были примеры, да, но и были там функции лишние для меня. А так, хоть разобрался в чём-то и реализовал своё :) Ещё, мне нужна была возможность хранить массивы в словарях, автор не собирался внедрять это, хотя в том же i18n для реакта так можно😁

Eric Rovell
Тот пакет было сложно настроить для саппера. Были ...

Мм, ты давно делал? Массивы хранить не проблема уже больше полугода, просто надо использовать вместо _ функцию json, она вернёт по ключу то, что попросишь. В остальном отлично, почему бы и нет :)

Eric-Rovell Автор вопроса
Daniil Kozlov
Мм, ты давно делал? Массивы хранить не проблема уж...

Да, где-то в ноябре. Я потом ради интереса покажу, как всё будет готово. Ничем не удивить, но было бы интересно услышать мнение со стороны😁

Eric-Rovell Автор вопроса
Daniil Kozlov
Вот пример из блога моего.

За идею спасибо, очень понравилась. Буду точно делать аналогично

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта