Ответы пользователя по тегу React
  • Ментор или план прокачки?

    Robur
    @Robur
    Знаю больше чем это необходимо
    "раскурить" может за неделю-две и можно, а вот научиться делать нормальные большие приложения с минимумом говнокода - надо побольше времени.

    Для прокачивания одна дорога - использовать и писать приложения. Или пет-проект(ы), или новый проект на работе, или уволиться и уйти туда где все это есть. Максимально быстро - это третий вариант, с условием попадания в хорошую сильную команду.
    Ответ написан
    3 комментария
  • Можно ли совмещать Redux с локальным состоянием?

    Robur
    @Robur
    Знаю больше чем это необходимо
    да
    Ответ написан
    Комментировать
  • Пользовательские хуки или HOC, когда что использовать?

    Robur
    @Robur
    Знаю больше чем это необходимо
    В каких случаях использовать HOC, а в каких пользовательские хуки?

    Если вы перешли на разработку с использованием хуков и хотите единообразия в коде - то всегда хуки. HOC не нужен вообще.

    Если вам нравится/хочется запилить HOC и некоторая каша в коде вас не смущает - делайте HOC.

    В плане функционала и возможностей они взаимозаменяемы.
    С точки зрения чистоты кода конечно при переходе на хуки от HOC надо отказаться - это просто лишний концепт в приложении.
    Ответ написан
    4 комментария
  • Как организовать компонент "Страница категории"?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Раз уж просили:
    1. Что значит "правильно"? нормальноу вас организовано
    2. называть что-то контейнером или нет - это ваше личное дело, в зависимости от того как вы для себя решите код организовать. каких-то требований и общепринятых стандартов которые нельзя нарушать по этому поводу нет.
    3. в общем случае - лучше загружать данные где-то в одном месте. Но бывают и исключения, дурно ли это у вас или нет здесь - я не знаю. Может так меньше запросов на сервер или лучше код, - тогда не дурно. Если вы просто не знали как код организовать и скопипастили загрузку в два места - то дурно.
    4. можно
    х. если нет нужды в редаксе, то да, он и не нужен. Если код начнет усложняться - какой-то стейт приложения потребуется.

    ПС. можете посмотреть на apollo-client, у него внутри редакс вроде. Но подобного плана библиотеки писать вам вряд ли придется.
    Ответ написан
    3 комментария
  • Несколько запросов API react hooks?

    Robur
    @Robur
    Знаю больше чем это необходимо
    возможно, как-то так
    const [data, setData] = useState(null)
    async function doStuff() {
      const data = await fetch(...)
      setData(data)
    }
    ....
     <Button onClick={doStuff} />
    ...
    Ответ написан
  • Какую книгу подарить ведущему программисту в компании?

    Robur
    @Robur
    Знаю больше чем это необходимо
    По его специальности 100% не дарить. то что ему надо он уже нашел и прочитал, а ненужное - ненужно.

    Подарите вот такую
    https://www.litres.ru/robert-satton/ne-rabotayte-s...
    Ответ написан
    Комментировать
  • Как объединить React с Django Rest Framework?

    Robur
    @Robur
    Знаю больше чем это необходимо
    то-то слышал про GET, POST, но не знаю как начать и с чего.

    Вот с этого и начните, почитайте про HTTP
    Ответ написан
    2 комментария
  • Почему не срабатывает Redirect react-router-dom?

    Robur
    @Robur
    Знаю больше чем это необходимо
    редиректить вас будет только если вы не на /main или /auth, иначе будут срабатывать первые два Route в Switch и до Redirect дело просто не дойдет.
    можете добавить проверку props.isLogin в каждый Route
    {props.isLogin && }
    {!props.isLogin && }
    но это не точно

    https://reacttraining.com/react-router/web/example... еще посмотрите, как пример.
    Ответ написан
    Комментировать
  • Как протестировать компоненет react?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Чтобы что-то протестировать, надо решить что вы будете тестировать.
    Чтобы решить что вы будете тестировать, надо найти что может внезапно поломаться.

    Что вы хотите протестировать в этом компоненте такого, что
    1. относится к логике этого компонента
    2. может незаметно сломаться
    3. настолько важно чтобы окупить затраты по написанию-сопровождению теста?

    присваивание переменной? это ломаться не должно.
    Работу .map (тот пример что вы описали)? это внешняя логика, да и вообще - встроенный функционал.
    То что в Recipe вы передаете recipe? это не может сломаться, пока вы сознательно не удалите. В этот момент тест тоже станет не валидным, и он вам ничем не поможет, его надо будет менять.

    В общем - не надо его тестировать. Разве что для тренировки, попробовать как оно.
    Ответ написан
    Комментировать
  • Что такое jsconfig.json?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. да, это файл для vscode помогающий редактору лучше понять где у вас что.
    https://code.visualstudio.com/docs/languages/jsconfig
    2. так как vscode крайне популярен, его поддержку добавили в create-react-app, чтобы брать оттуда какие-то параметры и облегчить настройку-конфигурацию сборки.
    https://github.com/facebook/create-react-app/searc...
    Ответ написан
    Комментировать
  • Как приостановить повторный ререндер компонента?

    Robur
    @Robur
    Знаю больше чем это необходимо
    нет такого понятия "рероут".
    если компонент рендерится полностью заново - значит в какой-то момент какой-то компонент размонтируется и другой компонент монтируется.
    Возможно это делает react-router, а возможно и нет.
    Покажите код роута для начала.
    Ответ написан
  • Как настроить роутинг, чтобы отображалась нужная информация?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Уберите тег react-native.
    передать name и time можно через пропсы, используйте render вместо component, тогда сможете передать туда все что захотите:
    https://reacttraining.com/react-router/web/api/Rou...
    Ответ написан
  • Почему в компонент передают массив с данными через обьект?

    Robur
    @Robur
    Знаю больше чем это необходимо
    так сделано апи функциональных компонентов. В функцию передается объект в котором пропсы. Это устройство мироздания в данной локальной точке, смиритесь и делайте так как описано в документации.

    Если вас фигурные скобочки смущают, можете писать
    export const Notes = (props) => { // дальше props.arrList
    Ответ написан
    Комментировать
  • Как вызвать функцию React компонента из вне?

    Robur
    @Robur
    Знаю больше чем это необходимо
    То что вы хотите сделать, правильно делать не так - нужно передавать данные через props,
    дальше в useEffect брать эти пропсы и обновлять chartInstance.
    Ответ написан
  • Нужно ли использовать MV* паттерны в React приложениях?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Не натягивайте ужа на кактус.
    Ответ написан
    8 комментариев
  • Почему компонент не видит меню?

    Robur
    @Robur
    Знаю больше чем это необходимо
    setNav(getMenu());

    запишет туда промис который вернет getMenu. Ждать ваш фетч тут никто не будет
    Ответ написан
    3 комментария
  • Если фронтенд часть (React) живёт на сервере - это всё ещё фронтенд?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вы нам из 2040 пишете? Такое ощущение что в вашем мире JS код в браузере никто не запускает уже лет 15.

    SSR используется в 1% случаев, и то - практически всегда этот же код потом попадет в браузеры и будет там работать, поэтому ему нужен бабель, вебпак и все прочее.

    1. Браузер получает JS и выполняет его. Заэтим и нужно все перечисленное.
    2. в 2040 это наверное уже не важно, а в нашем 2020 все еще существует куча методов деплоить и разворачивать браузерные приложения.
    3. Я не знаю где это у вас все считается на сервере, в нашем 2020 99% кода веб приложений все еще запускается в браузере. 1% - это сборка-транспиляция-дев-серверы.
    4. не можем, SSR не для этого, он для того чтобы отдавать клиенту изначально отрендеренный HTML и потом туда грузить приложение. Есть проекты которые рендерят веб-аппы в статические HTML, которые потом отдаются браузеру, но в нашем 2020 это пока еще экзотика.
    5. Если довлеет. Но он нет. Хотя идея супер тонких видео клиентов витает в воздухе еще с тех времен когда люди, помнящие теплые ламповые майнфреймы закупились первыми ПК и стали предаваться ностальгии. Такие проекты тоже есть, но они в нашем 2020 еще большая экзотика чем SSR без активного клиента. Хотя я в подобном участвовал лично.
    Выразятся ли они в чем-то массовом или нет - время покажет. Мое мнение - нет, заметно проще и дешевле и эффективнее по многим параметрам нарисовать миллион веб страничек на миллионах клиентах, чем на одном большом сервере и отдать всем в виде видео.
    Ответ написан
    6 комментариев
  • Нужно ли писать тесты(Jest/Enzyme) в React приложении которое написано на TypeScript?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Там ведь итак всё строго типизированно... есть ли в этом смысл?


    найдите ошибку логики и ошибку типов:
    //returnы number increased by one
    function addOne(a: number) {
     return a-1
    }
    Ответ написан
    Комментировать
  • Как правильно написать react хук?

    Robur
    @Robur
    Знаю больше чем это необходимо
    А как вызов обработчиков влияет на вызов хуков?
    вызывайте всегда оба хука всегда, а обработчики можете вызывать как угодно и в любом порядке
    Ответ написан
    Комментировать
  • Как узнать сколько чилдренов возвращает компонент React?

    Robur
    @Robur
    Знаю больше чем это необходимо
    во время выполнения App у вас еще нет информации о том, будут ли кнопки срендерены или нет. Вы просто возвращаете дескриптор виртуального дерева.
    "рендерить" куда-то в переменную так себе затея.
    Возможные решения
    - выносить логику из врапперов куда-то выше (где вам надо использовать эту информацию). Например , где Wrapper будет просто содержать инфу об условии а фильтрацию непосредственно делать будет WrappersList, поэтому там же можно сделать что-то еще. Либо, как вариант вынести логику из компонент чтобы ее можно было использовать независимо в Wrapper и WrapperList
    - соорудить что-нибудь чтобы передать состояние о том сработал враппер или нет в родительский компонент (колбеки например) и соответственно менять рендеринг в родительском компоненте. Тут главное сделать это аккуратно и без граблей
    Ответ написан
    Комментировать