Size: a a a

2021 February 13

DK

Dan Kozlov in Svelte [svelt]
https://github.com/safeapps-io/money-client/blob/master/src/components/csv/main.svelte#L189
Внутри ифа. Работает бесподобно, и даже типы не теряет. Главное не забывать, что надо делать cmp.default у загруженного.
источник

A

Arushwl in Svelte [svelt]
У меня чуток другой контекст:

component = await import(`@pages/${path}.svelte`);
☝🏻динамическая переменная в строке

<svelte:component this={$pathdata && component} />

чет не заводится...
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
У меня чуток другой контекст:

component = await import(`@pages/${path}.svelte`);
☝🏻динамическая переменная в строке

<svelte:component this={$pathdata && component} />

чет не заводится...
А тебе это сборщик собрать не особо сможет. Я спрашивал этот же вопрос достаточно давно в этом чате.
источник

DK

Dan Kozlov in Svelte [svelt]
Смотри в этот плагин:
https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars

Он тебе автоматически подменит код с переменной на огромный свич-кейс с импортами конкретного файла.
источник

A

Arushwl in Svelte [svelt]
менять архитекруктуру?
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
менять архитекруктуру?
Имхо, это не очень красивое решение. Можно лучше.
источник

A

Arushwl in Svelte [svelt]
Dan Kozlov
Смотри в этот плагин:
https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars

Он тебе автоматически подменит код с переменной на огромный свич-кейс с импортами конкретного файла.
свич кейс я сам могу ручками написать )))
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
свич кейс я сам могу ручками написать )))
Страницы добавятся, свич-кейс забудешь обновить.
Если оставишь это, лучше отдать это автоматике :)
источник

A

Arushwl in Svelte [svelt]
Dan Kozlov
Страницы добавятся, свич-кейс забудешь обновить.
Если оставишь это, лучше отдать это автоматике :)
так-то да, я ща для опыта всё кастомно собираю
источник

A

Arushwl in Svelte [svelt]
Dan Kozlov
Имхо, это не очень красивое решение. Можно лучше.
а какое есть видение у тебя?
источник

DK

Dan Kozlov in Svelte [svelt]
Хз, я не вижу ж твой код и твою задачу
источник

A

Arushwl in Svelte [svelt]
Arushwl
У меня чуток другой контекст:

component = await import(`@pages/${path}.svelte`);
☝🏻динамическая переменная в строке

<svelte:component this={$pathdata && component} />

чет не заводится...
прилетает строка с путем - из нее имя файла.svelte - который надо подменить
всё 🤷🏻‍♂️
источник

11

1 1 in Svelte [svelt]
от кого прилетает?  если от какого-нить роутера, меньшее из зол на мой взгляд - передавать оттуда не строчку, а лямбду с импортом.
источник

A

Arushwl in Svelte [svelt]
1 1
от кого прилетает?  если от какого-нить роутера, меньшее из зол на мой взгляд - передавать оттуда не строчку, а лямбду с импортом.
лямбда - это кто?
источник

11

1 1 in Svelte [svelt]
стрелочная функция
источник

A

Arushwl in Svelte [svelt]
с импортом чего?
источник

11

1 1 in Svelte [svelt]
того самого файла.svelte
источник

A

Arushwl in Svelte [svelt]
таки я как раз в роутере и мозгую сейчас это преобразование - строка пути прилетает из клика (условно навигирующий элемент))
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
таки я как раз в роутере и мозгую сейчас это преобразование - строка пути прилетает из клика (условно навигирующий элемент))
А эту задачу на откуп роутеру не отдать? Ну, то есть, у тебя путь меняется, когда страница меняется?
источник

11

1 1 in Svelte [svelt]
утрированно, вместо мапы {"путь": "имя компонента"}, и потом попытки делать
await import(components[path])
, сделать мапу {"путь": ()=>import('component')}  и потом делать
await components[path]()
источник