Size: a a a

2020 July 08

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
неявно подразумевается что сам компонент происходит как-то сам собой и рендерится спонтанно, но это не так
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
что произошло в приложении, из-за чего начался рендеринг этой страницы? почему не рассмотреть вариант начала загрузки данных там же?
источник

VI

Vadim Ivanov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
что произошло в приложении, из-за чего начался рендеринг этой страницы? почему не рассмотреть вариант начала загрузки данных там же?
Типа когда роут сменился?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ага
источник

🚀🚀

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

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
pessimistic update in a nutshell
источник

VI

Vadim Ivanov in ☄️ effector
А вот с подходом Gate. Мы пробрасываем в него id сущности из роутера. Это же происходит при рендере страницы.
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
к слову, Gate создавался для реакт-роутера и реакт-роутер это одна из главных причин лага описанного выше, by design
источник

VI

Vadim Ivanov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
к слову, Gate создавался для реакт-роутера и реакт-роутер это одна из главных причин лага описанного выше, by design
Понятно
источник

🚀🚀

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

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
поэтому попытка сделать дефолтный пендинг true это решение неверной проблемы
источник

VI

Vadim Ivanov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
то есть условно, если клик привёл к смене url, то подписка на конкретный вариант url позволит грузить данные не ожидая отмашки от реакта который вообще говоря занимается совсем другими делами
Т.е. нам нужна подписка на условный history и ожидание когда придет нужный url
источник

R

Ruslan 🌀 in ☄️ effector
Maxim Ambrosevich
Привет, есть вопрос:
Мне надо сделать что-то вроде конструктора эффектор сторов в реакте. Цель такая: есть компонент который несколько раз может появляться на странице, например, табличка. И мне надо сделать так, что бы у каждого компонента таблички был свой стор. Может кто-нибудь подсказать как это валидно сделать если я хочу стор весь описать в отедельном от реакт компонента файле?
может передать стор в виде пропса?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
ну да
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Vadim Ivanov
Т.е. нам нужна подписка на условный history и ожидание когда придет нужный url
просто по хорошему это же вообще никакого отношения к ui не имеет, это дело исключительно адресной строки и фоновой загрузки данных
источник

🚀🚀

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

VI

Vadim Ivanov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
просто по хорошему это же вообще никакого отношения к ui не имеет, это дело исключительно адресной строки и фоновой загрузки данных
Да, я тоже думал об этом. Только не дошел до реализации))
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Maxim Ambrosevich
Привет, есть вопрос:
Мне надо сделать что-то вроде конструктора эффектор сторов в реакте. Цель такая: есть компонент который несколько раз может появляться на странице, например, табличка. И мне надо сделать так, что бы у каждого компонента таблички был свой стор. Может кто-нибудь подсказать как это валидно сделать если я хочу стор весь описать в отедельном от реакт компонента файле?
useStoreMap для вычисления производных данных на основе общего стора

const Table = ({tableId}) => {
 const table = useStoreMap({
   store: tables,
   keys: [tableId],
   fn: tables => tables.find(t => t.id === tableId)
 })
}
источник