Size: a a a

2020 December 02

PM

Pavel 🦇 Malyshev in Svelte [svelt]
который в свою очередь говорит свелту что надо триггерить ТОЛЬКО если ссылка изменилась
источник

AI

Aleksey Immũzov in Svelte [svelt]
Pavel 🦇 Malyshev
я же четко написал Если immutable: false
Да, сорян, проглядел, но вопрос был именно про принудительно подсказать о том что переменная изменилась. Как я понимаю это в режиме immutable:true нереализуемо, так?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Aleksey Immũzov
Да, сорян, проглядел, но вопрос был именно про принудительно подсказать о том что переменная изменилась. Как я понимаю это в режиме immutable:true нереализуемо, так?
принудительно при мутации это some = some, но очевидно же если ты мутируешь объекты, то immutable: true тебе не нужен. получается ты пытаешься соврать свелту, типа “я использую только иммутабильность”, а сам за его спиной наяриваешь мутации и при этом хочешь, чтобы все работало 🙃
источник

AI

Aleksey Immũzov in Svelte [svelt]
Pavel 🦇 Malyshev
принудительно при мутации это some = some, но очевидно же если ты мутируешь объекты, то immutable: true тебе не нужен. получается ты пытаешься соврать свелту, типа “я использую только иммутабильность”, а сам за его спиной наяриваешь мутации и при этом хочешь, чтобы все работало 🙃
Агаг 😛 Я хочу в виде исключений мутировать что-то, а в остальном дать ему полное управление, не хотелось на весь компонент вешать опцию immutable:false.
источник

AI

Aleksey Immũzov in Svelte [svelt]
Спасибо тебе что помог разобраться, хорошего дня 😉
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Pavel 🦇 Malyshev
принудительно при мутации это some = some, но очевидно же если ты мутируешь объекты, то immutable: true тебе не нужен. получается ты пытаешься соврать свелту, типа “я использую только иммутабильность”, а сам за его спиной наяриваешь мутации и при этом хочешь, чтобы все работало 🙃
По статистике 99% разработчиков наяривают мутации и только 5% из них открыто признаются в этом XD
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Aleksey Immũzov
Агаг 😛 Я хочу в виде исключений мутировать что-то, а в остальном дать ему полное управление, не хотелось на весь компонент вешать опцию immutable:false.
она висит по умолчанию) обычно с таких случаях мутируют внутрянку объекта, а потом один раз создают новую ссылку:

obj.foo = 1;
obj.bar.baz = 2;


obj = { …obj };
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
можно сказать что это принудительный триггеринг при immutable: true
источник

AI

Aleksey Immũzov in Svelte [svelt]
Dmitry Kurmanov
По статистике 99% разработчиков наяривают мутации и только 5% из них открыто признаются в этом XD
Ты так говоришь как будто мутации это плохо. Спредить на любое чихание — вот это действительно плохо.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Dmitry Kurmanov
По статистике 99% разработчиков наяривают мутации и только 5% из них открыто признаются в этом XD
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Aleksey Immũzov
Ты так говоришь как будто мутации это плохо. Спредить на любое чихание — вот это действительно плохо.
Я люблю мутации, я из тех 5% :)
источник

AI

Aleksey Immũzov in Svelte [svelt]
Pavel 🦇 Malyshev
она висит по умолчанию) обычно с таких случаях мутируют внутрянку объекта, а потом один раз создают новую ссылку:

obj.foo = 1;
obj.bar.baz = 2;


obj = { …obj };
Я прост не запаривался до того момента пока не словил лишние реактивные вычисления на сквозном bind (через компоненты), вчера вопрос задавал, включил для всего проекта immutable:true, в итоге всего несколько мест проблемных нашлось, в остальном всё иммутабельно оказалось 🙂
источник

AI

Aleksey Immũzov in Svelte [svelt]
Dmitry Kurmanov
Я люблю мутации, я из тех 5% :)
Обнимемся? 🙂
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Aleksey Immũzov
Обнимемся? 🙂
:)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
я тоже раньше не любил иммутабильность, однако есть разница писать мутации в какой-нить Ractive, где есть спец методы и концепция keypath и фреймворк всегда знает что мы мутируем, без прокси и defineProperties (аля Vue):

this.push(‘foo.bar.baz’, item);
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
keypath были супер удобной штукой, но когда пришла тема с типизацией стало понятно, что такие вещи нереально типизировать.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
поэтому все перешли обратно к работе с js объектами напрямую, а js не дает никаких средств понять что изменилось в мутированном объекте
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
спасает только копирование ссылок для вложенных объектов
источник

DK

Dmitry Kurmanov in Svelte [svelt]
А чем плохо весь рутовый объект заново передать? Скорость?
источник

UR

Uncle Robot in Svelte [svelt]
Pavel 🦇 Malyshev
если речь про свелт сторы, тогда прям его и юзайте:

import { user } from ‘./store.js’;



{#each $user as item}

{/each}
Благодарю за подсказку!

не обновляется :(
Делал по этому примеру https://svelte.dev/tutorial/auto-subscriptions
источник