Size: a a a

2020 July 04

TG

Timofey Goncharov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
с фабриками сложнее, конфигурация фабрики для ssr смещает удобство работы в сторону инлайн-решений
под инлайн решениями ты имеешь ввиду, просто код без всяких там фабрик?)
источник

TG

Timofey Goncharov in ☄️ effector
Timofey Goncharov
а sid не юзается нигде кроме как в fork?
в общем безопасно ли иметь дело с фабриками или созданием store где-то динамически. если не юзать SSR?
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Переслано от 🚀🔬 🚀🔬🚀🔬...
['effector/babel-plugin', {
 noDefaults: true,
    importName: '~/createKeys',
 storeCreators: ['createKeys'],
}, 'createKeys']


const createKeys = ({listName}, {sid}) => {
 const desc$ = app.createStore(defaultSort, {
   sid: `${listName}/${sid}`
 })
}
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Переслано от Nick
можешь объяснить как это синтаксис работает
importName: '~/createKeys',
 storeCreators: ['createKeys'],
}, 'createKeys']


вот у меня есть features/tables/model/index.js

там export const tableModelFactory

что нужно написать?
источник

🚀🚀

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

['effector/babel-plugin', {
 noDefaults: true,
 importName: 'features/tables/model',
 storeCreators: ['tableModelFactory'],
}, 'any uniq string']


и импортировать таким образом

import {tableModelFactory} from 'features/tables/model'

const results = tableModelFactory(data) // сюда бабель прокинет sid вторым аргументом
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
Переслано от 🚀🔬 🚀🔬🚀🔬
['effector/babel-plugin', {
 noDefaults: true,
    importName: '~/createKeys',
 storeCreators: ['createKeys'],
}, 'createKeys']


const createKeys = ({listName}, {sid}) => {
 const desc$ = app.createStore(defaultSort, {
   sid: `${listName}/${sid}`
 })
}
это — отдельный, дополнительный бабель-плагин в конфиге, который будет заниматься только фабриками
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
storeCreators — это названия методов из модуля importName, которые будут расцениваться бабель-плагином как фабрики, имеющие апи createStore: в первом аргументе данные для самой фабрики, во втором — служебная информация включая sid
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
🚀🔬 🚀🔬🚀🔬
Переслано от 🚀🔬 🚀🔬🚀🔬
['effector/babel-plugin', {
 noDefaults: true,
    importName: '~/createKeys',
 storeCreators: ['createKeys'],
}, 'createKeys']


const createKeys = ({listName}, {sid}) => {
 const desc$ = app.createStore(defaultSort, {
   sid: `${listName}/${sid}`
 })
}
третий аргумент в массиве — произвольная строка, её требует сам бабель чтобы убедиться, что это намеренное добавление второго инстанса плагина
источник

🚀🚀

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

🚀🚀

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

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
а sid не юзается нигде кроме как в fork?
ага
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Timofey Goncharov
в общем безопасно ли иметь дело с фабриками или созданием store где-то динамически. если не юзать SSR?
без ssr без разницы, но это по прежнему не самое лучшее решение: практически всегда динамические юниты можно заменить на статические, обрабатывающие данные по id
источник

DS

Dmitriy Shuleshov in ☄️ effector
А можно в стопе хранит ссылки на сторы?🤔
источник

TG

Timofey Goncharov in ☄️ effector
🚀🔬 🚀🔬🚀🔬
всё это вместе подразумевает что твои фабрики действительно стоящие)
понял))
источник

🦜

🦜 in ☄️ effector
Обновил шрифт в доке 👀
источник
2020 July 05

TG

Timofey Goncharov in ☄️ effector
а useEvent можно вынести в свой hook? или он тоже к файлам привязывается?)
источник

NN

Nikita N. in ☄️ effector
хуки всегда можно юзать внутри других хуков
источник

m

makoven in ☄️ effector
Aleksandr Osipov
Я хз, я просто с бека пришел (python, 5+ лет) и там как бы принято было у нас, ну как без классов то мол. Уже не писал давно на нем но код коллег ревьювю и удивляюсь порой ну навига вы так переусложняте, есть же функции и dict-ты зачем вот вам классы тут...
"ООП" в кавычках в жс повсюду. В том же эффекторе каждая сущность это объект с методами. Почему людей воротит от слова new я не знаю. Предпочитают вместо него createYoba 💁
источник

m

makoven in ☄️ effector
Возможно так повелось от фейсбука, Дэна Абрамова. Хотя последний, в интервью говорил, что не стоит пихать функциональщину ради функциональщины и сетовал на фанатиков ФП. Если проблема лучше выражается в иных средствах, то используй их
источник

З

Завтра in ☄️ effector
Функциональное программирование != просто вызывать функции вместо new
источник