Bogdan
а потом я в стиле мытья полов будут писать код)
🅅aleriy
в ато в конце вы заставите меня полы мыть в ожидании понимания
ну это воспитает в тебе терпение как минимум :)))
Bogdan
я хочу сейчас понять поэтому и решил написать просто у меня есть ряд рабочих проектов без экошнов)
Bogdan
которые споконо работают ) и я думаю стоит ли добавлять их туда
🅅aleriy
а то сегодня ты не хочешь экшины создавать для редакса, завтра компоненты писать на реакте, так и до jquery скатиться не долго :)))
wolfe
ну это воспитает в тебе терпение как минимум :)))
с ридаксом это особенно актуально
🅅aleriy
я хочу сейчас понять поэтому и решил написать просто у меня есть ряд рабочих проектов без экошнов)
я на 99% уверен, что эти проекты спокойно и без редакса будут работать
Bogdan
я стараюсь оптимизировать свои телодвижения и не нажимать лишних кнопок поэтому мне нужно четко понимать какие плюсы я получаю вводя экшоны и соотвественно доп зависимость в проект
🅅aleriy
процентов на 75 что и без реакта :))
Bogdan
дак любой проект можно написать без реакта или редакса
Bogdan
о чем разговор
Bogdan
все теперь понятно
Bogdan
это все или мне еще чтото нужно знать?
Bogdan
это в принципе да логично и правильно
🅅aleriy
если ты берешь какой то инструмент, то правильнее следовать рекомендациям автора
🅅aleriy
рекомендаций как юзать правильно редакс полно
Bogdan
ну надо же просто понимать зачем ты делаешь ту или иную штуку иначе ты просто увеличиваешь кодовую базу усложняешь проект
Frontend Priest
Элементарный пример
Bogdan
щас
Frontend Priest
И я тыкну тебе на место, где может произойти ошибка, ловить которую ты будешь час в лучшем случае
Bogdan
const { dispatch } = this.props; let response = await axios.get("/api/country"); dispatch({ type: "add_country", data: response.data });
Looch
Лооооол
Looch
Хорошая у тебя архитектура
wolfe
const { dispatch } = this.props; let response = await axios.get("/api/country"); dispatch({ type: "add_country", data: response.data });
достаточно сделать очепятку в url в любом другом компоненте, чтобы выстрелить себе в ногу
Frontend Priest
рекомендаций как юзать правильно редакс полно
И ни одной правильной нет. Потому что редакс из коробки не работает, к нему надо присобачить асинхронность, симбиоты, синхронизацию с локалстораджем, какой-то механизм для реакции на экшоны итд итп, а это уже в туторах от гоши дударя не рассказывают
Bogdan
Хорошая у тебя архитектура
если твою архитектуру за пару дней мидл не может осилить то у тебя тоже она не окей брат
Dmitrii
Ребят, помогите плиз настроить cors-запросы на фронте. Я уточню ситуацию: на бэке уже все заголовки реализованы, необходимо правильно настроить фронтовое приложение на Create React App. Необходимо, чтобы фронт при апи-запросах обращался не к http://localhost/item/1, а к http://my-server.ru/item/1. По документации делаю так: - в package.json добавляю строку "proxy": "http://localhost:3000", - в настройках axios добавляю параметр: {baseUR: '//my-server.ru'} Далее, происходит preflight-запрос: Request URL: http://my-server.ru/item/1 Request Method: OPTIONS Status Code: 204 No Content Результат: Access to XMLHttpRequest at 'http://my-server.ru/item/1' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Понятно, что я не учитываю чего-то. В чём проблема?
Looch
Не
Looch
Просто все в компонентах херачишь
Bogdan
вот я сторонник того что проблемы надо решать по мере их поступления
🅅aleriy
асинхронные вызовы - через мидлваре делай кто мешает то
Looch
У тебя уже есть проблема
Frontend Priest
если твою архитектуру за пару дней мидл не может осилить то у тебя тоже она не окей брат
Нет. Архитектура не обязана быть настолько простой, что её видно целиком и насквозь. Сайты, которые делаются командой по 50 человек, редко можно понять за пару дней.
Frontend Priest
асинхронные вызовы - через мидлваре делай кто мешает то
Уже мидлварь ставить. Где это "из коробки"?
🅅aleriy
Уже мидлварь ставить. Где это "из коробки"?
их не надо ставить, ты их сам пишешь и добавляешь при создании стора
🅅aleriy
так же как редьюсеры
🅅aleriy
вау как круто, а где "из коробки"?
а где редьюсеры из коробки? :)
🅅aleriy
смотря что под коробкой понимать
Frontend Priest
не пытайся ответить, в редаксе нету асинхронности, её нужно цеплять
Frontend Priest
и ещё целая гора проблем, которые всплывают после десятка экшонов
Frontend Priest
мидлварь
Frontend Priest
сага, санка, асинк
🅅aleriy
ну так мидлваре это обычная твоя функция
🅅aleriy
внутри которой ты можешь выстроить весь свой процесс для асинхроности
🅅aleriy
либо подключить готовые типа саги, санок и т.д.
Nick
сага, санка, асинк
какие саги, алло? только эффектор
wolfe
ну так мидлваре это обычная твоя функция
проблема в том, что thunk пораждает пару тройку новых типов...
🅅aleriy
какие саги, алло? только эффектор
ну остались еще проекты и на редаксе же
wolfe
которых из коробки в редаксе нет
Frontend Priest
const { dispatch } = this.props; let response = await axios.get("/api/country"); dispatch({ type: "add_country", data: response.data });
У тебя поменялся type запроса. Или появились дополнительные запросы, связанные не только с country, в связи с чем требуется поменять имена экшонов. Или ты опечатался. Или адрес апи поменялся. После каждого из предложенных мной кейсов ты вынужден будешь ручками переписывать целую гору кода. Action creators придуманы не просто так, вынесенные отдельно константы - тоже. Всё ради гибкости и возможности поменять в любой момент любой из пунктов. Идея "вау давайте заинлайним все переменные" никогда ничем хорошим не заканчивается.
wolfe
это как?
патченый диспатч, ThunkAction и ThunkActionDispatch
Frontend Priest
какие саги, алло? только эффектор
Речь о редаксе. Я говорю, что это несамостоятельная вещь, вокруг которой требуется налеплять кучу тулзов, чтобы просто работало хотя бы как-нибудь
wolfe
это как?
https://github.com/reduxjs/redux-thunk/blob/master/index.d.ts#L63 вот там все это рядом расписано
Bogdan
бог мне в помощ)
🅅aleriy
https://github.com/reduxjs/redux-thunk/blob/master/index.d.ts#L63 вот там все это рядом расписано
ааа ну я не болею статической типизацией редакса
Bogdan
@unordinarity можешь еще каконибудь простенький пример скинуть как экшоны по феншую сделать?
Alexey
программисты начинают бояться типов.. скоро: ааааа переменные!!!11 кто придумал эту дитч! искаропки неработаит
wolfe
ааа ну я не болею статической типизацией редакса
с точки зрения логики (даже при отсуствии типизации в проекте) - это совсем другой вид экшена и, опять же, патченый диспатч, который умеет принимать теперь не только объект, но ещё и функцию
Bogdan
redux-symbiote
благодарю
Frontend Priest
заодно пальцы прокачаешь
с симбиотами - нет
🅅aleriy
с симбиотами - нет
ну если ему разрешат в проект это затащить еще :)
🅅aleriy
не все же могут выбирать стэк самостоятельно
Frontend Priest
ну если ему разрешат в проект это затащить еще :)
я самопальные симбиоты замутил, воткнул, никто даже вдохнуть не успел, потом все привыкли
🅅aleriy
я самопальные симбиоты замутил, воткнул, никто даже вдохнуть не успел, потом все привыкли
примечательно что автор симбиота давно использует эффектор :))
Frontend Priest
Можно в закреп повесить npm i effector effector-react ?
🅅aleriy
и дэн абрамов тоже)
логичное завершение карьеры редакс фаундера :)