@react_js

Страница 3744 из 5115
Valeriy
20.04.2018
22:45:35
это упростит приложение

и его понимание

Artem
20.04.2018
22:45:38
есть ивент, в класс, нет ивента и стейта в функцию)

Valeriy
20.04.2018
22:46:01
тут же вопрос не в кол-ве кода

Google
Valeriy
20.04.2018
22:46:06
лишняя буква тут там

а в пороге вхождения в проект

новых людей

да и сам через полгода когда заглянешь в код

чтобы не рисовал схемы на листочках

Artem
20.04.2018
22:46:53
да и сам через полгода когда заглянешь в код
да поэтому и запарился, про этот эффект знаю) Типа какой балбес это писал, потом стоп, это ж я?

Valeriy
20.04.2018
22:47:07
ну git blame

есть хороший плагинчик для любителей vscode

показывает прямо в коде кто чего когда внес

Artem
20.04.2018
22:48:05
да это нужно, один я на проекте)

Valeriy
20.04.2018
22:48:19
когда человек на проекте один

это самое страшное

особенно когда он варится в собственном соку

Google
Valeriy
20.04.2018
22:48:46
и нет конкуренции никакой и нет спорных моментов

Artem
20.04.2018
22:48:59
это самое страшное
ага ревью не кому сделать, и плюс начинаешь понимать систему и писать так как будто все сразу догонять что ты тут напридумывал)

Valeriy
20.04.2018
22:48:59
в такой ситуации получается 99% говнокод

ну тут дело даже не в тебе

не в твоих проф навыках

Artem
20.04.2018
22:49:31
в такой ситуации получается 99% говнокод
ну при желание есть рефакторинг, если есть желание расти, то всегда можно тренироваться улучшать)

Valeriy
20.04.2018
22:49:31
просто так устроен мозг

человек не может себя объективно сам оценивать

соответственно всё что ты сделал, это всегда правильно

пока тебя не ткнет носом кто-то такой же умный или умнее тебя

Max
20.04.2018
22:51:08
Как и достоинств)
Ну этот подход как бы прямо противоположен хранению редюсеров в папочке с компонентом. Я например нашел достоинства в этом подходе полностью нормализованного стора который похож на базу данных - можно избавиться от кучи болерплейта, спроектировать работу с данными и сущностями не подстраиваясь под интерфейс и отображение. Попробую привести пример. Сначала создаем редюсер который в нормализированом сторе обеспечит базовые операции dispatch({ type: "add", //"update" или "delete" table: "todos" // или "posts" или любая другая таблица id: 2112, data: {...} })Дальше можно добавить миддлварку чтобы перехватывала экшен {type: "fetch", table: "...", params: {..}} и будет фетчить от сервера данные и обновлять этот стор. Дальше можно добавить еще в миддлварке перехват экшенов "ADD", "UPDATE", "DELETE" чтобы кроме обновления стора еще автоматически посылался запрос на сервер и при необходимости можно либо сразу обновить стор (оптимитические обновления) либо подождать ответа. А еще дальше можно добавить автоматическое поддержание с обратных ссыллок - вместо того чтобы диспатчить два экшена при добавлении таска в проект (один для создания а второй для добавления айдишника в массив тасков в проект) newTask = dispatch({ type: "add", table: "tasks", data: { title: "newTask, .... } }) dispatch({ type: "update", table: "projects", id: project.id, data: {tasks: [..project.tasks, newTask.id]} } })можно было задиспатчить один экшн вместо двух dispatch({ type: "add", table: "tasks", data: { project: project.id, title: "new task", ... } }) и редюсер по задекларированной заранее схеме (например можно описать схему сущностей так { projects: { tasks: {type: "many", table: "tasks" } } tasks: { project: {type: "one", table: "projects"} } }увидит поле project при создании таска и автоматически добавит таск в массив тасков у проекта. В итоге уменьшается количество кода связанного с поддержкой обратных ссылок

Abu
20.04.2018
22:51:46
это самое страшное
Ну не всегда, человек может спрашивать советы в чатах и т.д, порой даже легче писать код одному, чем с коллегой, который пишет говнокод и не воспринимает критику.

Artem
20.04.2018
22:52:20
пока тебя не ткнет носом кто-то такой же умный или умнее тебя
это да, ну на крайний случай, я при написание просто рассматриваю reusable ситуацию или ситуацию когда все к хренам надо поменять, не то что в команде конечно, но немного позволяет расти)

Valeriy
20.04.2018
22:53:52
Artem
20.04.2018
22:53:56
Roman
20.04.2018
22:54:16
Artem
20.04.2018
22:58:27
кстати, что есть для редакса для jump состояния, ну типа откатится до какого нить выполнения экшена при ивенте, может либа есть какая нить понятная?

Google
Valeriy
20.04.2018
22:59:28
redux dev tool

запускаешь

ждешь накопления экшинов

делаешь паузу

и начинаешь ходить туда сюда джампами

Artem
20.04.2018
23:00:44
это я знаю, мне по другому надо, я подписываюсь на history(который с реакт роутера), и при нажатие кнопке назад, хочу откатить приложение

Valeriy
20.04.2018
23:01:23
и?

Artem
20.04.2018
23:02:49
оно? https://redux.js.org/recipes/implementing-undo-history
странно как то левое меню показывается, а контент полосками)

Valeriy
20.04.2018
23:03:06
ты же правильно подписываешься через <ConnectedRouter history={history}> ?

Artem
20.04.2018
23:04:11
ты же правильно подписываешься через <ConnectedRouter history={history}> ?
import createHistory from 'history/createBrowserHistory'; const history = createHistory(); history.listen((location, action) => {});

надеюсь правильно, я на сам хистори подписался

когда юзер нажмет кнопку вперед или назад, надо откатить стейт до определенного момента

пока не особо понимаю, как это реализовать

Valeriy
20.04.2018
23:05:00
ну вот эта хренть не нужна history.listen((location, action) => {});

Nutscracker
20.04.2018
23:05:37
я когда то такое на чистом яваскрипте делал))) жуть еще та помнится)))

Valeriy
20.04.2018
23:05:44
в миддлваре добавляешь же routerMiddleware(history) ?

Google
Artem
20.04.2018
23:06:06
экшен change_location есть

Valeriy
20.04.2018
23:06:13
ну то есть в редаксе у тебя все ок?

Artem
20.04.2018
23:06:15
но как его переопределить, я так и не понял)

Valeriy
20.04.2018
23:06:16
при смене локаций

Artem
20.04.2018
23:06:19
да в редаксе ок

показывается смена локации, плюс в экшенах могу пулять и т.д.

Valeriy
20.04.2018
23:06:47
а что значит переопределить?

Artem
20.04.2018
23:07:05
у меня урл меняет постоянно, система поиска

Valeriy
20.04.2018
23:07:34
в смысле есть что-то что ты не контролируешь? :)))

Artem
20.04.2018
23:07:37
юзер натыкал, от этого формируется урл и стейт редакса, но как кнопки назад и вперед ни как не могу понять как правильней сделать

Admin
ERROR: S client not available

Artem
20.04.2018
23:08:03
редакс нужен для самих фильтров, а выдача у меня тупо от урла работает и реагирует на него

Nutscracker
20.04.2018
23:08:15
кнопку назад и вперед помнится мне не возможно на данный момент никак переопределить.

Artem
20.04.2018
23:08:48
кнопку назад и вперед помнится мне не возможно на данный момент никак переопределить.
да я в исходниках покапался не нашел приятного способа, кроме как форкнуть)

Nutscracker
20.04.2018
23:09:01
это не возможно, такой возможности браузеры не предоставляют

Artem
20.04.2018
23:09:06
поэтому на хистори и подписался)

Nutscracker
20.04.2018
23:09:10
ты можешь только костыли лепить и редиректы делать

Artem
20.04.2018
23:09:21
не не я имею введу change_location

а понимать когда кнопки работают это просто, там у хистори метка в экшене появляет pop

при пуше, push, так и думаю отличать

Google
Nutscracker
20.04.2018
23:10:49
там блин туча ньюансов..я помню долбался с такой проблемой - меня попросили чтобы при многократном нажатии назад - не выбрасывало с сайта

Artem
20.04.2018
23:10:58
а блин я кажется понял про что ты)

кнопку назад от кнопки вперед фиг отличишь)

Nutscracker
20.04.2018
23:11:15
да

точняк

ты можешь только урл анализировать

Artem
20.04.2018
23:11:31
вообще самые простой вариант для меня, это урл разгерсти и воткнуть новые данные в редакс)

Nutscracker
20.04.2018
23:11:31
и есть событие вроде ухода с сайта

Artem
20.04.2018
23:11:47
ну это как жестковато что ли)

Nutscracker
20.04.2018
23:12:07
тебе задача облегчается редаксом, ты можешь сопостовлять состояния урлам

Alex
20.04.2018
23:12:12
как-то так





Artem
20.04.2018
23:13:09
тебе задача облегчается редаксом, ты можешь сопостовлять состояния урлам
ну да сейчас я реализовал state to url, если сделать url to state проблема сходу решается

но метод мне не нравится почему то)

Nutscracker
20.04.2018
23:13:20
ну это как жестковато что ли)
я вспомнил как я сделал...

Alex
20.04.2018
23:13:22
Form и Validation это расширеные компоненты формы с добавлением типа модели формы

Valeriy
20.04.2018
23:13:23
у тебя же с самого начала все телодвижения по роутам пишутся в редакс

включая Back/Forward

Artem
20.04.2018
23:14:03
у тебя же с самого начала все телодвижения по роутам пишутся в редакс
не я разделил, сам выдача только от урла, система задания параметров поиска от редакса)

Valeriy
20.04.2018
23:14:20
бррр не понял

Nutscracker
20.04.2018
23:14:54
ну да сейчас я реализовал state to url, если сделать url to state проблема сходу решается
смотри я сделал очередь. Не помню точно как я определял в каком месте я нахожусь. Но при переходе вперед я добавлял элемент в очередь

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