Size: a a a

2020 December 17

DK

Dan Kozlov in Svelte [svelt]
Не большой спец. Вроде, это единственный способ вернуть infer-значение. Говорю ж, наощупь всё.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Dan Kozlov
Не большой спец. Вроде, это единственный способ вернуть infer-значение. Говорю ж, наощупь всё.
ладно, тоже попробую пощупать :)
спасибо за инфу
источник

AP

Alexander Ponomarev in Svelte [svelt]
Dan Kozlov
Не совсем. В ишаке там показана ситуация, когда я через проверку второй переменной знаю, что первая имеет определённый тип.
А тут речь именно про синтаксический сахар для сторов. Я так понимаю, он под капотом использует что-то вроде
type StoreValue<T> = T extends Readable<infer U> ? U : T
, и этот тип используется для каждого нового сахара, поэтому сужение типов не происходит при работе с шаблонами.
Эта строчка говорит что если какое-то T расширяет ридабл от U то тип равен U иначе T
источник

AP

Alexander Ponomarev in Svelte [svelt]
Соответственно StoreValue<Readable<object>> это просто object, а StoreValue<object> тоже просто object =)
источник

AP

Alexander Ponomarev in Svelte [svelt]
оно работает с нюансами только в случае T extends A | B | C ? ... : ... и всяких T extends any , T extends never
источник

n

neadmin in Svelte [svelt]
Всем доброго вечера!
Поделитесь мудростью, а лучше шаблончиком, дружбы Svelte и Redux.
При условии что SPA модульное - динамически подгружаются не только компоненты, но и бизнес-логика.
И соответственно, store должен все подхватывать... reducers должен пухнуть, а возможно, и middleware то же.
У меня уже каша в голове. 8й раз переписываю проект, и не могу добиться красивого результата.
источник

DK

Dan Kozlov in Svelte [svelt]
Alexander Ponomarev
Эта строчка говорит что если какое-то T расширяет ридабл от U то тип равен U иначе T
Да, я это понимаю. Я скорее о том, что я не очень шарю в деталях синтаксиса.
источник

DK

Dan Kozlov in Svelte [svelt]
neadmin
Всем доброго вечера!
Поделитесь мудростью, а лучше шаблончиком, дружбы Svelte и Redux.
При условии что SPA модульное - динамически подгружаются не только компоненты, но и бизнес-логика.
И соответственно, store должен все подхватывать... reducers должен пухнуть, а возможно, и middleware то же.
У меня уже каша в голове. 8й раз переписываю проект, и не могу добиться красивого результата.
Использование редакса — это легаси-требование или осознанный выбор?
источник

n

neadmin in Svelte [svelt]
Dan Kozlov
Использование редакса — это легаси-требование или осознанный выбор?
Осознанный выбор. Кусочек SPA - карта. На карте куча слоев. Составом и отображением слоев нужно управлять. Слои могут отображать данные из системы или из стороннего источника. Данные в слоях можно редактировать. Объекты в слоях имеют атрибутивную информацию, по которой нужно строить тематику (делать визуальную аналитику). Атрибутивная информация может браться как из системы, так и с внешних серверов. Могут динамически подгружаться модули провайдеров данных для слоев, или расширяющие или изменяющие работу базовых модулей.
источник

n

neadmin in Svelte [svelt]
Выходит очень сложный поток данных, который сложно контролировать.
Поэтому как средство централизации хранения данных и управления бизнес-логикой была выбрана архитектура Flux.
Свой велосипед изобретать не хочется, поэтому среди не привязанных к фреймверкам решений выбрали Redux.
источник

11

1 1 in Svelte [svelt]
а свелт вам зачем тогда?
источник

11

1 1 in Svelte [svelt]
начальство заставило? ;)
источник

n

neadmin in Svelte [svelt]
Нет, vanilla js уже проходили
Тяжелую артиллерию в виде Angular то же
Svelte - компонентный фреймверк, удобно разрабатывать модульные решения
источник

MG

Mike Golod in Svelte [svelt]
пока звучит страшно 😱
источник

n

neadmin in Svelte [svelt]
Svelte Store конечно отличная вещь, но они не позволяют однозначно организовать однонаправленный предсказуемый поток данных.
Redux это решает, и даже дружит со Svelte через svelte3-redux, в результате чего получается все тот же Svelte Store и компоненты заводятся с полпинка.
источник

n

neadmin in Svelte [svelt]
Подгрузка и, местами, замена компонентов решается через <svelte:component> и контейнер не связанный с Redux - тут все отлично.
источник

n

neadmin in Svelte [svelt]
Но буксую на Redux, так как через него должно идти все - и регистрация компонентов Svelte, и расширение безнес-логики.
Через сам Redux можно расширять Redux Store, через добавление новых корневых элементов со своим обработчиком Actions - reducer. Но reducer, согласно концепции Redux чистые функции, и лишь изменяют Redux Store на основании предыдущего состояния стора и пришедших с Action данных. Нужны ещё запросы к серверу, обработка данных или выполнение команд модулями, что решается через middleware, в частности redux-saga.
источник

n

neadmin in Svelte [svelt]
По отдельности все вроде бы понятно и красиво, но в совокупности... карточный домик в какой-то момент рушится вместо того что бы взмыть в воздух и засиять под эпическую музыку
источник

11

1 1 in Svelte [svelt]
я думаю большинство присутствующих согласятся, что идеологически редукс - это не svelte way.  тут ценится чтобы было меньше бойлерплейта и быстрее работало.
любой однонаправленный dataflow можно выразить в виде derived store.  
если сильно хочется отвязать dataflow от свелта, то технически возможно его использовать с какими-нибудь observable библиотеками: modx, rxjs и так далее.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Alexander Ponomarev
Эта строчка говорит что если какое-то T расширяет ридабл от U то тип равен U иначе T
а для чего там infer U ?
спс за инфу :)
источник