• Что означает состояние компонента в React?

    irestone
    @irestone
    Junior Web Developer
    Если у твоего человека меняется количество пальцев или рук и от этого изменения зависят какие-то части твоего приложения, то количество пальцев и рук хранится в стейте. Если твой человек перманентно болен или грустит - этим переменным (т.е. константам) делать в состоянии нечего.

    Состояние - это набор данных, которые могут меняться в рантайме, от которых зависит твое приложение. Не важно, есть ли у данных предопределенное количество состояний (ill: true/false -> 2, likes: ... -> infinity), важно, что изменение этих данных влияет на работу приложения (перерисовку UI)

    Стейт менеджмент - это основная причина существования подобных фреймворков/библиотек, поэтому стоит изучить вопрос.
    Ответ написан
    Комментировать
  • Как передать данные от дочернего родительскому компоненту при нажатии на кнопку в React?

    В данном случае обработчики событий выставь в форме а не в инпуте, и спусти колбэки пропсами в button и input.
    Ответ написан
    2 комментария
  • Как передать данные от дочернего родительскому компоненту при нажатии на кнопку в React?

    sinneren
    @sinneren
    Смотрите в документации lift state.
    Если коротко, то пишите функцию в forma, которая будет принимать стейт как параметр и делать setState форме. Передаём в input компоент параметр со значением - та самая функция (метод). Когда срабатывает handleChange, то запустить метод из пропсов и передать ему стейт. И тогда не нужна будет кнопка. Или объединить их в еще один компонент обёртку, проделать ровно то же самое, но там сделать обработку нажатия кнопки которая передаст выше в форму, но не вижу смысла
    Ответ написан
    5 комментариев
  • Поясните для чего super(props), а также .bind(this)?

    AndrewN1
    @AndrewN1
    • super(props) - вызвать конструктор наследуемого класса, те React.Component
    • .bind(this) - возвращает функцию с жесткой привязкой контекста
    Ответ написан
    Комментировать
  • Как зафиксировать блок после transform?

    Ragtime_Kitty
    @Ragtime_Kitty
    У вас две разных анимации меняют одно и тоже свойство transform. Вторая перезаписывает значения первой. Используй одну анимацию и расставь тайминги, вместо таймаутов в js. По крайней мере на этом этапе. Сдвигать блок вниз лучше через transform: translate

    Если усложнять анимацию, то уже надо будет поменять ее структуру.

    А чтобы сохранять свойства из 100%{}, используйте animation-fill-mode: forwards;

    Ответ написан
    3 комментария
  • Как назначить событие при изменении класса элемента?

    Вы можете переопределить ф-ю добавления класса, если вы используете jQuery, получится что-то типо этого:
    (function(){
        //Сохраняем ссылку на стандартный метод jQuery
        var originalAddClassMethod = jQuery.fn.addClass;
        //Переопределяем
        $.fn.addClass = function(){
            var result = originalAddClassMethod.apply(this, arguments);
            //Инициализируем событие смены класса
            $(this).trigger('cssClassChanged');
            return result;
        }
    })();
    
    $(function(){
        $("#test").bind('cssClassChanged', function(){ 
            //Отработает, как только сменится класс
        });
    });

    А вообще можно посмотреть в сторону angularjs с его дада-биндингом.
    Ответ написан
    Комментировать
  • Как сделать анимацию увеличения круга?

    HunteR-VRX
    @HunteR-VRX
    Помешанный на развитии
    #circle:hover {
    transform: scale(1.3);
    }
    Ответ написан
    Комментировать
  • Почему загружается старая версия сайта в Яндекс браузере?

    @vardoLP
    Ват ю сэй эбаут май мама?!
    Никогда не парюсь на эту тему :) Ctrl+F5 - пальцы сами это делают, не приходится их заставлять :))
    Ответ написан
    Комментировать
  • Как назначить событие при изменении класса элемента?

    @iShatokhin
    JS developer
    var observer = new MutationObserver(function (mutations) {
        mutations.forEach(function (mutation) {
            var newVal = $(mutation.target).prop(mutation.attributeName);
            if (mutation.attributeName === "class") {
                // если зашли сюда, значит класс сменился на значение из newVal
            }
        });
    });
    
    observer.observe(document.body, { // заменяем document.body на нужный нам элемент
        attributes: true
    });
    Ответ написан
    Комментировать
  • Как верстать сайт с экраном 4:3?

    тебе нужно понять, что 1920x1080 это разрешение экрана, а не рабочей области браузера
    Ответ написан
    2 комментария
  • Как хранить данные на сервере?

    @rPman
    Храните в файлах, сжатием не заморачивайтесь, это уже давно доступно в некоторых файловых системах, автоматическое и достаточно быстрое (например при использовании btrfs со включенным сжатием, будут автоматически сжаты только те части файлов, которые можно сжать).

    При хранении один медиафайл - один файл на диске, вы можете использовать стандартные вебсервера (apache/ngnix/..) для раздачи контента по их ссылке (по умолчанию эта ссылка состоит из каталогов и имени файла, удобнее некуда).

    Если вам нужно дать пользователям возможность заливать файлы на сервер, то начинайте смотреть в сторону ftp/webdav (браузер и windows проводник с авторизацией) или совсем просто sftp (удобные клиенты есть подо все, а в linux штатно доступно пользователям)

    Все технические заморочки начинаются, когда ваша нагрузка становится критичной для стандартных тарифных планов у вашего провайдера, а это обычно с тысячами активных клиентов начинается)
    Ответ написан
    Комментировать
  • Какое разрешение должно быть у мобильной версии сайта?

    mak-oleg
    @mak-oleg
    I believe in god, for the rest i pay in cash!
    Доброго времени суток, думаю стоит посмотреть тут, тут, и тут
    Ответ написан
    Комментировать
  • Как нарисовать сайт для мобильных устройств?

    Ivnika
    @Ivnika
    Выскажу свои пять копеек…
    Начинайте не от разрешения целевого экрана- определитесь какой примерно экран у вашей будущей аудитории (можно например считать 3.5" и выше). Дальше подберите такой размер на вашем мониторе (чтобы 1:1 соответствовало физическому экрану). Дальше рисуйте учитывая что пропорции экранов могу меняться, т.е. сразу расчитывайте какие блоки будут «тянуться» а какие нет. Размеры привязывайте к процентам а не к пикселам (половина экрана и на планшете останется половиной а вот 320 px на ретина дисплее могут стать ооочень маленькими).
    в общем…
    1. Делайте обычный сайт считая что монитор очень маленький
    2. Не пользуйтесь пикселами (заменяя их соотношениями, процентами и т.д.)
    3. Учитывайте что кликают пальцем а не мышкой (почитайте по физическую область нажатия для пальца)
    4. Не используйте плавных градиентов и слишком близких цветов (градиент скорее всего «заполосит», а гамма выполненная в сине, чуть синее будет плохо читаться при разном освещении)
    5. Очень хорошо продумайте навигацию (красивое меню на пол экрана вряди кого то порадует).
    Все ИМХО :)
    p.s. Можно посмотреть примеры дизайна на различного рода сайтах продающих шаблоны, уже везде представлены как мобильные так и обычные версии.
    Ответ написан
    1 комментарий
  • Как подружить Atom Beautify и PHP?

    reskwer
    @reskwer
    front-end developer
    Проблема в глобальной переменной php
    1. Качаем с cs.sensiolabs.org файл php-cs-fixer.phar (там есть большая копка инсталл)
    2. Пишем путь настройках бьютифаера и ставим галочку "Beautify On Save"

    6193710c0d134b6e95816beb259da6bf.png
    3. Заходим Свойства системы > Переменные среды >
    в переменные PATH и переменной Path добавляем путь к вашему PHP серверу обратите внимание на то что перед тем как писать путь, вам нужно поставить ;
    5ffd88d0cc7f49bb8612899636349f3e.png
    У меня OpenServer по этому C:\OpenServer\modules\php\PHP-7.0-x64,
    Если у вас тоже OpenServer, учтите что в нем много версий php, для того что бы точно определить какая у вас версия, зайдитеOpenServer > Настройки > модули и укажите тот который у вас.
    1b2c17d96d904955b92ae0e9d53e6752.png
    Перезагрузите Атом и попробуйте сохранить любой php файл, все должно работать.

    Если у кого-то не сработало
    Проверяем, все ли правильно вы сделали.

    Запускаем cmd (WIN+R пишем cmd) в запустившимся окне пишем PATH и Path
    ba76dd93e1fd4f118d65beddde14ff73.png
    если в конце строк будут ваши пути, то вы сделали все правильно, попробуйте перезагрузить компьютер и еще рас запустить атом.

    Если после перезагрузки не заработало
    Запускаем cmd (WIN+R пишем cmd) в запустившимся окне пишем php если вам выдало сообщение:
    "php" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.

    Значит не правильно указан путь к серверу PHP, проверьте правильно ли вы указали путь в переменных PATH и Path.
    Ответ написан
    Комментировать
  • Какие есть сайты для фриланса?

    opium
    @opium
    Просто люблю качественно работать
    Очень полный список есть тут
    https://upworkest.ru/spisok-frilans-birzh/
    Ответ написан
    Комментировать
  • Какие есть сайты для фриланса?

    @Visioner
    Из зарубежных, две самых крупных площадки: https://freelancer.com - платная подписка
    и https://upwork.com - можно работать без подписки.
    Сам я успешно работаю на апворке, сейчас развиваю свое агенство и набираю людей к себе в команду.
    Ответ написан
    Комментировать
  • Какие есть сайты для фриланса?

    Sanes
    @Sanes
    kwork, практически за еду.
    Ответ написан
    Комментировать
  • Какие есть сайты для фриланса?

    @tempick
    Kwork неплохой относительно вариант. По крайней мере, год назад точно был бесплатным.
    UPD: только комиссия за работу там немаленькая. А ещё правила надо внимательно прочитать. У меня аккаунт удалили просто за то, что общались с заказчиком вне кворка
    Ответ написан
    4 комментария