Size: a a a

2020 October 11

AP

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

AP

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

MZ

Misha Zamkevich in Svelte [svelt]
Misha Zamkevich
То есть либо:

$store.push(‘foo’)
$store = $store

либо

$store = […store, ‘foo’]
На память

Дополню про не очевидную реактивность.

Повторное присвоение строки не реактивно:

$: console.log($store)
$store = 1      →    1
$store = 1      →

Повторное присвоение объектов, массивов и функций — реактивно:

$: console.log($store)
$store = [1]      →    Array(1)[ 1 ]
$store = [1]      →    Array(1)[ 1 ]
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
На память

Дополню про не очевидную реактивность.

Повторное присвоение строки не реактивно:

$: console.log($store)
$store = 1      →    1
$store = 1      →

Повторное присвоение объектов, массивов и функций — реактивно:

$: console.log($store)
$store = [1]      →    Array(1)[ 1 ]
$store = [1]      →    Array(1)[ 1 ]
Так все очевидно же, нет?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Реактивность срабатывает только когда значение переменной меняется. Ключевое тут «только» и «значение». Если совсем приземлённо если срабатывает условие newVal !== prevVal
источник

RT

Roman Telichkin in Svelte [svelt]
Всем привет! Кто-нибудь в Sapper'е сталкивался с такой проблемой: при использовании кириллических символов  в роутах, не работает SSR? Если сталкивались, то как справлялись?

Нужно использовать роуты типа: мой-проект.рф/пользователи/<id>
источник

RT

Roman Telichkin in Svelte [svelt]
Roman Telichkin
Всем привет! Кто-нибудь в Sapper'е сталкивался с такой проблемой: при использовании кириллических символов  в роутах, не работает SSR? Если сталкивались, то как справлялись?

Нужно использовать роуты типа: мой-проект.рф/пользователи/<id>
Sapper вот здесь матчит сгенерированные паттерны с тем путем, который пришел в реквесте: https://github.com/sveltejs/sapper/blob/f49100d60f1c3b9c8a843544bcd7262466891f17/runtime/src/server/middleware/get_server_route_handler.ts#L66

Паттерны генерируются с помощью encodeURI: https://github.com/sveltejs/sapper/blob/141f65fd4342b339a7f487cf5d3fdce3609128f7/src/core/create_manifest_data.ts#L313

Но путь, который находится в реквесте, никогда не энкодится. Проблема решилась добавлением вот такого middleware в src/server.js:
(req, _, next) => {
 req.path = encodeURI(req.path);
 next();
}
источник
2020 October 12

MZ

Misha Zamkevich in Svelte [svelt]
Pavel 🦇 Malyshev
Так все очевидно же, нет?
Нуууууу нет)))
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
Нуууууу нет)))
Тогда достаточно просто ответить на вопрос и станет очевидно:

1 !== 1 // false
[1] !== [1] // true
источник

MZ

Misha Zamkevich in Svelte [svelt]
Pavel 🦇 Malyshev
Тогда достаточно просто ответить на вопрос и станет очевидно:

1 !== 1 // false
[1] !== [1] // true
Это настолько не очевидно, что я не могу найти это на learn.javascript

Можешь найти объяснение причины такого поведения?
источник

MZ

Misha Zamkevich in Svelte [svelt]
Misha Zamkevich
Это настолько не очевидно, что я не могу найти это на learn.javascript

Можешь найти объяснение причины такого поведения?
UP: Ведь он показывает равенство если сравнить объекты по ссылке, но реактивность в этом случае срабатывает.

https://svelte.dev/repl/e5f9b3f5b34f491fa01ade69df65b19b?version=3.29.0
источник

MZ

Misha Zamkevich in Svelte [svelt]
(Хороший вопрос для собеса 😏)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
Это настолько не очевидно, что я не могу найти это на learn.javascript

Можешь найти объяснение причины такого поведения?
Что именно не можешь найти? Не пойму честное слово
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
UP: Ведь он показывает равенство если сравнить объекты по ссылке, но реактивность в этом случае срабатывает.

https://svelte.dev/repl/e5f9b3f5b34f491fa01ade69df65b19b?version=3.29.0
immutable: true же
источник

MZ

Misha Zamkevich in Svelte [svelt]
Госпаде
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Напиши в компоненте <svelte:options immutable={true} />
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Значение объекта/массива это ссылка. Если ссылка изменилась - реактивность, если нет, то нет. В случае с [1] !== [1] это всегда новая ссылка, значит новое значение, значит реактивность
источник

MZ

Misha Zamkevich in Svelte [svelt]
Pavel 🦇 Malyshev
Напиши в компоненте <svelte:options immutable={true} />
А почему просто опция не срабатывает? ( в пресетах)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
А почему просто опция не срабатывает? ( в пресетах)
Не в курсе. Это браузерная версия компилятора. Некоторые вещи там могут работать не так
источник

MZ

Misha Zamkevich in Svelte [svelt]
Та ладно, приду домой разгребу это все, уже затрахался с телефона )))
источник