@react_js

Страница 5079 из 5115
Kelin
25.10.2018
01:47:25
Интересно, додумается?

Сергей
25.10.2018
01:49:43
Так это не в эффекторе косяк) А в том, что данные прокидываются из компонента списка в компоненты айтемов и при любом изменении апдейтят список
реакт сам по себе сложная либа (целиком) но добавляя ещё больше сложнейших либ, усложняется работа над кодом самого приложения. ты описал кейс, когда косяк в юзер реализации, но это большинство проблем со сложнейшими либами: они увеличивают область знаний которые нужно освоить, чтобы просто писать приложение хотя мне хочется просто view = ƒ(state) и mobx этого мне не дает

Сергей
25.10.2018
01:50:51
Вопрос не в сложности либы, а в сложности абстракции, которую она предоставляет.
и в сложности либы в том числе, чем больше кода, тем сложнее изучать api и больше особенностей использования. следовательно сложнее писать код в соответствии с идеологией

Google
Сергей
25.10.2018
01:51:19
в идеале я хочу максимально простой стор который выполняет только одну вещь — хранит данные и не тянет за собой бизнес-логику

Andrey
25.10.2018
01:51:38
и в сложности либы в том числе, чем больше кода, тем сложнее изучать api и больше особенностей использования. следовательно сложнее писать код в соответствии с идеологией
Очень спорно. Посмотрим на задолбавший всех эффектор. У него очень тонкая и понятная абстракция. Остальной код - это оптимизация работы кишков.

Kelin
25.10.2018
01:52:05
в идеале я хочу максимально простой стор который выполняет только одну вещь — хранит данные и не тянет за собой бизнес-логику
А я хочу максимально простой компонент Который выполняет только одну вещь - рендерит кнопки И не тянет за собой бизнес-логику

Сергей
25.10.2018
01:52:41
Очень спорно. Посмотрим на задолбавший всех эффектор. У него очень тонкая и понятная абстракция. Остальной код - это оптимизация работы кишков.
я же не великий творец, что изрекаю только неоспоримые истины. но у того же эффектора SSR делает через жопу и замыкания

Andrey
25.10.2018
01:53:21
я же не великий творец, что изрекаю только неоспоримые истины. но у того же эффектора SSR делает через жопу и замыкания
У эффектора жопа с SSR только по одной фундаментальной причине) Нет локальности.

Сергей
25.10.2018
01:53:50
А я хочу максимально простой компонент Который выполняет только одну вещь - рендерит кнопки И не тянет за собой бизнес-логику
вот в итоге, всем нужен слой бизнес-логики который зависит только от API стора умеет принимать события и отправлять данные в сторе чтобы можно было переписывать способ хранения данных не ломая логику а также переписывать логику не ломая фронт

Kelin
25.10.2018
01:54:37
Нет, он реализует и то, и то)

Сергей
25.10.2018
01:54:59
я бы рванулся проверять все подводные камни, если бы не SSR

Google
Kelin
25.10.2018
01:55:11
Ты можешь менять способ хранения данных и не менять бизнес-логику) Просто напиши новый .on() для переделанного стора и все

Max
25.10.2018
01:55:19
> всего лишь врапперы над компонентами и полями > не меняя код проекта это взаимоисключащие условия
ну практически не меняя код проекта, я имел ввиду что не нужно вообще менять архитектуру или код работы с состоянием

Kelin
25.10.2018
01:55:40
const name = createStore('') const changeName = createEvent('Change name') Зависит друг от друга?

Если я переименую name, у меня отвалится жопа?

Сергей
25.10.2018
01:56:14
Ты можешь менять способ хранения данных и не менять бизнес-логику) Просто напиши новый .on() для переделанного стора и все
ещё одна штука которая меня клинит — связка производится достаточно неявно то есть просто ниже пишешь store .on(event, handler) и всё

Andrey
25.10.2018
01:56:30
я бы рванулся проверять все подводные камни, если бы не SSR
Вопрос к тебе. Ты готов взять стор, если тебе понадобится немного патчить реакт?

Kelin
25.10.2018
01:56:31
А что ты еще хочешь от изменения стейта?

Andrey
25.10.2018
01:56:44
нет
Печаль.

Kelin
25.10.2018
01:56:51
Бедный лис, никому не нужен патченный реакт

Сергей
25.10.2018
01:57:20
А что ты еще хочешь от изменения стейта?
я хочу полностью отдельно. const store = createStore() const login = createLogic(store) render(<App store={store} />, root)

Andrey
25.10.2018
01:57:27
Бедный лис, никому не нужен патченный реакт
Надо ещё придумать как нормалньо пропатчить.У меня косяк с stateful компонентами сейчас.

Сергей
25.10.2018
01:57:49
Kelin
25.10.2018
01:57:51
И если я удалю стор или изменю его, мне придется переписывать логику

Сергей
25.10.2018
01:58:06
И если я удалю стор или изменю его, мне придется переписывать логику
если изменишь кишки стора, не надо будет переписывать

Andrey
25.10.2018
01:58:08
Ты просто не пиши это напрямую, а напиши "All you need is to call init()"
Мне надо пропатчить render у классов и React.CreateElement

Google
Kelin
25.10.2018
01:58:38
Можно же не говорить, что ты там такое интересное делаешь, правда? =))

Сергей
25.10.2018
01:58:41
я хочу полностью отдельно. const store = createStore() const login = createLogic(store) render(<App store={store} />, root)
я также хочу подключать и отключать куски логики в рантайме

Andrey
25.10.2018
01:58:48
Можно же не говорить, что ты там такое интересное делаешь, правда? =))
Я предпочитаю отдельный пакет, который просто алиасом подключаешь и всё работает.

Слушайте, как можно задетектить stateful компонент реакта?

Andrey
25.10.2018
02:00:20
делай форк реакта и поддерживай его
Вот это ещё большее говно.

Kelin
25.10.2018
02:00:45
я хочу полностью отдельно. const store = createStore() const login = createLogic(store) render(<App store={store} />, root)
const SaveButton = <Button onClick={() => save()}>Save</Button> const save = createEvent('Save') const store = createStore('a') .on(save, () => 'saved') При изменении стора я поменяю только .on(), который лежит ровно в этом же месте В твоем случае мне придется менять и стор, и logic - 2 места

Andrey
25.10.2018
02:00:46
Я лучше объясню что я делаю и попытаюсь влить в апстрим реакта, чем делать полный форк.

Kelin
25.10.2018
02:00:56
Kelin
25.10.2018
02:01:32
не придется
в смысле не придется, лол

Andrey
25.10.2018
02:01:35
Вот мне, сука, очень не хватает того, что реакт сжирает key и не пробрасывает его в компонент.

Тупо компоненты на уровне стора различить нельзя из-за этого.

Kelin
25.10.2018
02:02:10
Andrey
25.10.2018
02:02:14
Я понимаю зачем это сделано, но блин.

Kelin
25.10.2018
02:02:33
Кстати, о птичках Специально для совы есть createApi

Сергей
25.10.2018
02:02:39
const SaveButton = <Button onClick={() => save()}>Save</Button> const save = createEvent('Save') const store = createStore('a') .on(save, () => 'saved') При изменении стора я поменяю только .on(), который лежит ровно в этом же месте В твоем случае мне придется менять и стор, и logic - 2 места
потому что в моем случае, стор это ТОЛЬКО хранение данных и ничего больше. стор сам занимается тем как и в каком виде хранить данные ты наружу вытаскиваешь только апи для использования почти procedure call логика лишь дергает стор, чтобы получать данные или обновить через методы/экшены переписывай стор как тебе вздумается не ломая апи также и логику

Kelin
25.10.2018
02:02:49
const { a } = createApi(store, { a: (state, payload) => newState })

Andrey
25.10.2018
02:02:54
В реакте есть встроенный механизм сопоставления компонентов и их сторов. А пользоваться им писателям либ не дают.

Google
Andrey
25.10.2018
02:03:30
Andrey
25.10.2018
02:03:37
Я отказался от такого апи поэтому.

Kelin
25.10.2018
02:04:11
в итоге и стор и логика полностью инкапсулированы и могут меняться независимо друг от друга
Я все еще не понимаю, в каком месте они независимы друг от друга, если ты напрямую прокидываешь стор в логику

Kelin
25.10.2018
02:04:26
Будет у меня в сторе объект, а изменю я его на строку. И че теперь

Будет у меня стор с одним объектом, а станет с другим. Более логичная ситуация. И че теперь

Сергей
25.10.2018
02:04:55
Будет у меня в сторе объект, а изменю я его на строку. И че теперь
ты можешь легко прокинуть ты не обращаешься к полям стора никогда

Andrey
25.10.2018
02:04:57
rfc
До rfc надо рабочее решение, которое показывает необходимость, предоставить. Иначе меня как ноунейм челика просто нахуй пошлют.

Admin
ERROR: S client not available

Сергей
25.10.2018
02:05:10
ПУБЛИЧНОЕ АПИ

Kelin
25.10.2018
02:05:19
Очень хорошо. Что будут делать методы?

Andrey
25.10.2018
02:05:22
И да, я против того, чтобы key попадал в пользовательский код. Это говно.

Сергей
25.10.2018
02:05:32
Очень хорошо. Что будут делать методы?
принимать/возвращать данные

Andrey
25.10.2018
02:05:53
@sergeysova Возращаясь чуть ранее. Ты уверен, что отключение методов стора - это хорошая вещь? Говной воняет.

Kelin
25.10.2018
02:05:57
Пиздато. Ты только что опроверг сам себя, сказав. что стор и логика независимы друг от друга, и теперь сказал, что логика возвращает новый стейт

Kelin
25.10.2018
02:06:20
То есть априори логика определяет стейт

Google
Kelin
25.10.2018
02:06:30
Сергей
25.10.2018
02:06:51
А что это
блядь данные != стейт логика != методы стора

Kelin
25.10.2018
02:07:18
Тогда опиши мне, что будет внутри createLogic и как он будет работать со стором

Andrey
25.10.2018
02:07:25
блядь данные != стейт логика != методы стора
А почему второе по-твоему верно?

Сергей
25.10.2018
02:07:36
я не хочу завязывать стор и логику

я заебался от каждого серьезного изменения стора переписывать и логику и рендер

Kelin
25.10.2018
02:08:14
Бля. Почему человек говорит, что не хочет завязывать стор и логику, и в примере завязывает их. Помогите плиз

Andrey
25.10.2018
02:08:30
я заебался от каждого серьезного изменения стора переписывать и логику и рендер
А как ты будешь писать логику, которая не зависит от стора?

С чем логика то работать будет?

Kelin
25.10.2018
02:08:50
А как ты будешь писать логику, которая не зависит от стора?
Вот я этого ответа и хочу добиться. Но ответа нет

Сергей
25.10.2018
02:09:06
Тогда опиши мне, что будет внутри createLogic и как он будет работать со стором
единственная зависимость между стором и логикой это контракт, публичное апи то как ты внутри стора хранишь все данные, преобразуешь ли их, юзаешь ли компьютеды и прочее решает стор то как ты делаешь запросы на сервер, пишешь условия, циклы и прочее гвоно, включая обновление стора и триггер других событий логики, решает слой логики

Kelin
25.10.2018
02:09:29
- Логика не работает со стейтом - А с чем она работает? - С данными (данные != стейт) Заебись. И тут мне нужно сделать инкремент счетчика в сторе

Kelin
25.10.2018
02:10:15
псевдокод: store.incrementCounter()
Ну нихуя себе, логика в сторе

Сергей
25.10.2018
02:10:20
Kelin
25.10.2018
02:10:25
А ЧТО ЭТО

Сергей
25.10.2018
02:10:30
ЭТО ОБНОВЛЕНИЕ ДАННЫХ

и нихуя болшье

это то, чем занимается симбиот

Kelin
25.10.2018
02:10:45
Ахуеть, которое завязано на данных из стора

Страница 5079 из 5115