Только redux начал использовать , а он уже не нужен
@stepan1928374 жыл бұрын
ор
@maksymivanov60494 жыл бұрын
не переживай, редаск еще пару лет нужен будет))
@cybersystem51374 жыл бұрын
Та он изначально был не нужен )) Я его как заюзал 1 раз, так и прекратил )))
@legendarysergeygaming63954 жыл бұрын
Rudex нужен а GrapfQL используется в связки с несколькими серверами от 2-х и более. Это его правильное применение. В остальных случаях используется redux на текущий момент времени.
@izzei-16144 жыл бұрын
@@legendarysergeygaming6395 с какими серверами? Зачем GraphQL несколько серверов? В остальных случаях, когда мы не используем Apollo, мы можем пользоваться любым state менеджером: mobx, effector, reatom, recoil
@Nikita-xe5kv4 жыл бұрын
Офигенный материал, классный чистый звук с нужным темпом произношения, крутая подача) Спасибо + лайк и подписка
@bossmusa90752 жыл бұрын
Очень-очень-очень хорошо, настолько приятно слушать было, что я в шоке даже немного. Зарубежный уровень.
@Heretic_Man4 жыл бұрын
Оу оу, братишка, с возвращением ! Так, сначала лайк)
@ДмитрийГунин-о8о4 жыл бұрын
Блин вот я осёл, когда учил реакт (по книжке) пропустил главу с GraphQL потому что подумал, что это что-то про графику)) Впихнул в своё приложение редакс, уже подобрался к саге и тут твой видос, ну все, буду пробовать graph!
@alexey_horbunov3 жыл бұрын
Дмитрий, можете подсказать какую книгу читали? Я тоже учусь, возможно что-то для себя почерпну
@ДмитрийГунин-о8о3 жыл бұрын
@@alexey_horbunov "Реакт быстро" (react quickly) автор Азат Мардан. Но лучше поискать что-то поактуальнее. Например, там нет ни слова про хуки. Описан серверный рендеринг, но без next.js
@alexey_horbunov3 жыл бұрын
@@ДмитрийГунин-о8о Спасибо огромное)
@ДмитрийГунин-о8о3 жыл бұрын
@@alexey_horbunov незачто)
@pavel69813 жыл бұрын
фу бл. редакс сага, с ужасом вспонимаю времена, когда использовал этот кал. а,да учить это все по книгам не стоит, потому что пока книга пишется и издается, то технология, описанная в ней, устаревает. учитесь по официальной документации
@romkarx3 жыл бұрын
Это самое понятное и грамотное объяснение что такое GraphQL и в чем его преимущество!
@ИльяМаненков-з9е4 жыл бұрын
Как за этим всем успевать ... Очень информативно , спасибо
@beha8675 Жыл бұрын
Очень хорошое видео круто обьяснили , можете еще делать видео про мутации?
@КириллОмельченко-с5ч3 жыл бұрын
Это же гениально! Лучшее объяснение graphQl которое я встречал. Спасибо. А за redux обидно стало, я его только разобрал.
@ЮліяСтрелкова2 жыл бұрын
Супер подача, спасибо большое! Только начала смотреть в сторону graphql и сразу получила ответы на все свои вопросы! Подписка))
@parabellum5773 жыл бұрын
Кайф, сейчас нужно пилить приложение с использованием graphql, я в нем не шарю, но посмотрев видос, захотелось начать им пользоваться)
@petrvictorovich2 жыл бұрын
Первая минута - пауза. Прямо в точку! Именно так и для этого я и пытаюсь использовать Redux!
@dispeltr11834 жыл бұрын
оо я скучал по тебе дорогой товарищ!
@romankuksin49903 жыл бұрын
В 2021 году redux - это уже другой зверь благодаря redux-toolkit. Бойлерплейт почти весь ушел. А еще, там из коробки работает immerjs, так что появились гарантии иммутабельности стейта. Теперь редакс это не только "the most popular oppionated approach to state management" но и просто удобная либа.
@DjLeonSKennedy3 жыл бұрын
про генерацию типов к тс по схемам тоже крутая тема, можно даже хуки для запросов генерить
@Dan50k4 жыл бұрын
По поводу контрактности - придется искать баланс между кол-вом запросов и кол-вом данных в каждом запросе. Под каждый чих не будешь запросы слать. Можно конечно говорить о кешировании, но его тоже придется прогнозировать - что будет закешировано на клиентской стороне, к какому-то моменту, что еще нет. В какой момент кеш будет инвалидироваться.
@Nikitosss913 жыл бұрын
уже середина 21 года, ждем видик, братан)
@dmytrob.18744 жыл бұрын
Спасибо за видео, второй раз и опять вовремя, сначала про redux (2 года назад) а теперь про gql! Очень понятно объясняешь, респект! Про TS это конечно супер :)
@ivan_kobzar4 жыл бұрын
React-query - как альтернатива apolo client, но еще и работает с rest api, будет интересно послушать твоё мнение :) Спасибо!
@natalyshulzhenko82372 жыл бұрын
Спасибо огромное за материал! Супер видео
@jake_timabay2 жыл бұрын
Браво, наконец-то допер. Жаль что узнал про GraphQl, только сейчас.
@EvaKerrigan Жыл бұрын
Это лучшее видео что я видела за всю жизнь по фронтенду, по всем темам вообще ) Это идеально ! Я, наконец, прониклась графкюэлем ! Спасибо !!! 🤍🤍🤍
@RikkyBro3 жыл бұрын
Я посмотрел много видео про GraphQL, и это получилось самым информативным, даже не смотря на то, что является скорее ознакомительным, нежели обучающим
@MihailGrib3 жыл бұрын
Вот было сказана что уменьшает время обработки запросов, не совсем понимаю как это. Как в данном случае работают resolve ры GraphQL запросов и как в них должны строятся запросы sql, nosql и чем это отличается от rest-а. Есть кеш, а как быть если кеш устарел, а в базе уже новые книги - получается сначало придет старье, потом дойдет новое, будет обновление на клиенте.
@hpcforum2 жыл бұрын
Спасибо, шикарное видео. Скрипач не нужен. Только вот там еще ерор возвращаются из этого хука, жаль что не дописали немного компоненты для красоты картины.
Годно, но тема ненужности редукса не раскрыта. Still like tho.
@anton-vr5xw2 жыл бұрын
Шикарное видео, спасибо вам большое)
@happy_cutman3 жыл бұрын
Спасибо большое, вместо тысячи статей)) Го вторую часть про мутации!
@alexsoft70732 жыл бұрын
Отличное видео, спасибо!)
@KPACIBO_UA2 жыл бұрын
Отлично обьясняешь, сидел 2 часа читал документацию, а тут за 20 минут все по полочкам разложил, респект таким пацанам 23:21 надо передать масив, а пишешь обьект. Полагаю все таки заговорился и передать надо было таки обьект, пральна понимаю?
@onlytryhard802 жыл бұрын
Божественное объяснение, спасибо!
@juliagil49093 жыл бұрын
видео отличное, все пустые места после статей были заполнены этим видео
@njs47244 жыл бұрын
еще один вопрос пожалуйста: если в базе данные поменялись после первого вызова, а grapql закэшировал их, то клиент получит устаревшие данные?
@artemkhegay6163 жыл бұрын
Отличный контент, автору лайк за видео!
@yurysukhomlinov24373 жыл бұрын
А если данные на бэке поменялись, как-то можно сделать повторный запрос, минуя кэш?
@ГусяНоздреватая Жыл бұрын
20:26 сейчас вообще можно включить автоматическую генерацию кастомных хуков, даже дженерики прописывать не придётся)
@Владимир-д9и7о4 жыл бұрын
Очень круто и полезно! Спасибо!
@mama07669384 жыл бұрын
да здравствует, knowcity
@ДмитрийАлексеев-я6ц4 жыл бұрын
Все по делу. Все по существу. Спасибо
@ДаниилГалимзянов-э4л3 жыл бұрын
А если произошло обновление данных на сервере? То как мы узнаем, что у нас обновилось что-то, если вернется закэшированные старые данные?
@disiol14 жыл бұрын
Спасибо за видео. =) Жалко джунов, как конвектров юзают их. =)
@Ivan-bf4ik4 жыл бұрын
Зато получат опыт и практику, все довольны )
@disiol14 жыл бұрын
@@Ivan-bf4ik на комнто етапе рутина может убить желание развиватса. =)
@Ivan-bf4ik4 жыл бұрын
@@disiol1 тут смотря как относится к рутине. Интересные задачи решать хочется всем, но большинство задач, особенно для джунов, это шаблонные задачи.
@ecroFeGushKa4 жыл бұрын
По поводу оборачивании имеющегося REST API в gql: на грядущем HolyJS будет вот такой доклад, может кому интересно holyjs-piter.ru/2020/spb/talks/26ewxf0eetneqysa49i6sh/
@soujaqq4 жыл бұрын
kzbin.info/www/bejne/iHWldpmsj7lkr7M недавно запостили наконец-то
@АлексейСоснин-р4й4 жыл бұрын
*Короче пацан не отличает стейт менеджер, и кэш данных от бакенда). Редакс нужен чтобы хранить стейт "открыто меню, закрыто меню", "темная тема, светлая тема", "какой пост редактируется, какой отредактированный текст", а парнишка думал что стор нужен чтобы даннные с сервера где-то временно хранить =) короче молодой еще, научится!*
@The3Alexey3 жыл бұрын
А можно с тобой связаться?Есть один вопрос по коду, весь интернет перерыл.По поводу импорта .graphql, оставь свою телегу, пожалуйста, буду весьма благодарен
@askerkotsev3632 жыл бұрын
Ты че угораешь) я только что посмотрел твои видосы про Redux, а щас я вижу Redux не нужен))))))))
@Sakshram4 жыл бұрын
Пробовали мы использовать graphQL в нашем Symfony проекте - получили замедление ответа сервера на простейшие запросы и проблемы с разграничением прав доступа. В итоге вернулись к REST'у
@ecroFeGushKa4 жыл бұрын
В php либах для graphql есть косяки. Ребята у нас в компании допиливали библиотеки руками, стало норм) А с права доступа какие проблемы?
@fein70684 жыл бұрын
@@ecroFeGushKa А долго допиливали?
@ecroFeGushKa4 жыл бұрын
@@fein7068 Насколько мне известно, они использовали folkloreinc/laravel-graphql и допилили его. Тогда этот модуль еще не был deprecated. Сейчас есть более красивые пакеты, вроде rebing/graphql-laravel.
@fein70684 жыл бұрын
@@ecroFeGushKa спасибо!
@chkpg43173 жыл бұрын
Очень круто обьясняешь!)
@ТатьянаДжанаева-ю4з3 жыл бұрын
спасибо за ролик! все работало и было понятно до работы с клиентской частью: в файлах .graphql почему то у меня нет никакой идентификации ни "query" ни всего остального и подобного... все подчеркивает красным... почему так может быть?
@victormog4 жыл бұрын
Звучит очень заманчиво!
@АртёмАртём-ю4ы4 жыл бұрын
Сделай пожалуйста пример с Relay и Asp Core 3 Hotchocolate
@skv19913 жыл бұрын
Здорово, спасибо!
@Gryts-w1s2 жыл бұрын
люкс!
@predaytor3 жыл бұрын
Но ведь Redux используют не только для хранения данных из вне, но и для состояния компонентов. К примеру, открыто ли модальное окно. Можно использовать ContextAPI + useReducer, но что по ререндеру в сравнении с Redux?
@jiza23772 жыл бұрын
Ну он хранит данные, но не состояние компонента, за это отвечают хуки
@masha18able12 жыл бұрын
useState для состояния компонентов существует
@no-thinker-13574 жыл бұрын
@knowcity Скажите пожалуйста, если мы отказываемся от redux и начинаем вместо него юзать apollo client cache, то как быть с изменениями? Менять данные на прямую в кэше graphql?
@romuelson2 жыл бұрын
@Влад Кругленя Получается, что Redux все же остается? =)
@romuelson2 жыл бұрын
@Влад Кругленя Благодарю Вас за ответ, второй день плаваю, в группе телеграмм GraphQL нашел ответ от авторитетного источника: ``` Если у вас redux store только под данные с сервера, то точно переезжайте на аполло клиент. Если в сторе и данные с сервера, и локальные клиентские, то желательно разделить их. И локальные клиентские можно оставить в редаксе. Но там, потом когда смотрят, что осталось в редаксе, то в подавляющем большинстве, народ уезжает на контекст и/или useState и редакса вообще испаряется. ```
@aleksey27932 жыл бұрын
Немного не понял на примере с книгами. Точнее, в плане использования GraphQL вместо Redux все ясно. Не ясна принципиальная разница (именно в конкретном примере) между GraphQL и классическими запросами REST API. Что тут мы по заранее запрошенному айдишнику запрашиваем каждую отдельную книгу, что там. В чем профит?
@LogopedLTD4 жыл бұрын
Фокус с кешем просто убил))) Вау))
@vazgenaleksanyan29293 жыл бұрын
Этот момент конкретно убил редакса.
@andrewkolev10483 жыл бұрын
Интересно, понятно.
@brodyagaPATY4 жыл бұрын
Redux это боль)))) спасибо за видос!!! Ещё с React MobX неплохо заходит
@draky1173 жыл бұрын
чем боль? супер простой и понятный стейт менеджер
@brodyagaPATY3 жыл бұрын
@@draky117 я рад что он для вас легкий и понятный👍
@atlasua20213 жыл бұрын
@@brodyagaPATY если вместо GraphQL юзать mobX, легче будет?
@starunski_3 жыл бұрын
ТОП !
@roberamyan1003 жыл бұрын
братан аxуенно делаеш контент сними продолжение по поводу резолверов ,кeширования ...
@firewatermoonsun4 жыл бұрын
20:30 Где можно узнать поподробнее как использовать generic для usequery?
@ecroFeGushKa4 жыл бұрын
Andrey Li вот здесь www.apollographql.com/docs/react/development-testing/static-typing/
@firewatermoonsun4 жыл бұрын
Спасибо!
@skpavlenko4 жыл бұрын
Класс!
@dramarec3 жыл бұрын
💥 🚀 🙏
@cseedrvr66274 жыл бұрын
В любом случае везде требуют знание редакса
@vitalycherkov42274 жыл бұрын
Из видео не совсем понятно, как поддерживать данные в актуальном состоянии с беком. Т.е. фронт мог закешировать много данных, часть из которых стала уже неактуальной. Наверное, должен быть способ запросить данные с форсом?
@ecroFeGushKa4 жыл бұрын
Виталий Черков данные кешируются in-memory, т.е. до первого физического обновления страницы. Также, само собой, есть управление политикой кеширования, в том числе и возможность форса свежих данных
@vainshi2283 жыл бұрын
тупо лайк
@soundnimation Жыл бұрын
что будет отабражено если после рендера информация в базе о книге будет изменена? будет ли тригеритсься ререндер?
@filcondrat4 жыл бұрын
Привет! а новые видосы планируются?)
@njs47244 жыл бұрын
Обязательно ли использовать jsx формат для компонентов graphql ? Почему не используется обычный json формат для объектов?
@ВладиславПузырев-ю8л4 жыл бұрын
Как лучше описывать схему на бекенде? Кто-то использует обычную строку, кто-то специальные типы GraphQLSchema, а тут файлы .graphql какая-то путаница. В то же время в документации graphql js все пишут просто строкой а у них на гитхабе в readme пример с GraphQLSchema интересно еще как в это все typescript впихнуть))
@bogdannosovytskyy74374 жыл бұрын
Стейт менеджер вообще не используется при использовании GraphQL? Пользуетесь контекстом?
@seller-buyer-china4 жыл бұрын
Доброго вам времени суток!... А куда подевались ваши плейлисты на канале?
@АндрейСадовинский3 жыл бұрын
Норм вещь
@leonid_244 жыл бұрын
сексуально
@dmitrysamoylov49464 жыл бұрын
@knowcity а можешь показать, как это теперь за деплоить на хостинг?
@sevi434 жыл бұрын
А как локальный State хранить?) Я читал доки по local apollo state и там все мягко говоря не очевидно и очень запутано Redux toolkit в принципе решает проблемы с boilerplate Концовка удручает... Вообще складывается впечатление что автор не до конца разобрался с gql, потому что создание того самого прокси который должен сделать за нас грязную работу в виде fetch на ориг api, займёт не так мало времени как может показаться, да и к тому же может заметно замедлить работу самого приложения, а про проблемы с оверхедом, регулировкой глубины и сложности запросов видимо вообще не стоит упоминать.
@ecroFeGushKa4 жыл бұрын
Про локальный стейт: в apollo можно сохранять данные в его кеш прямо на лету. apollo-link-state - это уже более продвинутая технология, она не всегда нужна. Про создание прокси я говорю так уверенно, потому что и лично занимался этим с нуля, и курировал разработку прокси у других разработчиков, и вместе с php командой по частям внедряли gql в их огромный монолитный проект. Ни в одном из случаев не возникло практически никаких проблем. Главное не писать велосипеды и юзать готовые решения (NestJS, express-graphql, etc).
@ecroFeGushKa4 жыл бұрын
В любом из описанных сценариев: разработка gql прокси настолько упрощает разработку интерфейсов, что все затраченные силы окупаются сполна.
@dimaantoshkiv36964 жыл бұрын
👍
@alexanrdalexandr80574 жыл бұрын
Интересная технология, но как защитить единственный endpoint через который осуществляется обмен информацией? Я имею ввиду авторизацию. И как разделить права между несколькими пользователями?
@АнтонВасильев-т2я Жыл бұрын
Также как и в reat api. middleware
@АлексейСоснин-р4й4 жыл бұрын
*Короче пацан не отличает стейт менеджер, и кэш данных от бакенда). Редакс нужен чтобы хранить стейт "открыто меню, закрыто меню", "темная тема, светлая тема", "какой пост редактируется, какой отредактированный текст", а парнишка думал что стор нужен чтобы даннные с сервера где-то временно хранить =) короче молодой еще, научится*
@VladDraculator4 жыл бұрын
Ну ты кадр) Парнишка не прав, согласен. Но ты тоже не корректно сформулировал. Это единственный источник истины. Единое, общее состояние для приложения, для всех его компонентов. Это же ключевое.
@player569782 жыл бұрын
Я смотрел это видео с надеждой что покажут как работать с мутацией...
@Nikita-vf6td2 жыл бұрын
Окей редакс вам не нужен, а сагу вы как замените?) Каждый раз писать локальные костыли для к примеру предотвращения повторных запросов?)
@ecroFeGushKa2 жыл бұрын
Вся работа с сетевыми пайплайнами вынесена в мидлварки ApolloLink. Есть 100500 готовых написанных линков под все случаи жизни, от аутентификации, до очереди запросов и сетевых ретраев. Это, кстати, гораздо лучше с архитектурной точки зрения: все сетевые штуки вынесены по сути на отдельный слой приложения. В то время как в схеме с сагой, это все на уровне редакса по сути.
@georgeikonoshenko53133 жыл бұрын
Подскажи а как устроить архитектуру, когда у тебя 10-20 разных таблиц и связей между ними - не в одном же файле graphql это все хранить
@ecroFeGushKa3 жыл бұрын
Для этого есть GraphQL Federation. Есть пример Нетфликса: kzbin.info/www/bejne/h6OogKl-ma1leck
@eradil2 жыл бұрын
eeeeebaaaa vot ono kak
@fil18063 жыл бұрын
А где хранить данные собранные на Frontend, например идет сбор данных по экранам, обработка, вычисление и только потом отсылка на сервер????
@ПользовательПользователь-с8к10 ай бұрын
В стейте роутера
@andreykostyuchenko32394 жыл бұрын
Но GraphQL не отменяет необходимости валидации даннных на клиенте? Например клиент захотел книгу с полями name author description. А в базе description пустое поле например.
@ecroFeGushKa4 жыл бұрын
Конечно не отменяет
@Nini-sv1bd3 жыл бұрын
А как мидлвари писать? Допустим запрос доступен только авторизованным пользователям
@ВладБобров-й1ф3 жыл бұрын
Это же явно сервер сайд фича, нет?)
@b.g.51063 жыл бұрын
Мне чудится или на этом канале раньше было больше видео?
@andrerussian40163 жыл бұрын
т.е. если данные на бэке меняются, то graphQL будет всё равно выводить кэш (старые данные), а не актуальные? Сомнительный плюс
@ecroFeGushKa3 жыл бұрын
Данные на фронте кешируются только до перезагрузки страницы
@systemmind14 жыл бұрын
а если данные на сервере поменялись, ну, например, кто-то другой книгу купил и она уже не доступна для остальных пользователей и ее не нужно отображать на юае, то как обновить кэш на фронте?
@systemmind14 жыл бұрын
а, все, внизу увидел ответ на подобный вопрос
@anazkomult4 жыл бұрын
Так теперь фронты должны еще и на пол шишечки в бэкенд :) Эх, а раньше хтмл+цсс+жквери и все....
@ecroFeGushKa4 жыл бұрын
Хорошие фронты и раньше должны были быть на пол шишки в бекенде)
@iGotton4 жыл бұрын
+
@pavel69813 жыл бұрын
appolo - шляпа. Только react relay. Это лучшее из всего что я перепробовал. А да, redux - не нужен. (p.s осторожно, при чтении документации возможно возгарание очка, нервные срывы, "ну почему, сука, код из примера не работает" и "какого хуя дока не соответствует реальности". Я ПРЕДУПРЕЖДАЛ БЛЕЯТЬ!!!!)
@ecroFeGushKa3 жыл бұрын
Может давно аполло не трогал? Версия 3.0 и старые версии аполло - это как жопа и палец
@Mike373734 жыл бұрын
ты понимаешь что у тебя меньше просмотров с микро текстом ? найми чела какого нибудь, может он текст увеличит, напиши на биржу фриланса задачу такую
@localhost666 Жыл бұрын
Каким образом на клиенте работает автозаполнение по полям, которые указаны на сервере? Каким образом клиент вообще знает какие поля существуют??
@cybersystem51374 жыл бұрын
Ура, правильное видео!! Наконец. А то редакс, саги, бла бла бла
@abobunus Жыл бұрын
redux suck? это что-то новенькое 0:52
@ДенисМалышок3 жыл бұрын
Так а почему Redux не нужен? Редакс это же не просто хранилище данных зафетченных с бека, это еще и коннект и мидлвара, которая может, например, логи писать или еще чего-нибудь. Да сейчас у нас появились хуки и контексты, но камон, все в них оборачивать как в гармошку? Представь что у тебя есть очень большой проект. Он на столько большой что разные его части было решено делать отдельными бандлами. И вот одна часть сайта очень далеко от другой. И им обеим нужно знать что-то что лежит, например, в куках или локал стораж или еще что-то. Проще вызвать инит экшен который прочитает или зафетчит нужную инфу, и заюзать коннект во всех компонентах которые хотят эти данные. + у Редакса есть хороший дебаггер, который позволяет двигаться по стейтам приложения, видеть историю изменений, где в какой момент что у тебя произошло. Это бывает полезно.
@gavrshchuk4 жыл бұрын
Возьми Apollo Client "из коробки" и загрузи файл на сервер с отображением прогресса его загрузки. Упс, а он такое не умеет так как под капотом fetch() который это не умеет. По сути Apollo Client делает все и ничего. Он и стейт контейнер и кофеварка и стейт менеджмент салюшен и HTTP клиент и GraphQL клиент и кэш система которая автоматом кеширует и нормализирует все подряд нужно тебе это или нет и шайтан магия. Ни одной из этих проблем он нормально не решает. Единственное что дает Apollo Client так это DX (Developer Experience) и скорость разработки на начальном этапе разработки. На средних и сложных проектах потом это превращается в кашу и гемор который тебе нужно будет поддерживать и слезть с него будет трудно, а если в добавок к нему Вы еще прикрутили Context API или Redux - то это все, приехали.
@izzei-16144 жыл бұрын
Вы совершание высказывание, а аргументов ноль
@ВсеволодЗахаров-я1ы Жыл бұрын
Saga это кринж
@bogdanshelomanov56684 жыл бұрын
аполо клиент выглядит максимально убого как стейт менеджер, просто не возможно, еще хуже ридакса
@izzei-16144 жыл бұрын
Тебе не нравится, другие людм радуются, что они избавились от 5000 тысяч срок redux-кода, используя apollo