Size: a a a

2020 November 20

МТ

Марк Танащук... in Svelte [svelt]
В сорс мапах о пропсах не должно ж быть информации🤔
источник

МТ

Марк Танащук... in Svelte [svelt]
Наверное
источник

МТ

Марк Танащук... in Svelte [svelt]
Но можно в дев режиме посмотреть исходники компонентов
источник

МТ

Марк Танащук... in Svelte [svelt]
Там пропсы точно есть, и с комментариями
источник

Б

Богдан in Svelte [svelt]
Alexander Ponomarev
Ну извините, вы зачем то даете дифф вручную самому применять. Если вы понапишите автоматическое правильное применение этого дифа для любого случая жизни, то у вас получится реакт дом.

В реакте нет работы с дифом напрямую и нет работы с домом напрямую. Потому что он собрал все изменения которые произошли пока клик погружался до таргета и поднимался до документа, а затем применил к дому за 1 проход.

Что будет у вас если висит обработчик 'change' на инпуте, а потом обработчик 'change' на форме выше. Вы из одного места уже будете видеть примененные изменения в другом месте. А если вам нужно что-то обмерить (getBoundingClientRect) то ваш дом уже инвалидирован неатомарными изменениями и вы будете вызывать форс рефлоу.
Если я правильно понимаю то речь идет о батчинге изменений. Ок, в 22 строчках кода этого нет но вот еще несколько строчек для враппера над синхронной функцией actualize() которая вызывает diff дерева компонентов
let Timer = null;
const asyncActualize = () => {
if (Timer === null) {
  Timer = setTimeout(() =>  {
   Timer = null;
   actualize();
 })
}
}
и вот пожалуйста - diff и коммит изменений в дом-дерево только после срабатывания всех обработчиков при всплытии события (а также после всех изменений данных)
источник

AP

Alexander Ponomarev in Svelte [svelt]
Богдан
Если я правильно понимаю то речь идет о батчинге изменений. Ок, в 22 строчках кода этого нет но вот еще несколько строчек для враппера над синхронной функцией actualize() которая вызывает diff дерева компонентов
let Timer = null;
const asyncActualize = () => {
if (Timer === null) {
  Timer = setTimeout(() =>  {
   Timer = null;
   actualize();
 })
}
}
и вот пожалуйста - diff и коммит изменений в дом-дерево только после срабатывания всех обработчиков при всплытии события (а также после всех изменений данных)
ох, костыльные наработки =)

setTimeout точно не подойдет, реакт умеет тоже самое но синхронно.

а потом будут нужны лайфсайкл хуки...

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

если вам удобно этим пользоваться то пользуйтесь, но далеко на таком не уехать, а в командной разработке тем более. Довешивая рюшечки, которых не хватает вы будет постоянно менять каркас из-за дизайн решений типа "сходу добавлю setTimeout"

ну и это полный отказ от всего что уже наработано по библиотекам любой состоявшейся рендер либы из большой тройки и их догоняющих

тот же свелт на несколько порядков продуманнее рендера из 22 строчек
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
𝚋𝚘𝚛𝚘𝚟
Реквестирую пояснение за архитектуру svelte: как получить значения пропсов из DOM? Пример: расширение для для сайта, сделанного на svelte, нужно по-быстрому что-то вытащить. То есть если есть virtualdom и тд, то в реакте это делается через <element>.__ReactInternalInstance, в angular через <element>.__ngContext__, а как (и можно ли) в Svelte?
Необычный вопрос. Посмотри в сторону: __svelte_meta
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
Необычный вопрос. Посмотри в сторону: __svelte_meta
Что он делает и где можно посмотреть?
источник

МТ

Марк Танащук... in Svelte [svelt]
Только исходники?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Что он делает и где можно посмотреть?
Это для девтулзов как и то, о чем писали выше. Правда суть вопроса не ясна, ведь эта штука только для дев-билдов
источник

AP

Alexander Ponomarev in Svelte [svelt]
может человек фанится и делает свои девтулзы
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
может человек фанится и делает свои девтулзы
Наверное да
источник

Б

Богдан in Svelte [svelt]
Alexander Ponomarev
ох, костыльные наработки =)

setTimeout точно не подойдет, реакт умеет тоже самое но синхронно.

а потом будут нужны лайфсайкл хуки...

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

если вам удобно этим пользоваться то пользуйтесь, но далеко на таком не уехать, а в командной разработке тем более. Довешивая рюшечки, которых не хватает вы будет постоянно менять каркас из-за дизайн решений типа "сходу добавлю setTimeout"

ну и это полный отказ от всего что уже наработано по библиотекам любой состоявшейся рендер либы из большой тройки и их догоняющих

тот же свелт на несколько порядков продуманнее рендера из 22 строчек
Вообще изначально речь шла про решение для тех кто привык писать на jquery и работать с дом-деревом напрямую и не хотят прикручивать всякие системы сборки или завязываться на сложные фреймворки которые быстро устаревают - то есть быть как можно ближе к нативному дом-дереву чтобы можно было еще 10 лет писать легаси. Можно конечно взять lit-html но можно сделать еще проще и заюзать простой дифф который я предложил в 22 строчках кода. Кстати лайвцикл-коллбеки вроде маунта, апдейта и унмаунта уже включены. Если есть идеи как можно написать декларативный рендер с меньшим количеством строчек кода то я буду рад услышать)

Мой основной поинт в том что можно вполне себе удобно разрабатывать приложения без 25к строчек кода реакта. Да это не 0 строчек кода в сравнении с разработкой на веб-компонентах. Но c веб-компонентами и нет автоматической синхронизации состояния с дом-деревом и все приходится делать руками. А тут я предложил всего лишь маленький хелпер в 22 или 30 строк кода (если учитывать асинхронную актуализацию) и мы получем удобство автоматической синхронизации состояния в дом-дерево и декларативные шаблоны которые проще и удобнее чем jsx. И например мне этого хелпера вполне хватает чтобы заменить реакт при разработке довольно сложного spa
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
ох, костыльные наработки =)

setTimeout точно не подойдет, реакт умеет тоже самое но синхронно.

а потом будут нужны лайфсайкл хуки...

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

если вам удобно этим пользоваться то пользуйтесь, но далеко на таком не уехать, а в командной разработке тем более. Довешивая рюшечки, которых не хватает вы будет постоянно менять каркас из-за дизайн решений типа "сходу добавлю setTimeout"

ну и это полный отказ от всего что уже наработано по библиотекам любой состоявшейся рендер либы из большой тройки и их догоняющих

тот же свелт на несколько порядков продуманнее рендера из 22 строчек
Да ладно, че ты прицепился. Нормальный  хелпер, если не хочется юзать сторонние решения. Возможность в любом момент дописать под задачу тоже бывает полезной. В конечном итоге важнее чтобы ни разработчик, ни проект не страдали и реакт или даже свелт тут также не панацея. Очень много проектов где люди страдают именно из-за реакт, а взяли бы условный Vue или Svelte и им было бы намного проще жить. В других проектах может оказаться наоборот. Короче всегда зависит от специфики проекта и подходов.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Поправка: только девелоперы ангуляра страдают всегда 😄
источник

DK

Dmitry Kurmanov in Svelte [svelt]
Ахах
источник

AS

Alexey Schebelev in Svelte [svelt]
а девелоперы $mol достигли нирваны и вообще больше не страдают
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexey Schebelev
а девелоперы $mol достигли нирваны и вообще больше не страдают
Они слились воедино с Силой и больше их никто не видел 😄
источник

AS

Alexey Schebelev in Svelte [svelt]
архитекторы матрицы пишут на $mol
источник

AS

Alexey Solovyov in Svelte [svelt]
Pavel 🦇 Malyshev
Да ладно, че ты прицепился. Нормальный  хелпер, если не хочется юзать сторонние решения. Возможность в любом момент дописать под задачу тоже бывает полезной. В конечном итоге важнее чтобы ни разработчик, ни проект не страдали и реакт или даже свелт тут также не панацея. Очень много проектов где люди страдают именно из-за реакт, а взяли бы условный Vue или Svelte и им было бы намного проще жить. В других проектах может оказаться наоборот. Короче всегда зависит от специфики проекта и подходов.
Плюс. Отдельно коробит, когда люди берут реакт просто потому что это реакт, ну типа круто же.
источник