Задать вопрос
  • Как отфильтровать вложенный массив по названию объекта?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    const newItems = items.map(item => ({info: item.info}));
    Ответ написан
    Комментировать
  • Как на React при изменении Route менять содержимое тега?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Самый простой способ с componentDidMount менять document.title, так мы делали в одном из проектов.
    А так, например, в Gatsby, я видел пользуются плагином react-helmet, он позволяет менять содержимое заголовка head. Посмотрите на него.
    Ответ написан
    Комментировать
  • Над чем нужно работать, что улучшать?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Это вообще по js коду, чем чисто к реакту.
    switch(curr){
          case "eur":
            newCurrency = {...this.state.currencyData, rub: false, usd: false, eur: true };
            break
          case "usd":
            newCurrency = {...this.state.currencyData, rub: false, usd: true, eur: false };
            break
          default:
            newCurrency = {...this.state.currencyData, rub: true, usd: false, eur: false };
            break
          }


    А если будет еще валюта, будете еще свойства добавлять? Лучше держать свойство currency и от него отталкиваться. Был бы typescript, еще б указали какие строки туда можно куда присваивать. Причем в state currency уже есть, зачем currencyData я не понял.

    Тоже самое со всеми stop свойствами, их много, трудно понять, что к чему. В общем, посмотрите на это в первую очередь.
    Ответ написан
    2 комментария
  • Как протестировать функцию в React через Jest?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Я отвечу в тех рамках, с которыми я знаком, как я тестирую и вижу это. Тестировать смысла нет методы в реакт компоненте. Я думаю подходить к этому, тестировать то как класс будет использоваться. Если этот метод отдельно будет где-то пользоваться, то надо подумать о его тестировании, если нет, то его предназначение как компонента эта функция render.

    Для этого есть библиотеки как react-testing-library (про нее и на хабре была статья), а также Enzyme. Суть, что вы рендерите ваш компонент в тесте и смотрите, чтобы он давал правильные результаты. А что он делает внутри, это уже дело компонента.

    С помощью coverage jest сможете посмотреть, какие методы были задействованы при условиях вашего теста. Например, если метод вызывается после клика на каком-то элементе внутри компонента, то можно использовать соответствующий триггер в тесте и "кликнуть" туда и убедиться, что нужные изменения произошли.

    Если же этот метод делает какую-то важную логику, то возможно стоит переопределить его вне сущности реакта, создать отдельный класс или функцию и тестировать отдельно ее.
    Ответ написан
    Комментировать
  • Как правильно связать Node.js и React?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Не пойму что за два процесса на одном порту. В любом случае, нельзя.
    А делается так, экспресс уже есть. Запускается скрипт, собирается фронт в папку dist/ к примеру, из этой папки index.html сервится экспрессом на любую страницу по флагу .route("*", "index.html").

    То есть, по любому запросу ты отдаешь index.html, в котором скомпилированное реакт приложение, где уже подключается react-router-dom и само все пути решает. А на сервере держишь свои API endpoint'ы.
    Ответ написан
    Комментировать
  • Как узнать класс из блока ответа для sweetAlert?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Эм, если я правильно понял вопрос:

    <script>
        var error = document.querySelector('#result');
        if (error.querySelector('.success, .error') != null) {
        
        var type = error.querySelector('.success, .error').className;
        
        console.log(type);
        
        //$('#error').css("opacity","1").css("z-index","100000");
        
     swal({
     position: 'center',
     type: type, 
     title: '<?php if ($this->error) echo $this->error; ?>',
     showConfirmButton: false,
     timer: 2500
    })
    </script>
    Ответ написан
    Комментировать
  • Как сделать качественнее, react/redux?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Не очень пониманию, что надо. Но у react есть lifecycle methods, среди componentsWillReceiveProps(nextProps). В этом методе можно смотреть на props, которые пришли. Согласно какой-то логике что-то менять в state или ничего не делать, вследствие изменения состояния компонента он заново отрендерится, если что.
    Ответ написан
    Комментировать
  • Gulp, Npm, Yarn, Webpack - Чем пользоваться в 2017-2018 году?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    ES6 это не что-то другое и модное, это javascript. Желательно знать. Yarn вместо npm - ничего особого опять же, он делает все то же самое, названия команд немного отличаются, и то с новой версией npm вроде в нем и нет смысла уже. Раньше смысл был в скорости и еще вроде в том, что yarn автоматически добавляет установленный пакет в зависимости. Теперь это npm тоже делает. В любом случае, если знакомы с npm, то yarn это 5-10 минут чтобы разобраться.
    Остается только webpack, но если нет желания совсем в нем разбираться, можно найти starter kit на гитхабе.
    В итоге, ничего тут страшного нигде нет. А что-то новое постоянно будет, особенно, если долго не следить за тенденциями.
    Ответ написан
    Комментировать
  • Как много слов вы используете в английском и есть ли смысл учить 5-10 тысяч самых встречаемых слов?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Я думаю язык стоит изучать по мере необходимости. Что важно, это основы. Взять какой-то учебник и понять грамматику языка, вместе с этим и какой-то базовый набор слов. Сейчас для этого может есть веб-сервисы. К примеру, я одно время только начал смотреть сериалы на английском, я не заучивал слова, а по мере того как их встречал, запоминал, если встречал достаточно часто. Если нет, то соответственно, забывал. Тоже самое с книгами. Читаю, вижу незнакомое слово, запоминаю, если встречу еще несколько раз.

    Главное, мне все равно кажется заняться основой. Может это и скучно, но важно. Сидеть и просто заучивать 3 тысячи слов (или 10 тысяч слов) смысла не вижу.

    Если же, вы уже знаете основы языка, и просто спрашивате стоит ли заучивать еще 5 тысяч слов? То, опять таки, я бы сказал нет. Слова будут запоминаться по мере использования.
    Ответ написан
    1 комментарий
  • Почему не коректно работает код?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Вот где. Он у вас на третьем проходе, кладет 32 в maxElement. Идет дальше, смотрит, что 35 > 32 и пушит его в массив опять же. И так далее. В третьем массиве каждое следующее значение больше предыдущего.
    И еще есть Math.max, хотя я думаю, Вы просто поразмять мозги решили.
    Ответ написан
    1 комментарий
  • Как в примере сложения двух чисел (банального 1 + 1) на физическом уровне работает процессор?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Я не думаю, что возможно тут в двух словах что-то написать. Если интересует тема подробно, то есть хорошая книга "Код: Тайный язык информатики" Charles Petzold. Почитайте её.
    Ответ написан
    Комментировать
  • Почему webpack Can't resolve 'babel-loader'?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Судя по package.json это последняя версия webpack, и в их документации немного по-другому все это дело указывается. Может проблема в этом, попробуйте как указано в документации:
    module: {
      rules: [
        {
          test: /\.js$/,
          use: {
            loader: 'babel-loader',
            options: {
              presets: ['env']
            }
          }
        }
      ]
    }
    Ответ написан
  • Почему в продакшн-версии react-приложения getElementById() может возращать null?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    В вашей ссылки JS кода нет, но я б предложил использовать ref (посмотрите документацию), а также поместить этот код в componentDidMount, один из lifecycle методов.
    Ответ написан
  • Как сделать что бы закрывалось каждое окно отдельно?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    С такой версткой так:
    $(document).ready(function(){
      $('.close').click(function(){
        $(this).parent().hide();
      });
    });
    Ответ написан
  • Стоит ли до изучения бекенда (PHP) сперва изучать фронтенд?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Смотря, что имеется ввиду под "фронтэнд". Умение разобраться в HTML/CSS/JS коде будет необходимо. А фронтэнд экосистему, скорее всего, нет (вещи типа webpack, react и т.п.).
    Ответ написан
    3 комментария
  • Как привязать функцию к контексту объекта, если функция объявлена и вызвана в контексте другой функции?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    А что handlerClick возвращает? В любом случае, я так понимаю, что должно быть так:
    // в конструкторе
        this.handlerClick = this.handlerClick.bind(this);
    // в функции handlerClick 
    rangeEnd.bind(this, 5);
    Ответ написан
  • Какой фреймворк Node.js использовать для связки React + Node?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Как вариант, посмотрите в сторону Nextjs. Это server-side rendered React. Вы можете не париться с webpack и прочим и сразу начать писать код. Можно быстро пробежаться по Learn NextJS , чтоб разобраться с фреймворком.
    Ответ написан
    Комментировать
  • Флэнаган vs You Don't Know JS?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Зависит от вашего уровня знания языка. Серия "You don't know JS" не совсем для новичков, а для тех, кто хочет понять почему и как что работает. Допустим, разобраться в деталях работы this в JS и т.п. В то время как Definitive Guide скорее как общий справочник по языку.

    Так что, в целом, я б посоветовал писать какие-нибудь проекты, гуглить, детали языка изучать с помощью "You don't know JS" . Можно совместить оба, конечно. Это не художественная литература, чтоб от начала от до конца, читайте что нужно в данный момент.
    Ответ написан
    Комментировать
  • JS как выполнить задачу после выполнения нескольких параллельных запросов?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Я так понимаю, нужно это — Promise.all().
    Ответ написан
    Комментировать
  • Какую систему сборки FroneEnd'a выбрать? Grunt, gulp или webpack?

    HalfBloodPrince
    @HalfBloodPrince
    Front-End Developer
    Webpack сейчас встречается довольно часто, так что какой-то конфиг собрать нужно, но с другой стороны сильно париться по этому поводу нет смысла. В основном, главное, чтобы проект работал. Есть готовые конфиги и бойлерплейты и нет ничего плохого в том, чтобы ими пользоваться.

    Gulp vs Grunt — Gulp вроде очевидный выбор будет, хотя grunt также используется. А что касается актуальности, то известные front-end разработчики рекомендуют переходить на npm скрипты.

    В общем-то, если работа не диктует стек технологий сейчас, то выбор за Вами. Что больше нравится, то и берите.
    Ответ написан
    Комментировать