Size: a a a

2020 November 17

DK

Dmitry Kurmanov in Svelte [svelt]
Misha Zamkevich
В твоём примере — нет.

Вот пример где будет:

https://svelte.dev/repl/bc8f3e358bf2435d8337e48ac321da0b?version=3.29.7
спасибо уловил разницу
источник

ON

Oleg N in Svelte [svelt]
$: name = (a, b) => a + b;

зачем свелт пересоздает функцию на каждое измненение, она же не меняется...
источник

ON

Oleg N in Svelte [svelt]
Oleg N
$: name = (a, b) => a + b;

зачем свелт пересоздает функцию на каждое измненение, она же не меняется...
в итоге инвалидейт всегда срабатывает, т.к. {} != {} новая ф-ия всегда не равна предыдущей.

свелт не распознает что это ф-ия, работает как с обычной переменной
источник

AP

Alexander Ponomarev in Svelte [svelt]
Oleg N
в итоге инвалидейт всегда срабатывает, т.к. {} != {} новая ф-ия всегда не равна предыдущей.

свелт не распознает что это ф-ия, работает как с обычной переменной
зато все очевидно работает)
источник

АН

Артём Никитин... in Svelte [svelt]
Dan Kozlov
Странный спор вышел, export let в обычном js — это плейсхолдер для значения, передаваемого извне. Можно сделать export let a = {}, это будет единый на все остальные модули объект, который ты откуда угодно можешь менять.

Это же пропсы один в один. Единственная семантика, которая здесь меняется для меня — это что модуль синглтон, а компонентов может быть много. Но это мягко говоря незначительная деталь.
Ну так это же прописные истины. Передаёшь ссылку и её меняешь где угодно. Как это к передаче пропсов (значений, не ссылок) в компонент относится? Мы говорим о передаче аргумента в конструктор и сохранение переданного аргумента в переменную, но почему-то с пометкой экспорт, хотя значение сюда передано, а не передаётся. Мне-то всё равно. Пускай маму называют папой. Но где логика?
источник

AP

Alexander Ponomarev in Svelte [svelt]
Артём Никитин
Ну так это же прописные истины. Передаёшь ссылку и её меняешь где угодно. Как это к передаче пропсов (значений, не ссылок) в компонент относится? Мы говорим о передаче аргумента в конструктор и сохранение переданного аргумента в переменную, но почему-то с пометкой экспорт, хотя значение сюда передано, а не передаётся. Мне-то всё равно. Пускай маму называют папой. Но где логика?
логику уже объяснили что она объявлена как export let чтобы её могли снаружи переприсвоить
источник

DK

Dan Kozlov in Svelte [svelt]
Артём Никитин
Ну так это же прописные истины. Передаёшь ссылку и её меняешь где угодно. Как это к передаче пропсов (значений, не ссылок) в компонент относится? Мы говорим о передаче аргумента в конструктор и сохранение переданного аргумента в переменную, но почему-то с пометкой экспорт, хотя значение сюда передано, а не передаётся. Мне-то всё равно. Пускай маму называют папой. Но где логика?
Module1.js


export let prop = {},
 fn = () => console.log(prop)


Module2.js


import {prop, fn} from "./Module1.js"

prop.key = 12345;
fn();


Я хз, но на мой взгляд это выглядит как свелтовские пропы, 1 в 1. Для меня семантика экспорта не меняется абсолютно.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Oleg N
$: name = (a, b) => a + b;

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

PM

Pavel 🦇 Malyshev in Svelte [svelt]
это очень важно, если функция не чистая
источник

ON

Oleg N in Svelte [svelt]
Pavel 🦇 Malyshev
чтобы затригерить изменения связанных с ней частей
можно затригерить, но не пересоздавать
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
я постоянно использую этот прием
источник

AP

Alexander Ponomarev in Svelte [svelt]
Pavel 🦇 Malyshev
чтобы затригерить изменения связанных с ней частей
а зачем? если там замыкания то они и так актуальные внутри)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
а зачем? если там замыкания то они и так актуальные внутри)
значения актуальные, а рендера не будет
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Oleg N
можно затригерить, но не пересоздавать
это как?
источник

ON

Oleg N in Svelte [svelt]
Pavel 🦇 Malyshev
это как?
при компиляции проверять если выражение - ф-ия, то инвалидейт будет пустой
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
{#each items as item}
   <div>{func(item)}</div>
{/each}

<script>
  let foo, bar, baz, quux;

  $: func = item => item + foo + bar + baz + quux;
</script>
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Oleg N
при компиляции проверять если выражение - ф-ия, то инвалидейт будет пустой
в смысле пустой?
источник

IV

Ivan Volodin in Svelte [svelt]
Всем доброго дня. Простите за возможно глупый вопрос. Но как в VS Code добиться, чтобы в *.svelte файлах работал css class automplete из подключенных css файлов?
источник

ON

Oleg N in Svelte [svelt]
Pavel 🦇 Malyshev
{#each items as item}
   <div>{func(item)}</div>
{/each}

<script>
  let foo, bar, baz, quux;

  $: func = item => item + foo + bar + baz + quux;
</script>
в коде выходит что-то типа:
$invalidate(5, func = item => item + foo + bar + baz + quux)
т.е. каждый раз генерится та же самая ф-я
источник

ON

Oleg N in Svelte [svelt]
Pavel 🦇 Malyshev
в смысле пустой?
например $invalidate(5, NaN) или т.п.
источник