Спасибо добрый человек. Первое видео, в котором я понял не много принцип работы кастомных хуков, и как их создавать. И localstorage скорее всего скоро придётся работать. Я джун джуновский, месяц только поработал, стажируюсь.
хвала тебе, мне как раз по заданию из курса надо было localstorage запилить)))) у меня всё котелок не мог сообразить как сделать это, а тут твоё видео)))) всё получилось!!!! огромное спасибо
Миша, спасибо) я как раз написал месяц назад хук для работы с lacalstorage, но он не такой изящный получился что ли) взял на вооружение твой пример и очень за это благодарен!
За счёт чего идёт перерисовка компоненты App..?.. Ведь как я понимаю по клику по бтн просто запускается функция useToggle.. А реакт рендерится когда меняется стейт или родительский компонент
@@mishanep , спасибо за ответ и урок, как всегда топ...До это мне сказали, что кастомный хук нужно называть только с use, поэтому react тогда будет делать рирендер... )
сделал я хук для поиска, как у Вас показано. все работает. но потом я решил из него вынести обращение к серверу. сделал хук и для этого, а оно не стало работать, посокльку так нельзя пишет. спросил в телеграме и мне показали фразу в которой написано что хук не может быть вызван из хука. но в другом видео показано что хук вызывается из хука. но там несколько не так сделан обмен переменными. у Вас показано ретурн в квадратных скобках и прием так же. а там показан ретурн в фигурных, прием либо так же, либо просто присваивание переменной из хука. можете ли показать как хук из хука будет вызываться при Вашем способе создания?
Приветствую. Не совсем понимаю суть вопроса. Хук из хука - это, вероятно про реакт хуки, что из коробки идут. Там есть своя логика почему - хуки на верхнем уровне должны вызываться, не в колбеках, ни по условию, ни в цикле. А кастомные хуки чаще всего используют вместе с реакт хуками и часто с другими кастомными хуками. Вернуть же можно что угодно из хука.
@@mishanep спасибо за ответ. по поводу вернуть я уже нашел такое же в других местах. позже еще раз попробую вызвать один хук из другого, как будет время на эксперименты и постараюсь написать что получилось.
Приятный голос, и подача классная. Пока что нравится.
Большое спасибо за ваш труд! Всё становится супер понятно после просмотра ваших уроков!
Супер пример и супер объяснение 👍🏻
Красивая реализация, доступное и грамотное объяснение. Спасибо!
Спасибо тебе добрый человек.
Спасибо! Очень полезное видео👍
Спасибо добрый человек. Первое видео, в котором я понял не много принцип работы кастомных хуков, и как их создавать. И localstorage скорее всего скоро придётся работать. Я джун джуновский, месяц только поработал, стажируюсь.
как дела спустя 2 года? Стало более понятно?)
@@ri4an598 Да, вполне понятно.
@@ПавелГ-р1п кем щас работаешь? По скиллам мидл+- уже?)
@@ri4an598 Фронт. По скилам наверное близко к миндлу, но там ещё пахать и пахать)))
@@ПавелГ-р1п неееет, я только джун
хвала тебе, мне как раз по заданию из курса надо было localstorage запилить)))) у меня всё котелок не мог сообразить как сделать это, а тут твоё видео)))) всё получилось!!!! огромное спасибо
Красота! Спасибо
Отличный видеоролик! Успехов! 🚀🚀🚀
Лучший, спасибо, очень детально и понятно
Миша, спасибо) я как раз написал месяц назад хук для работы с lacalstorage, но он не такой изящный получился что ли) взял на вооружение твой пример и очень за это благодарен!
Очень хороший урок
Спасибо!
Спасибо! Помогло ))
💣🔥💣 супер!!!
А в тогле получается то что экспортится и то что используем в аппе никак по названиям не матчися?
Это тема деструктуризации массивов - там имена не важны, только порядок. В случае с деструктуризацией объекта - наоборот.
Какая запоминающаяся фамилия)))
А useCallback не нужно использовать для addToOrder?
Это уже вопрос оптимизации. Его надо рассматривать отдельно. В текущем варианте он не требуется.
Подскажите пожалуйста, а что означают квадратные скобки в кастомном хуке? " return [value, toggle]; "
Возвращаемое значение это массив, где первым элементом передаётся значение, а вторым - функция.
@@mishanep Спасибо вам!
За счёт чего идёт перерисовка компоненты App..?.. Ведь как я понимаю по клику по бтн просто запускается функция useToggle.. А реакт рендерится когда меняется стейт или родительский компонент
Так useToggle содержит стейт, который меняется при клике. Следовательно и компонент, работающий с этим стейтом, рендерится.
@@mishanep , спасибо за ответ и урок, как всегда топ...До это мне сказали, что кастомный хук нужно называть только с use, поэтому react тогда будет делать рирендер... )
Только начал ТС и возникла проблема с типизацией useToggle, оба значения из картежа обозначает boolean или void. Как исправить?
function useToggle(inititalValue: boolean): [boolean, () => void]
кидаешь в чатгпт он все делает
Супер! Только Вы наверное все же забыли указать ссылку на codesandbox.
Исправился))
Спасибо за урок. Единственное толковое объяснение.
сделал я хук для поиска, как у Вас показано. все работает. но потом я решил из него вынести обращение к серверу. сделал хук и для этого, а оно не стало работать, посокльку так нельзя пишет. спросил в телеграме и мне показали фразу в которой написано что хук не может быть вызван из хука. но в другом видео показано что хук вызывается из хука. но там несколько не так сделан обмен переменными. у Вас показано ретурн в квадратных скобках и прием так же. а там показан ретурн в фигурных, прием либо так же, либо просто присваивание переменной из хука. можете ли показать как хук из хука будет вызываться при Вашем способе создания?
Приветствую. Не совсем понимаю суть вопроса. Хук из хука - это, вероятно про реакт хуки, что из коробки идут. Там есть своя логика почему - хуки на верхнем уровне должны вызываться, не в колбеках, ни по условию, ни в цикле. А кастомные хуки чаще всего используют вместе с реакт хуками и часто с другими кастомными хуками. Вернуть же можно что угодно из хука.
@@mishanep спасибо за ответ. по поводу вернуть я уже нашел такое же в других местах. позже еще раз попробую вызвать один хук из другого, как будет время на эксперименты и постараюсь написать что получилось.
Миша почему ты не отвечаешь на комментарии
Разве?
Здравствуйте! Почему в локал сторадж не сохраняет значения после перезагрузки или обновления приложения?
import React, { useEffect, useState } from "react";
import "./styles.css";
export default function App() {
const [radioValue, setRadioValue] = useState("");
useEffect(() => {
window.localStorage.setItem("language", radioValue);
}, [radioValue]);
useEffect(() => {
setRadioValue(JSON.parse(window.localStorage.getItem("radioValue")));
}, []);
function changeHandler(event) {
setRadioValue(event.target.value);
}
return (
Hello!
);
}
Спасибо!