Size: a a a

2020 July 10

🦜

🦜 in ☄️ effector
Dmitriy Shuleshov
те если БЕМ это тепло, ты решил что решедоу?)
Яндексом пахнуло
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createStore<🦉> ⁣
Это же лаг
у него правильное мышление,  проверяет концепцию на прочность)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
в этой непрерывно меняющейся очереди и была одна из сложностей имплементации
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
очередь задач динамическая и меняется непрерывно прямо в процессе работы, если какая-то задача успела  поменяться раньше чем до неё дошла очередь, то она обновится прямо в очереди, если же  необходимость в задаче отпадает, то она просто изымается из очереди
а, не знал) этож наверное капец накодить. Думал всё проще, тупо все в конец очереди, что добавление, что удаление
источник

c⁣

createStore<🦉>... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
а, не знал) этож наверное капец накодить. Думал всё проще, тупо все в конец очереди, что добавление, что удаление
Это ж вроде одна из главных фич асинхронного рендера
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
а, не знал) этож наверное капец накодить. Думал всё проще, тупо все в конец очереди, что добавление, что удаление
там ещё веселее, задачи не просто в очереди, они находятся внутри групп задач
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
чтобы внесение правок в отдельный dom-элемент происходило подряд
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
createStore<🦉> ⁣
Это ж вроде одна из главных фич асинхронного рендера
мой пример тоже асинхронный, просто думал всё проще, а тут боюсь представить что внутри))
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
Спасибо за объяснение)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
чтобы внесение правок в отдельный dom-элемент происходило подряд
так как именно в больших списках становится заметно, выполняются дом-команды в очереди подряд или же они прерываются чем-то ещё
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
мой пример тоже асинхронный, просто думал всё проще, а тут боюсь представить что внутри))
https://github.com/zerobias/effector/blob/master/src/forest/plan.ts#L201 этот файл — имплементация очереди с приоритетами и группами
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
execQueue — выполнение очереди, функция большая, но если присмотреться, то там один и тот же код дублирован трижды, по каждому приоритету
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
pushOpToQueue — добавление задачи на выполнение в очередь
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
createAsyncValue — специфичная абстракция поверх очереди, которая реализует лайфсайкл, применяется довольно редко https://t.me/effector_ru/114164
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
приоритетов у операции три — props | tree | data (указаны в порядке очерёдности выполнения) https://github.com/zerobias/effector/blob/master/src/forest/plan.ts#L210
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
props — это операции с отдельными дом-элементами — изменение стиля, атрибута и всё в таком духе
tree — операции затрагивающие вставку и удаление дом нод из дерева
data — операции с данными, любые чистые вычисления типа маунта новых инстансов и запуска функций у combine
источник

NM

Nikolay 🦸‍♂️🍔 Morozo... in ☄️ effector
data понимаю самые приоритетные?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
в отличии от эффектора, в котором при попадании задачи более высокого приоритета в  очередь она запускается первой, в forest приоритеты выполняются до упора пока есть время — если начали вставлять элементы в dom, то лучше все вставки закончить за один квант времени, чтобы минимизировать repaint/reflow
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikolay 🦸‍♂️🍔 Morozov
data понимаю самые приоритетные?
наоборот, самый низкий приоритет
источник

🦜

🦜 in ☄️ effector
Предлагаю в ответы про стейт менеджер и рендер написать effector и forest. Второе опционально
источник