Здравствуйте! Рада, если статья оказалась Вам полезна.
Как Вам ответили ранее - не стоит использовать useCallback для данного кейса: он полезен, если мы хотим получать одну и ту же функцию, чтобы избежать лишних рендеров именно дочерних компонентов или, например, если эта функция является зависимостью других хуков.
Добрый день! Спасибо за комментарий) Да, так и есть: Реакт гарантирует, что она не изменится.
В данном случае стоит заметить, что в примерах в useCallback передается не сама функция-сеттер, а еще одна стрелочная функция, которая содержит этот сеттер. Это пример, в реальности эта функция могла вызывать не только сеттер, но и отправлять метрику на click, например, или вызывать еще один колбэк.
Добрый день! Согласна, что пойти на курсы логично — я также писала о том, что рекомендую это сделать, особенно если совсем нет опыта в разработке — с хорошим наставником обучение может быть более быстрым. Но при этом думаю, что 1) не все могут себе позволить хорошие курсы на освоение профессии в известной школе, 2) некоторым людям полноценный курс может быть излишен и они смогут получить все знания самостоятельно из открытых источников, курсов и книг в своем темпе — в таком случае хотелось бы просто помочь сориентироваться в обучении, 3) данный список ресурсов в любом случае может быть полезен как дополнительный источник информации при обучении.
Среди оставленных рекомендаций несколько раз ссылалась в том числе на freeCodeCamp, udemy, курсы на youtube:)
Что касается меня, то я проходила курсы и не одни, когда только начинала знакомиться с программированием, а также заканчивала основную программу Технопарка при МГТУ им. Н.Э. Баумана с курсом по фронтенд-разработке и по окончании была ментором по фронтенду.
Большинством ресурсов из приведенного списка я пользовалась сама (так как в свое время переквалифицировалась из C++/Python-разработчика во фронт) и они были мне очень полезны. Сложно выделить максимально полезное, ведь разным людям нравятся разные подходы, именно cвоим опытом я и попыталась поделиться в данной статье. Если у вас другое видение — поделитесь, это будет полезно!:)
Спасибо за комментарий! Понимаю, о чём вы говорите. На мой взгляд к этому стоит приступать изучив хотя бы один язык, чтобы понимать, о чем идет речь, например, в книге «Совершенный код». Но я ее также очень советую, спасибо, что дописали)
По поводу паттернов: refactoring.guru отличный ресурс, согласна. Однако там нет примеров на JavaScript (хотя и есть на TypeScript), поэтому в список добавляла не его, а книгу по Паттернам проектирования на JS (Learning JavaScript Design Patterns в разделе «Углубленное»).
Здравствуйте! Рада, если статья оказалась Вам полезна.
Как Вам ответили ранее - не стоит использовать useCallback для данного кейса: он полезен, если мы хотим получать одну и ту же функцию, чтобы избежать лишних рендеров именно дочерних компонентов или, например, если эта функция является зависимостью других хуков.
Можно вынести функцию за пределы компонента, если она не зависит от props и state, либо оставить её, как есть. Про влияние создания функций при каждом рендере на производительность можно прочитать ответ в официальной документации React: https://ru.reactjs.org/docs/hooks-faq.html#are-hooks-slow-because-of-creating-functions-in-render
Добрый день! Спасибо за комментарий) Да, так и есть: Реакт гарантирует, что она не изменится.
В данном случае стоит заметить, что в примерах в useCallback передается не сама функция-сеттер, а еще одна стрелочная функция, которая содержит этот сеттер. Это пример, в реальности эта функция могла вызывать не только сеттер, но и отправлять метрику на click, например, или вызывать еще один колбэк.
Добрый день! Согласна, что пойти на курсы логично — я также писала о том, что рекомендую это сделать, особенно если совсем нет опыта в разработке — с хорошим наставником обучение может быть более быстрым. Но при этом думаю, что 1) не все могут себе позволить хорошие курсы на освоение профессии в известной школе, 2) некоторым людям полноценный курс может быть излишен и они смогут получить все знания самостоятельно из открытых источников, курсов и книг в своем темпе — в таком случае хотелось бы просто помочь сориентироваться в обучении, 3) данный список ресурсов в любом случае может быть полезен как дополнительный источник информации при обучении.
Среди оставленных рекомендаций несколько раз ссылалась в том числе на freeCodeCamp, udemy, курсы на youtube:)
Что касается меня, то я проходила курсы и не одни, когда только начинала знакомиться с программированием, а также заканчивала основную программу Технопарка при МГТУ им. Н.Э. Баумана с курсом по фронтенд-разработке и по окончании была ментором по фронтенду.
Большинством ресурсов из приведенного списка я пользовалась сама (так как в свое время переквалифицировалась из C++/Python-разработчика во фронт) и они были мне очень полезны. Сложно выделить максимально полезное, ведь разным людям нравятся разные подходы, именно cвоим опытом я и попыталась поделиться в данной статье. Если у вас другое видение — поделитесь, это будет полезно!:)
По поводу паттернов: refactoring.guru отличный ресурс, согласна. Однако там нет примеров на JavaScript (хотя и есть на TypeScript), поэтому в список добавляла не его, а книгу по Паттернам проектирования на JS (Learning JavaScript Design Patterns в разделе «Углубленное»).