Size: a a a

2020 November 22

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
export let clientScope
if (isBrowser()) {
 clientScope = fork(root)
}
я ж и пишу про это
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
инициализируешь скоуп в корне, сразу же
источник

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
export let clientScope
if (isBrowser()) {
 clientScope = fork(root)
}
эти строчки идут подряд, обе в корне отдельного модуля для скоупа
источник

TG

Timofey Goncharov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
после чего любой модуль который запускается до _app сможет его свободно использовать
до _app?
_app же точка входа, ты имел ввиду после?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
а в _app делаешь
import {clientScope} from '..'

export function App({pageProps}) {
 if (isBrowser()) {
   hydrate(clientScope, {values: pageProps.store})
 }
}
источник

m

makoven in ☄️ effector
Подскажите, это норма? Когда прилетает большая коллекция, и она нужна в нескольких представлениях. Отловить ее в несколько сторов одновременно
https://share.effector.dev/ymC4EVyB
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
до _app?
_app же точка входа, ты имел ввиду после?
имею ввиду до момента выполнения функции App, которая занималась созданием скоупа
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
makoven
Подскажите, это норма? Когда прилетает большая коллекция, и она нужна в нескольких представлениях. Отловить ее в несколько сторов одновременно
https://share.effector.dev/ymC4EVyB
да, более того, гибкость такого плана и подразумевается) для этого и существуют эффекты и сторы, чтобы любые сторы могли подписаться на те события которые нужны именно им
источник

m

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
до _app?
_app же точка входа, ты имел ввиду после?
идея в том, чтобы вынести создание скоупа из компонента в отдельный модуль чтобы делать форк немедленно и предоставить доступ к нему любым модулям которым он требуется
источник

TG

Timofey Goncharov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
export let clientScope
if (isBrowser()) {
 clientScope = fork(root)
}
я хотел сделать так, но потом передумал.
в таком случае же нельзя гарантировать что на момент импорта, clientScope будет присутствовать.
так как мы аж в рендере вызываем первый форк
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
я хотел сделать так, но потом передумал.
в таком случае же нельзя гарантировать что на момент импорта, clientScope будет присутствовать.
так как мы аж в рендере вызываем первый форк
https://t.me/effector_ru/178582

ещё раз: делали в компоненте, теперь не делаем
источник

yv

yumaa verdin in ☄️ effector
Maxim Kolesnikov
Так. Ну я всё перевёл на эффектор. Теперь мне надо сторы синхронизировать с localstorage.

Я вижу https://github.com/yumauri/effector-storage

Но мне нужна не тупая синхронизация, а каждый апдейт должен внести в LS ещё таймштамп последнего апдейта. А при загрузке значений надо на этот таймштамп глянуть и если прошло больше N часов, то не загружать из LS, а заполнить дефолтными значениями.

Дайте пинок, в какую сторону мне двигаться.
не видел этого сообщения ._.
добавил пример, как с next можно это сделать было бы
https://github.com/yumauri/effector-storage/tree/next#local-storage-adapter-with-values-expiration
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
yumaa verdin
паблишнул апдейт в effector-storage@next:

- новые опции done и finally, можно указать юнит и узнать, когда значение было прочитано/записано
- новая опция pickup для форсированного апдейта стора из стораджа
- адаптер теперь может объявить «область имён», в которой он работает
- пофиксил бесполезное обновление стораджа сразу после чтения значения

https://github.com/yumauri/effector-storage/releases/tag/v4.0.0-rc.1
а когда планируется релиз?
источник

TG

Timofey Goncharov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
идея в том, чтобы вынести создание скоупа из компонента в отдельный модуль чтобы делать форк немедленно и предоставить доступ к нему любым модулям которым он требуется
вот я о таком подумал, но в next придется же сделать тогда что-то такое
источник

TG

Timofey Goncharov in ☄️ effector
но мозг мой поплыл когда я подумал о том, что это только в клиенте возможно, а что будет с серверным выполнением не понятно 🤷‍♂️
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
вот я о таком подумал, но в next придется же сделать тогда что-то такое
не обязательно, начиная с 21.7.0 можно вызвать в компоненте App метод hydrate со скоупом:

hydrate(clientScope, {
 values: pageProps.store
})
источник

yv

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