На канале codeBurger сейчас толковый курс выходит. Жаль что месяц назад когда я во всё это самолично вникал небыло хороших видео, здорово бы сократило время! Спасибо за видео!
Спасибо за твои старания в донесении знаний таким простым доступным языком, по опыту изучения чуть глаз начало резать, когда увидел что определение компонента оборачиваем в observer, так уж приучился, что компонент я оставляю нетронутым, а обертку делаю в экспорте типа: export default observer(Todo). Ранее при изучении redux компонент оборачивается по такому принципу как export default connect()(Todo), поэтому вспомнил, что выглядеть должно приятнее в экспорте. Очень нравятся твои ролики, спасибо огромное!
От одного видео, к другому. Всё очень понятно и полезно. Раньше смотрел видео и понимал только часть, а теперь смотрю видео и понимаю всё. Спасибо тебе огромное, за твой труд.
Блин, все же ты красава! Никаких тебе "любая технология" за час)) зачем за час, когда и за 10 минут можно рассказать)) Лайк до просмотра и погнал видос смотреть!
@@UlbiTV конечно! Ведь главное врубиться в технологию в общем, понять как в целом она работает, а углубляться уж сами как нибудь, на практике!) в общем спасибо за видос, у тебя они все в тему и все ооочень полезные!
Тоже считаю.такие видео крайне полезными , для учебы все эти видосы на час не подходят потому что нужно быстро глянуть то что забыл и пилить дальше, получается шикарный формат, забыл, посмотрел , вспомнил/понял/переосмыслил и погнал работать.
@@UlbiTV вопрос конечно запоздалый, но лично твоё мнение на счет того что лучше использовать Redux или MobX? Слышал твои слова в конце видео, но всё же прошел год и мнение могло поменяться)
@@UlbiTV После Вашего ролика сделал тестовое на MobX. До этого знал только Redux. Посмотрим, что скажут) подход-то явно другой, а так хочется всё равно прокинуть что-то из MobX'a пропсами )
Только добрался глянуть видос, блин, я только разобрался с базовыми функциями редакса, а тут такая подстава- теперь учить еще и мобх... Засада:)))))) а если серьезно, то впервые о нем услышал, но походу действительно проще выглядит. Спасибо!!!
Спасибо большое. Всегда проходил мимо него. Сейчас попробовал и понял, что он очень крут. По крайней мере для начинающих это выглядит явно проще, нежели дебри редакса. Спасибо за ролик.
Всего за 12 минут, понятно и по делу. Большое тебе спасибо и лайк. Было бы интересно посмотреть видеоролик в связке Typescript + React (также с функциональными компонентами) + Mobx про простой TodoList. Если будет время, guide по структуре вложенных папок и файлов (typescript + react + mobx)
@@UlbiTV Если будет можешь сказать, ты внутри класса Todo реализуешь как методы такие HandleClick, RemoveClick, а я сделал стрелочные функции. handleClick = (id) => { this.todos = this.todos.map(todo => { if (todo.id === id) { todo.completed = !todo.completed } return todo }) } addHandler = (title) => { this.todos.push({id: Date.now(), title: title, completed: false}) } removeHandler = (id) => { this.todos = this.todos.filter(todo => todo.id !== id) }
Мне тех.лид сказал, что redux плох тем, что создает постоянно новый стейт, а это чревато тем, что на больших проектах где у вас стейт размером с город оптимизация летит к черту. У Mobx же просто меняется какие-то отдельные поля стейта и все ок.
Привет, спасибо за видео! Хотел уточнить кое-что, при асинхронной модификации стора в консоли появляется предупреждение " Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: ProductsStore@2._loading". Подумал что что-то делаю не так, полез в доку, ничего там подобного не нашел, пошел к тебе смотреть заново, и вижу что у тебя такое же предупреждение. Я так понимаю это не критично? Меня на собесе за это не отругают?
"Дополнительной обработки для асинхронных экшенов не надо"... Надо! А то будете ловить ошибки типа: [MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. У автора такая же. Однако вцелом видео полезное. Спасибо!
Зачем использовать map/filter и создавать новый объект, если в мобх ты можешь мутировать? зачем лишний раз давать работу gc? Создал 1 раз объект и развлекайся с ним. + ты делая complete: true, пересоздаешь массив todo. Реакт перерендерит компонент со списком(сами элементы не будут ререндериться благодаря key)
Спс за видео! Если не трудно, то интересно было бы еще узнать кое-что про RxJS, просто ради интереса.. Если я правильно понимаю, то оба SM используют тот-же паттерн observer, только MobX кажется куда как проще.
Огромное спасибо, за Ваш труд. Очень помогаете на новом проекте!! Подскажите, если основная задача отрисовка данных с бэка, есть формы отправки заявки и небольшая настройка тарифных планов, типо чекбоксы с доп. услугами. На данном этапе я справляюсь с помощью хуков, как думаете, нужен ли стейт менеджер, думал про mobX, первый проект на next.js.
Случилось непонятное. Написал в точности как на 1:45, но выскочила ошибка - в экспортируемом объекте this у меня undefined, контекст потерян. Побился некоторое время, в результате переписал методы класса на стрелочные, чтобы не биндить, и всё заработало. Вопрос: а как оно у автора-то работало? )
У меня все работает, повторял в точности как и было в видео, возможно где-то опечатался или что-то не дописал ( я так не заметил, что в экспорт по дефолту передается 'new Counter()' )
Привет, можешь подсказать зачем нужна функция runInAction она используется в асинхронных запросах в документации написано, что нужно ее использовать в асинхронне, зачем ?
Удивился такой краткости и... простоте. Увидел код на проекте, подумал, что сложнее чем редакс с сагами и санками, но сейчас вроде всё встало на свои места. Получается, Vue.js с его Vuex вдохновился Mobx?
Мда думал сложная в понимании технология типо редакса. А тут всё понятно :/. Нахрена мне тогда этот редакс для своих проектов, если есть это чудо. За ролик спасибо, очень годно, теперь точно буду интересоваться в следующий раз, когда будут обсуждать какую то новую технологию)))
Привет всем! Есть вопрос, тут автор просто импортирует экземпляр стора в компоненту, это работает, все огонь! Но на некоторых видосах, да и в доках вроде было, что экземпляр кидается через топ левел аппы. Через контекст. И вызывается потом этот стор с помощью хука. Все таки, какой подход правильный, мне очень нравится тот, что описал автор, но может есть нюансы?
Встряли это прям полный курс по mobX, но кликбейт вполне понятен, главное не удивляться хетерам. Но та информация что есть понятна и доступно рассказана. В первый раз ознакомился с MobX выглядит также как и редакс но по другому плюс подход к мутации разный. Он все сам нас делает или еще не дошло до такого? :)
мобХ сам по себе достаточно маленький, поэтому этот ролик можно вполне назвать ПОЛНЫМ)) Тут используется паттерн observer) В отличии от редакса, где на каждое действие должно возвращаться новое состояние, чтобы сравнивать ссылки)
Это и все??? Я работал с Redux 5 лет, сейчас зашел на проект с MobX. Да, это небо и земля) Я думал потрачу пару часов только на понимание сути. А тут 12 минут на 1.5 скорости и можно в работу Пойду пробовать, автору, как всегда, огромное спасибо за супер контент
а как вызвать ререндер компонента если данные из мобХ напрямую нигде не отрисовываются? я на основе их делаю запрос в бд и уже потом вывожу. я нашел выход. функцию запроса к бд поместил в useEffect и в зависимость указал данные из мобХ. Работает, но выглядит как костыли
5:00 this.todos.map(todo => ...) для изменения все таки не очень хороший вариант. все же думаю, более правильно делать this.todos.find().completed = value
После редакса, мобХ настолько приятно смотрится, что глаз радует))) Спасибо)
согласен
Жаль, что мало годных видео по MobX на русском
А если тулкит редакс?
@@ВладиславБаурин-й4я та же шляпа)
На новом проекте работаю с mobx. И он действительно потрясающий. Редакс даже рядом не стоял. Настолько он архаичный и неудобный.
Отличное разъяснение, быстро и без воды. А то другие любят курс из 10 видео по 25 минут делать. Спасибо
У меня все видео без воды) Спасибо вам!
Не ну тут и 1000 лайков поставить не жалко, нет норм гайдов по мобх, а тут прям все как надо, спасибо автору!!
Спасибо большое, рад что полезно!)
На канале codeBurger сейчас толковый курс выходит.
Жаль что месяц назад когда я во всё это самолично вникал небыло хороших видео, здорово бы сократило время!
Спасибо за видео!
@@StepanVorobiov спасибо !))
Кратко, лаконично, но при этом суть раскрыта в полной мере! Лайк!
Спасибо за видео. В очередной раз поражаюсь твоему таланту объяснять всё кратко и понятно.
сначала офигел от названия и продолжительности видео, но реально круто и все понятно.Странно что у тебя еще до сих пор только 2к подписчиков
Потихоньку растем!) С вашей поддержкой! Спасибо
200k D:
213)))
@@UlbiTV 304k держу в курсе
Спасибо за твои старания в донесении знаний таким простым доступным языком, по опыту изучения чуть глаз начало резать, когда увидел что определение компонента оборачиваем в observer, так уж приучился, что компонент я оставляю нетронутым, а обертку делаю в экспорте типа: export default observer(Todo). Ранее при изучении redux компонент оборачивается по такому принципу как export default connect()(Todo), поэтому вспомнил, что выглядеть должно приятнее в экспорте. Очень нравятся твои ролики, спасибо огромное!
После redux, redux-thunk и redux-saga это все так легко понимается. Аш порадовался) спасибо.
От одного видео, к другому. Всё очень понятно и полезно. Раньше смотрел видео и понимал только часть, а теперь смотрю видео и понимаю всё. Спасибо тебе огромное, за твой труд.
Спасибо за видео! Как раз переход на MobX уже не кажется чем-то безумно сложным! Спасибо за разъяснения!
Успехов! и спасибо)
Блин, все же ты красава! Никаких тебе "любая технология" за час)) зачем за час, когда и за 10 минут можно рассказать)) Лайк до просмотра и погнал видос смотреть!
Хеех, спасибо дружище) Тут при желании и это видео на час растянуть можно, только вот зачем, если можно кратенько и по факту!)
@@UlbiTV конечно! Ведь главное врубиться в технологию в общем, понять как в целом она работает, а углубляться уж сами как нибудь, на практике!) в общем спасибо за видос, у тебя они все в тему и все ооочень полезные!
@@kolyabokov88 Еще раз спасибо)
Тоже считаю.такие видео крайне полезными , для учебы все эти видосы на час не подходят потому что нужно быстро глянуть то что забыл и пилить дальше, получается шикарный формат, забыл, посмотрел , вспомнил/понял/переосмыслил и погнал работать.
@@UlbiTV вопрос конечно запоздалый, но лично твоё мнение на счет того что лучше использовать Redux или MobX? Слышал твои слова в конце видео, но всё же прошел год и мнение могло поменяться)
просто ОФИГЕННО. Быстро, просто, БЕЗ ВОДЫ, но подробно!
Весь канал такой)) Спасибо, успехов!
@@UlbiTV После Вашего ролика сделал тестовое на MobX. До этого знал только Redux. Посмотрим, что скажут) подход-то явно другой, а так хочется всё равно прокинуть что-то из MobX'a пропсами )
Кратко и лаконично как всегда, спасибо за полезные туториалы
Благодарю!)
рад, что случайно наткнулся на этот канал)
Спасибо друг, а я рад что тебе полезно!)
Только добрался глянуть видос, блин, я только разобрался с базовыми функциями редакса, а тут такая подстава- теперь учить еще и мобх... Засада:)))))) а если серьезно, то впервые о нем услышал, но походу действительно проще выглядит. Спасибо!!!
Спасибо за отзыв!)) лучше добей уже редакс, когда почувствуешь что обуздал его, возвращайся сюда!)
@@UlbiTV да я так, пошутил просто, я на мобх пока даже не смотрю, глянул видео скорее для общего кругозора:)))
Огромнейшее спасибо за видео. Ты помогаешь мне реализовывать мою цель - быть разработчиком!
Спасибо большое. Всегда проходил мимо него. Сейчас попробовал и понял, что он очень крут. По крайней мере для начинающих это выглядит явно проще, нежели дебри редакса. Спасибо за ролик.
Ооо mobx, если еще про тайпскрипт что то подобное сделаешь, вообще цены не будет, лайк комент все как обычно. П. С. В конце с мк смешно вышло
Спасибо, в дальнейшем будет про тс что то возможно
Коротко и по теме, от души спасибо!
У тебя охренительные видео! Я почти всему научился благодаря тебе!
Хорошее объяснение. Без воды. Подписка, лайк.
На канале много интересного!) Спасибо!)
Кратко, по сути, с хоршими примерами.. Спасибо
Лучшие уроки по JavaScript
Автор, вы большой молодец. Спасибо!
Оууууууу щит. Это лучше что я видел по mobx. Спасибо
Прекрасно объяснил! Тема реально актуальна. Спасибо
Cпасибо, друг!)
Всего за 12 минут, понятно и по делу. Большое тебе спасибо и лайк.
Было бы интересно посмотреть видеоролик в связке Typescript + React (также с функциональными компонентами) + Mobx про простой TodoList.
Если будет время, guide по структуре вложенных папок и файлов (typescript + react + mobx)
Спасибо!) До тайпскрипта руки никак не дойдут, но в планах!)
@@UlbiTV Если будет можешь сказать, ты внутри класса Todo реализуешь как методы такие HandleClick, RemoveClick, а я сделал стрелочные функции.
handleClick = (id) => {
this.todos = this.todos.map(todo => {
if (todo.id === id) {
todo.completed = !todo.completed
}
return todo
})
}
addHandler = (title) => {
this.todos.push({id: Date.now(), title: title, completed: false})
}
removeHandler = (id) => {
this.todos = this.todos.filter(todo => todo.id !== id)
}
Правильный ли этот код, и можно ли этот код сократить ?
Хотя вроде без проблем работает, а то в React есть такие понятия как мутация state
@@dossh429 Да все ок!!) В mobx можно изменять обьекты, в редакс и реакте же состояние является неизменяемым, и надо каждый раз новый обьект передавать
Мне тех.лид сказал, что redux плох тем, что создает постоянно новый стейт, а это чревато тем, что на больших проектах где у вас стейт размером с город оптимизация летит к черту. У Mobx же просто меняется какие-то отдельные поля стейта и все ок.
Ого! Я тут на пару недель выпал, а ты уже столько видео наделал. Супер.
Правда не понятно когда смогу посмотреть :(
Как минутка будет, жду твоего просмотра и отзыва!)
Лучший, кратко, полно, информативно, спасибо!)
Спасибо!)
Теперь я знаю Mobx, оказалась простая штука, спасибо)
Чувак просто легенда. Достоин миллиона подписчиков
Спасибо большое, очень круто и никакой воды. Подписалась. Жду новых роликов)
Велком на остальные видосы!) Спасибо вам!)
MobX на фоне Redux выглядит максимально просто и понятно
да, он действительно проще)
На мой взгляд, так использовать обёртку красивее:
. . .
*export default observer(Counter);*
Согласен)
После редакса действительно, как бальзам на душу
Кратко, четко, информативно. В твоем стиле, в общем ) Спасибо! Идем дальше
Лучший!! Нашел твой канал 2 дня назад и я просто удивлен количеством годного контента!! За такое и патрон оформить не жалко. Спасибо!!
Огонь, всё доступно и понятно, спасибо )
Спасибо дружише)
Даже не ожидал что MobX такой простой ! Лайк
По традиции ставлю лайк и пишу комментарий б
Просто огонь! Все четко, понятно, и по существу! Благодарю!)
Спасибо! Очень доступно и понятно!!! Успехов в развитии канала!
Спасибо, как всегда понятно и доходчиво)
Благодарочка)
Привет, спасибо за видео! Хотел уточнить кое-что, при асинхронной модификации стора в консоли появляется предупреждение " Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: ProductsStore@2._loading". Подумал что что-то делаю не так, полез в доку, ничего там подобного не нашел, пошел к тебе смотреть заново, и вижу что у тебя такое же предупреждение. Я так понимаю это не критично? Меня на собесе за это не отругают?
Видео короткое и содержательное. Спасибо!
"Дополнительной обработки для асинхронных экшенов не надо"...
Надо!
А то будете ловить ошибки типа: [MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed.
У автора такая же.
Однако вцелом видео полезное. Спасибо!
Интересно и познавательно,спасибо !
Первый вопрос который возник при просмотре: _а зачем тогда Redux-бубен и танцы с Action, Dispatch, Thunk, Saga?.._
Зачем использовать map/filter и создавать новый объект, если в мобх ты можешь мутировать? зачем лишний раз давать работу gc? Создал 1 раз объект и развлекайся с ним.
+ ты делая complete: true, пересоздаешь массив todo. Реакт перерендерит компонент со списком(сами элементы не будут ререндериться благодаря key)
Всегда приятно смотреть твои видео уроки.
Жаль нельзя поставить больше одного лайка! Спасибо за видео! :-)
Cпасибо, теска!)
11:00 это было самое крутое объяснение для чего нужен redux thunk и redux saga )
Спс за видео! Если не трудно, то интересно было бы еще узнать кое-что про RxJS, просто ради интереса.. Если я правильно понимаю, то оба SM используют тот-же паттерн observer, только MobX кажется куда как проще.
Спасибо, очень кратко и понятно
Огромное спасибо за такой полезный контент
Спасибо вам за поддержку!
Спасибо тебе, автор, очень крутое объяснение !
благодарю ещё раз за все твои видео!
Огромное спасибо, за Ваш труд. Очень помогаете на новом проекте!! Подскажите, если основная задача отрисовка данных с бэка, есть формы отправки заявки и небольшая настройка тарифных планов, типо чекбоксы с доп. услугами. На данном этапе я справляюсь с помощью хуков, как думаете, нужен ли стейт менеджер, думал про mobX, первый проект на next.js.
Случилось непонятное. Написал в точности как на 1:45, но выскочила ошибка - в экспортируемом объекте this у меня undefined, контекст потерян. Побился некоторое время, в результате переписал методы класса на стрелочные, чтобы не биндить, и всё заработало. Вопрос: а как оно у автора-то работало? )
У меня все работает, повторял в точности как и было в видео, возможно где-то опечатался или что-то не дописал ( я так не заметил, что в экспорт по дефолту передается 'new Counter()' )
Какой он простой, оказывается. Буду пользоваться, спасибо за ролик
Ох блин! Не каких тебе долбаных санков\танков, саги и прочей лабуды! крутяк!
очень информативно, спасибо)
Рад стараться!)
Красавчик! Лучшее
Доступно и понятно все! Спасибо!!
Тимур, у меня массив отрисовался, но почему-то не работает кнопки чекбокс. Такое впечатление, что в выражении {t.completed} поле completed не видит.
Wy Super, Timur. Wsyo genialnoye prosto - eto pro Was
Спасибо, как всегда понятно и доходчиво
Спасибо за отзыв!)
Всё что надо для старта. Спасибо!
Привет, можешь подсказать зачем нужна функция runInAction она используется в асинхронных запросах в документации написано, что нужно ее использовать в асинхронне, зачем ?
Честно говоря не знаю) не использовал
Спасибо ты сделал выбор в новом проекте за меня!
Хеех) круто!)
Спасибо) Урок достойный
Спасибо друг!
Спасибо за труд!
Коротко и понятно то что нужно 👍
кратко, емко, полезно! спасибо!
Старался, спасибо вам!
Удивился такой краткости и... простоте. Увидел код на проекте, подумал, что сложнее чем редакс с сагами и санками, но сейчас вроде всё встало на свои места. Получается, Vue.js с его Vuex вдохновился Mobx?
Не то чтобы вдохновился, просто они оба построены на observable паттерне
6:15 ох уж эти вьюшные привычки )
Мда думал сложная в понимании технология типо редакса. А тут всё понятно :/. Нахрена мне тогда этот редакс для своих проектов, если есть это чудо. За ролик спасибо, очень годно, теперь точно буду интересоваться в следующий раз, когда будут обсуждать какую то новую технологию)))
Даааа, мобХ гораздо проще для понимания) Спасибо!
@@UlbiTV спасибо тебе, я благодаря тебе узнал за месяц больше, чем узнавал за год
Привет всем! Есть вопрос, тут автор просто импортирует экземпляр стора в компоненту, это работает, все огонь! Но на некоторых видосах, да и в доках вроде было, что экземпляр кидается через топ левел аппы. Через контекст. И вызывается потом этот стор с помощью хука.
Все таки, какой подход правильный, мне очень нравится тот, что описал автор, но может есть нюансы?
Your tutorials always was useful. Thanks so much and good luck !
Спасибо за материал Улби!
Спасибо за видео 🙏🏻 у вас просто талант рассказывать, сложные темы , просто и доходчиво 👏 #mobx-react-lite mobx-react
Прикол и зачем я редакс учил, кайф короче. MobX top
Встряли это прям полный курс по mobX, но кликбейт вполне понятен, главное не удивляться хетерам. Но та информация что есть понятна и доступно рассказана.
В первый раз ознакомился с MobX выглядит также как и редакс но по другому плюс подход к мутации разный. Он все сам нас делает или еще не дошло до такого? :)
мобХ сам по себе достаточно маленький, поэтому этот ролик можно вполне назвать ПОЛНЫМ)) Тут используется паттерн observer) В отличии от редакса, где на каждое действие должно возвращаться новое состояние, чтобы сравнивать ссылки)
Спасибо за уроки мужик
Спасибо!
Действительно, mobx кажется гораздо проще
как всегда самая годнота - контент)
Это и все??? Я работал с Redux 5 лет, сейчас зашел на проект с MobX. Да, это небо и земля) Я думал потрачу пару часов только на понимание сути. А тут 12 минут на 1.5 скорости и можно в работу
Пойду пробовать, автору, как всегда, огромное спасибо за супер контент
Short and descriptive.
Thanks Timur
а как вызвать ререндер компонента если данные из мобХ напрямую нигде не отрисовываются? я на основе их делаю запрос в бд и уже потом вывожу.
я нашел выход. функцию запроса к бд поместил в useEffect и в зависимость указал данные из мобХ. Работает, но выглядит как костыли
5:00 this.todos.map(todo => ...) для изменения все таки не очень хороший вариант. все же думаю, более правильно делать this.todos.find().completed = value
cпасибо бро за контент
коротко и по сути, а дальше все по традиции.. ну и спасибо )
Классно и лаконично объясняешь. А mobx довольно простой по сравнению с редакс. Все эти санки, саги, мидлвейры ... (((
Спасибо! Классный ролик.
Если мы пишем функциональным подходом с хуками 2022 год , тоже писать с помощью классов или как ??
[05:04] не понял как можно упростить removeTodo() и completeTodo()? Пожалуйста напишите код
В классе:
completeTodo(todo) {
todo.completed = !todo.completed
}
В компоненте:
onChange={()=> todo.completeTodo(t)}
круто, легко и понятно
Это вообще бомба особенно после redux saga ))))
Как к твоему прмеру прикрепить mobx-persist? У них в примерах по другому сделано.