Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
640

­

Beginner
  • 0
    вклад
  • 17
    вопросов
  • 0
    ответов
  • 0%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Где купить macbook pro без русской раскладки?

    sashabeep
    sashabeep @sashabeep
    Дней без вопросов про Slick на тостере : 0
    Через Grabr можно привезти из штатов, да и частников-таскунов полно. Равно, как и магазинов, торгующих us-only маками, типа того же aj, biggeek
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Где купить macbook pro без русской раскладки?

    katushell
    Екатерина Ивасенко @katushell
    //
    Я заказывала мак с ebay и о налоге x2 не шло и речи!
    Если у тебя есть друг, то просто посмотри налоги на его штат, у меня это был Нью-Йорк и налог составил 5%, что всё ещё дешевле наших цен

    Причина, по которой мы брали из США мак - была цена, если есть возможность просто пойти и купить, то лучше просто пойти в магазин и купить мак!
    Нет никаких подпольных баз, где портят маки для русских
    Мой друг пользуется маками овер 10 лет и это были и русские, и американские модели
    У него так всегда тасовалась вся техника эпл, так как друзья семьи что-то привозить помогали
    Так вот он говорит, что разницы никакой нет и это глупости всё, что в Америке "оригинальная" техника, а весь мир использует fake shit
    Так что просто идёшь в restore или iport и покупаешь ноут без лишних проблем
    Ещё и гарантия под боком будет, в Америку же не будешь высылать клаву поменять
    Так что 10 раз стоит подумать, нужно ли оно)
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Как вывести навигацию под своим сайтом в поисковой системе?

    Ankhena
    Ankhena @Ankhena Куратор тега HTML
    Нежно люблю верстку
    https://support.google.com/webmasters/answer/47334...
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как сделать плавный слайдшоу для firefox (или не работает transition на background-image, как заменить?)?

    rockon404
    Антон Спирин @rockon404 Куратор тега React
    Frontend Developer
    Рендерите два изображения и используйте opacity. Скрытому меняйте url на следующее в списке.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Нормальная ли практика, делать вложенность методов .map() в компонентах React?

    Robur
    Robur @Robur
    Знаю больше чем это необходимо
    нормально.
    Нет особой разницы как вы выводите список, через map или как-то еще. Если вам нужно вывести все эти 20? компонентов - вы их должны вывести и основные тормоза у вас будут не во время работы .map а во время рендеринга этого всего на страницу и обновления потом. Используйте стабильные Id, если сильно переживаете.

    О производительности надо беспокоиться когда что-то начинает тормозить. Ну или хотя бы тогда когда вы сделали профилирование и что-то вам там не понравилось.

    Если прямо очень-очень хочется сделать все максимально оптимально - возьмите mobx и mobx-react с его бесплатной оптимизацией из коробки, и разбейте все на достаточно мелкие объекты и компоненты.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать фильтрацию по одному и нескольким параметрам?

    Сергей Ганин @dohera
    Фронтенд разработчик
    const filterColor = chosedColor => currColor => chosedColor === 'none' ? true : currColor === chosedColor
    arr.filter(filterColor(inputValue1)).filter(filterColor(inputValue2))

    примерно так
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать фильтрацию по одному и нескольким параметрам?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    https://jsfiddle.net/3pb51azj/
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как правильно адапттировать single page application под маленькие экраны?

    rockon404
    Антон Спирин @rockon404 Куратор тега React
    Frontend Developer
    Можно использовать react-responsive или что-то наподобие.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно адапттировать single page application под маленькие экраны?

    rPman @rPman
    Подумайте хорошенько, изучите гайдлайны гугла и эпл по UI на мобильных устройствах с маленьким экраном. интерфейс декстопного приложения и мобильного сильно отличается, иначе этим пльзоваться будет дико неудобно.

    На телефонах вместо двух кнопок +- нормой - скроллинг свайпом по экрану. Вообще жесты пальцем - отличное направление мобильных интерфейсов, у вас может получиться даже меньше кнопок, ну и конечно же расширение всего экрана свайпом влево вправо (аналог закладок или как дополнительная постраничная навигация). И еще, правый клик мыши на пальцеориентированном интерфейсе - это долгое нажатие (обычно используется для контекстного меню)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какая библиотека поможет в реализации следующего drag n drop на React?

    dev null @curious-101
    Frontend developer
    На одном из проектов используем эту
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как принимать сообщения в React компоненте используя socket.io?

    Casufi
    Владимир @Casufi
    https://redux-saga.js.org/docs/introduction/Beginn...
    С сокетами еще работает Apollo GraphQL

    Рано или поздно всеравно прийдете или к первому или ко второму
    Если хочется совсем просто https://reactjs.org/docs/react-component.html#the-...
    Когда монтируете компонент - подписываетесь на сообщения, с каждым сообщением обновляете стейт компонента, когда демонтируете компонент не забудьте отписаться
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как принимать сообщения в React компоненте используя socket.io?

    0xD34F
    0xD34F @0xD34F
    Куда всунуть этот код? в render() ?

    В componentDidMount.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как принимать сообщения в React компоненте используя socket.io?

    hzzzzl
    hzzzzl @hzzzzl
    так в componentDidMount(), не?
    чтобы он при маунте начал слушать сообщение

    я делал так, но не с socket.io а с https://developer.mozilla.org/en-US/docs/Web/API/E... , то есть "односторонним" сокетом сервер->клиент

    this.eventSource = new EventSource("http://localhost:5000/api/......")
    
      componentDidMount() {
        ......
        this.subscribeToServerEvent()
      }
    
      subscribeToServerEvent = () => {
        this.eventSource.onmessage = e => {
          try {
            ......
            this.setState({ ..... })
          } catch (e) {
            console.log('error parsing server response', e)
          }
        }
      }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать чтобы ключ не создавался если в него передается undefined?

    sergiks
    Сергей Соколов @sergiks Куратор тега JavaScript
    ♬♬
    const obj = data.reduce((prev, item) => {
      prev[item.id] = (({id, test}) => ({id, test}))(item); // копируем выбранные свойства
      if (!item.hasOwnProperty('test')) delete prev[item.id].test; // удаляем пустышку, если нет ее
      return prev;
    }, {});
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Как сделать чтобы ключ не создавался если в него передается undefined?

    KevlarBeaver
    Михаил Макаров @KevlarBeaver
    Разработчик
    data.map(item => obj[item.id] = item.test ? {
      id: item.id,
      test: item.test
    } : {
      id: item.id
    })
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как вернуть продукт обратно, изменив количество?

    maxfarseer
    Максим @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Создаете экшен:
    const removeFromCart = productId => ({
      type: types.REMOVE_FROM_CART,
      productId
    })


    затем в редьюсере корзины, делаете так, чтобы на это действие был свой case, и в нем чтобы возвращался новый массив addedIds в котором уже не будет id из вашего экшена если quantityById меньше единицы (то есть, данной позиции больше не должно быть в корзине), либо изменяете quantityById ... суть в том, чтобы вы вернули новое состояние.

    так же, для редьюсера товаров вы делаете кейс на этот же экшен - и там так же по id находите и добавляете новый элемент.

    В общем, я думаю тут дело не сколько в реализации кода, а в понимании что такое экшены и редьюсеры. Почитайте в учебнике (на русском), поделайте пример и я думаю без проблем разберетесь с вашим вопросом.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как вернуть продукт обратно, изменив количество?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    Так, что ли?
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Один компонент для вывода всех категорий товаров?

    Interface @Interface
    Зависит от того, насколько различается вид/функционал этих компонентов. Если они абсолютно идентичны (аля картинка, название, описание, категория, цена) - то нет смысла делать компоненты под все категории. Если же они достаточно различаются:
    - есть одежда, у которой есть виджет выбора размера и цвета
    - есть квартиры (условно) у которых есть виджет карты
    - есть продукты питания у которых есть диаграма питательных веществ.

    То уже имеет смысл думать о каком-то разделении; Но в любом случае соответвие 1:1 между категориями и компонентами вряд-ли нужно. В крупных онлайн магазинах - тысячи категорий. Иметь для них тысячи компонентов - вряд ли может быть оправдано.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему проистодит re-render левого списка (react-redux)?

    forspamonly2 @forspamonly2
    карточки в левом списке у вас перерисовываются потому, что каждая из них присоединена к редуксовскому хранилищу. точнее, перерисовываются редуксовские обёртки, которые Context.Consumer - вы их наверняка видели в реактовских девтулзах.

    сам компонент действительно по умолчанию pure, но это работает как: редуксовская обёртка ловит изменение хранилища, получает новый store, вызывает ваш mapStateToProps и перерисовывает обёрнутый компонент с новыми props. а уже после этого отрабатывает shouldComponentUpdate от внутреннего PureComponent, понимает что ничего не поменялось и сам обёрнутый компонент уже не перерисовывается.

    глобально, вам стоит сделать карточку тупым (презентационным) функциональным компонентом - принимать в нём на отрисовку готовый объект данных карточки, а получать и передавать его из connected компонента списка.
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Как сделать "вертушку" загрузки?

    0xD34F
    0xD34F @0xD34F Куратор тега CSS
    CSS

    <div class="spinner"><div>

    .spinner {
      color: black;
      font-size: 5rem;
    }
    .spinner::before {
      display: inline-block;
      text-align: center;
      font-family: monospace;
      width: 5rem;
      content: "";
      animation: spinner .8s infinite steps(4);
    }
    @keyframes spinner {
      0%, 100% { content: "\2014"; }
           25% { content:    "\\"; }
           50% { content:     "|"; }
           75% { content:     "/"; }
    }

    https://codepen.io/anon/pen/mveNZN?editors=1100

    JS

    <div class="spinner"><div>

    .spinner {
      color: black;
      font-size: 5rem;
      font-family: monospace;
    }

    const text = [ '\u2014', '\\', '|', '/' ];
    let index = -1;
    
    setInterval(block => {
      index = (index + 1) % text.length;
      block.textContent = text[index];
    }, 200, document.querySelector('.spinner'));

    https://codepen.io/anon/pen/VgeZYN?editors=1010
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
Самые активные сегодня
  • Drno
    • 10 ответов
    • 0 вопросов
  • delphinpro
    Сергей delphinpro
    • 8 ответов
    • 0 вопросов
  • Andrey Barbolin
    • 7 ответов
    • 0 вопросов
  • rPman
    • 7 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 6 ответов
    • 0 вопросов
  • Dr. Bacon
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации