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