Size: a a a

2020 March 26

DD

Dmitry Dead in Svelte [svelt]
Если оно изменилось, это мутация
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Pavel 🦇 Malyshev
obj.foo.a = 2
тут нет изменения объекта obj
источник

DD

Dmitry Dead in Svelte [svelt]
Есть изменение его внутренностей
источник

DD

Dmitry Dead in Svelte [svelt]
Сравнения джса работает по ссылке
источник

DD

Dmitry Dead in Svelte [svelt]
Есть языки которые сравнивают по значению и отдадут тебе false
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Dmitry Dead
Есть изменение его внутренностей
это не его внутренности
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
он всего лишь хранит ссылку на объект foo
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
когда я сделаю так:

obj = { ...obj, bar: 3 }
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
объект foo не станет внутренностями нового объекта
источник

PM

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

DD

Dmitry Dead in Svelte [svelt]
Паш, да ты все верно говоришь
источник

DD

Dmitry Dead in Svelte [svelt]
Просто мое понимание оно не привязано конкретно к языку
источник

DD

Dmitry Dead in Svelte [svelt]
Но мне уже сказали что мутация это сравнение по ссылке
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
мы тут как бы jS обсуждаем в основном) ну и мутация - это изменение внутренней структуры объекта (в js все объекты) без изменения значения
источник

DS

Dmitry Semenov in Svelte [svelt]
Pavel 🦇 Malyshev
сторы вообще будут корректно отрабатывать только на клиенте. проблема не в них самих, а в том, что процесс SSR синхронен по своей сути. Поэтому нам и нужен preload, чтобы саппер точно знал какие асинхронные данные ему ждать.
окей. понял. тогда как посоветуешь лучше решить проблему data consistency между разными компонентами на одной странице?
источник

DD

Dmitry Dead in Svelte [svelt]
Pavel 🦇 Malyshev
мы тут как бы jS обсуждаем в основном) ну и мутация - это изменение внутренней структуры объекта (в js все объекты) без изменения значения
:)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
примеры мутаций:

let arr = [];

arr.push(1); // мутация
arr = [ ...arr, 1 ]; // нет

let obj = { a: 1 };
obj.a = 2; // мутация
obj = { ...obj, a: 2 }; // нет

let str = new String('hello world');
str.foo = 1; // тоже мутация

итд
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Dmitry Semenov
окей. понял. тогда как посоветуешь лучше решить проблему data consistency между разными компонентами на одной странице?
если какие-то данные юзаются в нескольких компонентах на одной странице и нужен железный SSR, то придется все прокидывать через пропсы к сожалению
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Sapper это для сайтов
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
имхо
источник