зависимостей в $: ?
Увы, но похоже что нет. А ведь очень частый кейс. Прям ведь напрашивается чтобы в блоке $: {} циклические зависимости не вызывались
какие, например?
Ну, например чтобы в блоке реактивность вызывалась только при внешнем изменении переменных но не при их изменении внутри блока. Или, еще лучше, таким образом защищались только переменные вызывающие циклические ссылки. Такой же эффект дает и только одноразовый вызов реактивности внутри блока. Но Свелта такого нет. А жаль. кейс очень частый. Не помешало бы что-то вроде $$: { $: x = y*2 $: y = x/2 }
во-первых, это неочевидная и опасная логика и, как тут любят говорить, выстрел себе в ногу, ну а во-вторых, есть ещё куча всего, чего не помешало бы свелту (в т.ч. исправить то, что есть), но воз и ныне там.
Это весьма очевидная и сама собой напрашивающаяся логика. Как раз наоборот, циклические зависимости, которые Свелт несмотря на все свои попытки, убрать полностью не может, несравненно больший шанс выстрелить себе в ногу. В результате кто-то уже писал что в сложных проектах приходится отказываться от $: Что касается что не помешало бы Свелту, то что да то да. И исправления и дополнения и сахар. В той же Малине очень много приятного сахара.
я больше проблем ловил с #each'ами, сторами и let:
Ух! А с let какие проблемы?
с реактивностью
А есть кейс?
Хотите презабавнейшую штуку? https://svelte.dev/repl/711e915fa7f9499b95ed00cbaba89f69?version=3.44.3
в малине по 2 вызывается: https://malinajs.github.io/repl/#/share/jPvavVxqWZ6
О! Вот она реактивность белого человека. Такое поведение и интуитивно и ожидаемо.
А что тут должно отличаться с свелтом? Я скопировал этот код, вставил в репл свелта, заменил $: x, xChange на $: x, xChange(), и всё работает одинаково.
в Свелт, при изменении Y, не срабатвает xChange, а ведь x изменился
Ага, понял. Я-то просто увидел, что бизнес-логика отрабатывает корректно (инпуты обновляются), а тут, оказывается, всё страннее.
Обсуждают сегодня