Size: a a a

2020 December 20

f

fivem in Svelte [svelt]
Привет, а кто как борется в sapper с тем, что все сторы, инстансы каких-либо классов, переменные из context="module" шарятся между всеми пользователями?

Справа server.js который генерит sapper и запускает  через node
источник

f

fivem in Svelte [svelt]
похоже, что только генерировать всё в статические html файлы) Или все же есть способ?

Да, в браузере там норм загрузится конечно, с пустым стором и все ок, но в разметке будет инфа других пользователей
источник

AP

Alexander Ponomarev in Svelte [svelt]
fivem
Привет, а кто как борется в sapper с тем, что все сторы, инстансы каких-либо классов, переменные из context="module" шарятся между всеми пользователями?

Справа server.js который генерит sapper и запускает  через node
забавно =)
источник

f

fivem in Svelte [svelt]
Alexander Ponomarev
забавно =)
да не очень )
источник

Д

Дима 🎈 in Svelte [svelt]
К Р А С И В О
источник

AP

Alexander Ponomarev in Svelte [svelt]
fivem
да не очень )
я думаю решением является не создавать сторы в context="module" а передавать их реактивным параметром в компоненты. причем для этого не подойдет свелт-контекст, потому что он не реактивен. Я хз видимо нужен свелт-контекст со стором в котором стор =)
источник

AP

Alexander Ponomarev in Svelte [svelt]
но это теория без практики, мб кто-то что-то лучше посоветует
источник

f

fivem in Svelte [svelt]
Alexander Ponomarev
я думаю решением является не создавать сторы в context="module" а передавать их реактивным параметром в компоненты. причем для этого не подойдет свелт-контекст, потому что он не реактивен. Я хз видимо нужен свелт-контекст со стором в котором стор =)
а я и не создаю стору в контекст модуле.
В контекст модуле, я для примера создал массив initDates
чтобы увидеть, что он тоже шарится. + инстанс класса (для примера) что инстанс тоже шарится.
источник

AP

Alexander Ponomarev in Svelte [svelt]
модули инициализируются только 1 раз, так устроена нода
источник

AP

Alexander Ponomarev in Svelte [svelt]
свелт тут не причем, вы получите такую же проблему везде и в реакте тоже
источник

AP

Alexander Ponomarev in Svelte [svelt]
и решение все равно передавать сервисы параметрами сверху в компонент, а не импортить их откуда-то. Сверху их нужно создавать заново для каждого нового вызова SSR
источник

AP

Alexander Ponomarev in Svelte [svelt]
вам нужно делать
const { head, html, css } = App.render({
 userService: new UserService(),
 userName: writable(''),
});
источник

AP

Alexander Ponomarev in Svelte [svelt]
короче можете забыть о переменных уровня модуля, либо вам нужно выгружать модули или убивать ноду для каждого SSR запроса
источник
2020 December 21

f

fivem in Svelte [svelt]
Alexander Ponomarev
вам нужно делать
const { head, html, css } = App.render({
 userService: new UserService(),
 userName: writable(''),
});
Согласен, свелт тут ни при чем, я ожидал, что sapper внутри что-то подобное и делает, рендерит с 0 дерево на каждый запрос и изолирует переменные приложения.
Хорошо, что заглянул в сборку, было интересно как он сторы сбрасывает, а он оказывается не сбрасывает + инстансы и переменные контекст модуля тоже не изолирует.
источник

A

Arushwl in Svelte [svelt]
Есть вот такой пример разделения ответственности сторов https://svelte.dev/repl/de62113013324e098edbe809d2473d2c?version=3.31.0
источник

A

Arushwl in Svelte [svelt]
Карусельки они такие
источник

FA

Filyus Ahmedyanov in Svelte [svelt]
кто-нибудь знает как передавать события через rest? примерно так, но так не работает:
<script>
function onKeyDown(event) {
 console.log(event);
}
const windowEvents = {
   "on:keydown": onKeyDown,
};
</script>
<svelte:window {...windowEvents}/>
источник

AU

Aleksander Usov in Svelte [svelt]
Filyus Ahmedyanov
кто-нибудь знает как передавать события через rest? примерно так, но так не работает:
<script>
function onKeyDown(event) {
 console.log(event);
}
const windowEvents = {
   "on:keydown": onKeyDown,
};
</script>
<svelte:window {...windowEvents}/>
На сервер, что-ли ?
источник

AU

Aleksander Usov in Svelte [svelt]
Или в обе стороны?
источник

A

Arushwl in Svelte [svelt]
Filyus Ahmedyanov
кто-нибудь знает как передавать события через rest? примерно так, но так не работает:
<script>
function onKeyDown(event) {
 console.log(event);
}
const windowEvents = {
   "on:keydown": onKeyDown,
};
</script>
<svelte:window {...windowEvents}/>
А зачем?
источник