Size: a a a

2021 April 09

АЧ

Александр Чумак... in Svelte [svelt]
Алексей, а могли бы ещё уточнить, зачем используется
await new Promise(r => setTimeout(r, Math.random() + 1 * 1000));
Я так понимаю это просто рандомная задержка и пытаюсь понять как это переделать в периодический опрос сервера, но с таких количеством асинхронных штук пока не складывается картинка
источник

AI

Aleksey Immũzov in Svelte [svelt]
А это по приколу. Чтобы ты смог увидеть "loading..." глазами. Сервер слишком быстро отвечает.
источник

AI

Aleksey Immũzov in Svelte [svelt]
Тебе надо периодично влиять на items. Как только он поменяется всё перестроится.
источник

АЧ

Александр Чумак... in Svelte [svelt]
а можно просто запихать getProcessesInfo().then(updateItems) в setInterval?
источник

AI

Aleksey Immũzov in Svelte [svelt]
Быстро накидал вот так:
> https://svelte.dev/repl/ca6ec045bbff4a5284ddc1ddc21d5f1e?version=3.37.0

Здесь нет слежения за таймаутом (надо чистить). В целом тебе надо понять как и на что реагирует шаблон (на изменение перменных) и от этого думать.

Решение далеко неидеальное, просто накидал PoC. Думай дальше сам.
источник

АЧ

Александр Чумак... in Svelte [svelt]
Ууу. Всё жёстче и жёстче :)
Спасибо, пошёл разбираться
источник

AS

Alexey Schebelev in Svelte [svelt]
На неделе попалась нетривиальная проблема. Несложная, но может быть полезно новичкам. Поэтому традиционная пятничная задачка от меня в качестве конкурса(приз как всегда - почёт и уважение) на лучшее решение.

Ситуация: с сервера приходит готовый HTML код, в котором есть определенные плейсхолдеры. Нужно в приложении отрендерить этот HTML и так, чтобы вместо плейсхолдеров вставлялись соответствующие Svelte-компоненты.

Пример условия:
<script>
   import Counter from './Counter.svelte';
   import Switcher from './Switcher.svelte';
 
   const placeholders = {
       switcher: Switcher,
       counter: Counter
   }
 
   let html = `
     <h1>Placeholders as components</h1>
 
     <h2>Counter component</h2>
     %counter%

     <h2>Switcher component</h2>
     %switcher%`;
</script>
...
источник

MZ

Misha Zamkevich in Svelte [svelt]
Ну и кейсы у вас Алексей, — врагу не пожелаешь 😂
источник

AP

Alexander Ponomarev in Svelte [svelt]
<img src="" onerror="mountComponent(this, $1)">
источник

AP

Alexander Ponomarev in Svelte [svelt]
)))
источник

AS

Alexey Schebelev in Svelte [svelt]
нетривиальненько =)
источник

AP

Alexander Ponomarev in Svelte [svelt]
ну самое простое туда скрипт теги вместо %name% вставлять =)

Но они не исполнятся если через innerHTML присваивать эту строку
источник

AP

Alexander Ponomarev in Svelte [svelt]
а onerror исполнится =)
источник

ON

Oleg N in Svelte [svelt]
сделать replace тегов на элементы, потом пройтись по этим элементам (querySelectorAll), и забиндить на каждый элменет свой компонент (для этого возможно понадобится варпер если свелт не умеет)
источник

AS

Alexey Schebelev in Svelte [svelt]
Да, всё верно - @marktanashchuk в личку примерно то же самое прислал уже. Но неттривальный вариант с <img onerror> (в сочетании с replaceWith) вместо элементов мне понравился необычностью =) Семантику только портит.
источник

AS

Alexey Schebelev in Svelte [svelt]
Ну и мой вариант примерно такой же - https://svelte.dev/repl/72608bd155f44473b422d845c31988f6?version=3.37.0
источник

МТ

Марк Танащук... in Svelte [svelt]
аве регексп
источник

ON

Oleg N in Svelte [svelt]
источник

ON

Oleg N in Svelte [svelt]
только компоненты что-то съехали 🧐
источник

МТ

Марк Танащук... in Svelte [svelt]
источник