Size: a a a

2020 October 11

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
в forest можно получить значение дом ноды с помощью метода node, но там тоже пока надо кастить
источник

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
к примеру как нибудь так

const onNode = createEvent<HTMLButton>()
const node$ = restore(onNode, null)

h('button', {
 node: onNode
})

(код пока в качестве идеи, так как node скорее всего лишь один из многих эвентов-хуков лайфсайкла)
источник

l

lllla in ☄️ effector
Понял, спасибо
источник

l

lllla in ☄️ effector
@ZeroBias а как правильно рендерить списки в forest?
const $orders = createStore([{id: 1, title: ‘Lorem’}]);

list({
 source: $orders,
 key: ‘id’,
 fn({store}) { /* тут доставить title через store.map(() => {}) */}
})
источник

l

lllla in ☄️ effector
или можно легче?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
lllla
@ZeroBias а как правильно рендерить списки в forest?
const $orders = createStore([{id: 1, title: ‘Lorem’}]);

list({
 source: $orders,
 key: ‘id’,
 fn({store}) { /* тут доставить title через store.map(() => {}) */}
})
разделение стора по ключам это частая операция, поэтому есть метод remap, который принимает стор и ключ либо массив ключей

const [title, id]= remap(store, [
 'title',
 'id',
] as const)

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

list({
 source: $orders,
 key: 'id',
 fields: ['title'],
 fn({fields: [title]}) {}
})
источник

l

lllla in ☄️ effector
🚀🔬 🚀🔬🚀🔬
разделение стора по ключам это частая операция, поэтому есть метод remap, который принимает стор и ключ либо массив ключей

const [title, id]= remap(store, [
 'title',
 'id',
] as const)

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

list({
 source: $orders,
 key: 'id',
 fields: ['title'],
 fn({fields: [title]}) {}
})
🙏
источник

l

lllla in ☄️ effector
@ZeroBias напомни, плиз, это variant рендерит тег в зависимости от условия?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
lllla
@ZeroBias напомни, плиз, это variant рендерит тег в зависимости от условия?
variant — выбирает один из имеющихся вариантов, route — активирует один конкретный

route({
 source: $order,
 visible: ({hidden}) => !hidden,
 fn({store}) {

 }
})
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
variant — обёртка вокруг route
источник

l

lllla in ☄️ effector
🚀🔬 🚀🔬🚀🔬
variant — выбирает один из имеющихся вариантов, route — активирует один конкретный

route({
 source: $order,
 visible: ({hidden}) => !hidden,
 fn({store}) {

 }
})
Понял, принял
У меня просто есть лоадер и есть список. Сейчас это делаю через visible
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
преимущества route/variant:
они маунтят сразу несколько элементов — любое содержимое fn
пока инстансы не активны — их store апдейты не получает, сохраняя консистентность
источник

l

lllla in ☄️ effector
🚀🔬 🚀🔬🚀🔬
преимущества route/variant:
они маунтят сразу несколько элементов — любое содержимое fn
пока инстансы не активны — их store апдейты не получает, сохраняя консистентность
ну я использую route для построения страниц
источник

l

lllla in ☄️ effector
lllla
ну я использую route для построения страниц
а тут мне нужен просто условный рендеринг
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
это одно и то же)
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
роут — это комбинация состояния и видимости
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
роут активен когда состояние подходит под условия
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
соответственно, из значения в source с помощью предиката в visible, вычисляется, активно ли содержимое fn или нет. если активно — то оно рендерится , если неактивно — то перестаёт рендериться
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
route это своего рода антипод Gate из effector-react
источник