Size: a a a

2020 August 13

🅅🄺

🅅aleriy 🄺obzar in ☄️ effector
но не совсем стормап
источник

🅅🄺

🅅aleriy 🄺obzar in ☄️ effector
Дима был прав в том, что описание дескриптора вне вьюхи не имеет смысла в данном случае
источник

🅅🄺

🅅aleriy 🄺obzar in ☄️ effector
так как в отрыве от вьюхи этот дескриптор несполезен
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
from earth
ну да, айдишники заводить...
не обязательно, но суть всё равно останется та же

dynamic typing status тоже с отменой
источник

🅅🄺

🅅aleriy 🄺obzar in ☄️ effector
пока анализировал эти селекторы, пришла в голову мысль, что в эффекторе ленивые вычисления вроде как и не нужны что ли
источник

DS

Dmitriy Shuleshov in ☄️ effector
Интересно а как в форесте реализована выключение вычислений семейства связанных юнитов🤔
route?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🅅aleriy 🄺obzar
пока анализировал эти селекторы, пришла в голову мысль, что в эффекторе ленивые вычисления вроде как и не нужны что ли
а можешь развернуть мысль?)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitriy Shuleshov
Интересно а как в форесте реализована выключение вычислений семейства связанных юнитов🤔
route?
ага
источник

🅅🄺

🅅aleriy 🄺obzar in ☄️ effector
🚀🔬 🚀🔬🚀🔬
а можешь развернуть мысль?)
я еще продолжаю об этом думать :)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitriy Shuleshov
Интересно а как в форесте реализована выключение вычислений семейства связанных юнитов🤔
route?
но там есть одна неопределённость, фактически route выступает одновременно как носитель дом-нод (который должен быть деактивирован если не виден) и как сервис бизнес-логики (который желательно не деактивировать чтобы не потерять часть событий)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
и какой именно аспект окажется важнее на практике пока не известно, поэтому я готовлюсь к обоим вариантам
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
вообще одним из самых важных качеств, которое требует разработка фореста это готовность к тому что всё окажется совсем не тем, чем кажется) уже не раз так было и ещё не раз так будет
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
к примеру, прямо сейчас переделываю breadth first порядок применения апдейтов к дом нодам на depth first: раньше breadth first был лишь странным визуальным артефактом (в этом видео видно как сначала применяются все первые уровни, затем все вторые и т.д.) но теперь оказалось что с breadth first принципиально не совместима гидрация html
источник

ф

фильтруй мысли... in ☄️ effector
from earth
Пока не очень понимаю, как лучше эффект "отменить" или проигнорировать, когда идёт новый запрос

https://share.effector.dev/QPIbOsCd

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
к примеру, прямо сейчас переделываю breadth first порядок применения апдейтов к дом нодам на depth first: раньше breadth first был лишь странным визуальным артефактом (в этом видео видно как сначала применяются все первые уровни, затем все вторые и т.д.) но теперь оказалось что с breadth first принципиально не совместима гидрация html
и такие повороты сейчас на каждом шагу) постоянно приходится останавливаться и думать как делать дальше и что вообще происходит
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitriy Shuleshov
Как то обидно было что мое решение запутанное((
Думал раз мое такое, то открою код а там пару строк((( пару часов вникал своими мозгами уточки.

Вот переделал твой пример. Корректно работает? Так как ты ожидал?
https://share.effector.dev/vmdjSFm6
Кстати в случае использовании хука, когда компонент в котором используется селектнутый стор маунтишь\анмаунтишь перевыполняется мап, о чем говорит растущий счетчик в колонке. Как мне кажется это нужно как-то решать. В моем решении кажется именно этого бага нету.

Идея conditionMap в том что он принимает стор, колбек для выборки и буллевый стор. Выполняет пересчет псевдомапнутого стора только когда буллевый стор === true. В примере выше я поставил стор $showSelector, но для изначального вопроса удобно поставлять Gate.status. Насколько я вижу можно еще расширить этот метод поставляемыми сторами от Gate.state, что б покрыть keys от useStoreMap.

@ZeroBias будет интересно твое мнение, где я накосячил. И если нет то зачем понадобился стор мап
кстати можно обойтись без merge
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Dmitriy Shuleshov
Как то обидно было что мое решение запутанное((
Думал раз мое такое, то открою код а там пару строк((( пару часов вникал своими мозгами уточки.

Вот переделал твой пример. Корректно работает? Так как ты ожидал?
https://share.effector.dev/vmdjSFm6
Кстати в случае использовании хука, когда компонент в котором используется селектнутый стор маунтишь\анмаунтишь перевыполняется мап, о чем говорит растущий счетчик в колонке. Как мне кажется это нужно как-то решать. В моем решении кажется именно этого бага нету.

Идея conditionMap в том что он принимает стор, колбек для выборки и буллевый стор. Выполняет пересчет псевдомапнутого стора только когда буллевый стор === true. В примере выше я поставил стор $showSelector, но для изначального вопроса удобно поставлять Gate.status. Насколько я вижу можно еще расширить этот метод поставляемыми сторами от Gate.state, что б покрыть keys от useStoreMap.

@ZeroBias будет интересно твое мнение, где я накосячил. И если нет то зачем понадобился стор мап
источник

c⁣

createStore<🦉>... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
к примеру, прямо сейчас переделываю breadth first порядок применения апдейтов к дом нодам на depth first: раньше breadth first был лишь странным визуальным артефактом (в этом видео видно как сначала применяются все первые уровни, затем все вторые и т.д.) но теперь оказалось что с breadth first принципиально не совместима гидрация html
вот это внезапно
источник

ф

фильтруй мысли... in ☄️ effector
from earth
Пока не очень понимаю, как лучше эффект "отменить" или проигнорировать, когда идёт новый запрос

https://share.effector.dev/QPIbOsCd

— Когда в оба инпута введено значение, надо отправить запрос
— когда значение меняется, надо отправить новый запрос и проигнорировать (или отменить) старый
— когда одно из значений пустое, тоже надо отменить запрос
по сути тебе просто надо фильтрануть fx.done, проверив, актуален ли его результат... сравнить переданные в эффект параметры с текущими данными
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createStore<🦉> ⁣
вот это внезапно
это кстати связано с возможностями, которые предоставляет forest) в библиотеке есть возможность обновлять одни текстовые ноды, не затрагивая соседние

spec({text: ['static + ', dynamic]})

то есть одна html нода может иметь несколько текстовых нод внутри (реакт например всегда юзает только одну и обновляет весь контент целиком), а при гидрации разделения на текстовые ноды ещё нет, весь текст — непрерывный, поэтому если текстовая нода загрузилась раньше её соседа слева, то у неё просто нет никакой возможности узнать, сколько у неё соседей в принципе, поэтому нужно форсировать загрузку по порядку появления в html, что и даётся с помощью depth first
источник