• Как переписать action в компоненте?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Понять бы еще зачем этот перенос?

    Тем не менее, если вы хотите использовать dispatch внутри ваших экшенов, можете взять middleware redux-thunk, тогда сможете записать:

    export const handleFilters = (type, val) => {
      return (dispatch, getState) => {
        switch (type) {
        case "input":
          dispatch({
            type: FILTER_BY_INPUT,
            payload: val
          });
        case "time":
          ...
        }
      }
    };
    Ответ написан
    2 комментария
  • Что имеет смысл осваивать если есть желание уйти в "айтишники"?

    @Bruxo
    Тема очень обширная на самом деле. Имеет смысл начать программировать на каком то языке (у меня это Java) для начала, а потом постепенно смотреть другие языки и определится с направлением, сформировать "стек". После фриланс для опыта, а потом уже радикальная смена профессии, если деньги не являются приоритетом № 1, и есть возможность «маневрировать» (отсутствие ипотеки, большой голодной семьи и т.д.) Я сам не программист, но хотел бы им стать. 
    Касательно комментариев ребят про адский труд программистов соглашусь, но все же вставлю своих « пять копеек».
    Я работаю в hr-департаменте в одной очень даже не плохой компании (г. Москва) и иногда вижу, как выбирают людей по знаку зодиака или из серии нравиться не нравиться, и это происходит не ради забавы, дело в том, что очень много соискателей с весьма не плохими «скилами» и выбор очень большой (+ кризис (реальный) который имеет место быть) и так практически на каждом направлении. И лично моя мотивация такова, что я в случае чего не смогу найти нормальную работу, так как все «теплые места» заняты и не так просто что то найти, тем более если нет свободного английского(мой случай).
    Поэтому программирование это своего рода инвестиция в себя, которая не гарантирует ни чего, но дает призрачный шанс элементарно заработать себе на жизнь, хотя честно не знаю, как будут обстоять дела в программированиии через 5-7 лет, т.е. какая там будет конкуренция, ведь сейчас много кто изучает программирование (серьезно) со школьной скамьи.
    Касательно продаж, то много зарабатывают единицы (в моем понимании много, это от 300К в месяц), остальные в лучшем случае 80К – 100К, и надо понимать что они могут пахать как лошади с утра до ночи, и в 35 лет их могут не куда не взять, я уже молчу про скотское отношение которое там бывает, не выполнил план (который как правило завышен ;) ), увольняют и т.д. даже не поработав с менеджером на тему его развития.
    Мое мнение, везде хорошо где нас нет ;). Нужно быть честным с самим с собой и пожалуй стремиться делать то что нравиться, или то от чего не тошнит :) (мой случай).
    Главное пробовать!
    Ответ написан
    Комментировать
  • Что имеет смысл осваивать если есть желание уйти в "айтишники"?

    Bandicoot
    @Bandicoot
    Вась-программист
    То, что программисты получают 100к. - во-первых, это не такая уж большая зп, при том что деятельность достаточно трудоемкая, подходит не всем и к этой цифре нужно идти долго. Во-вторых, в очень многих профессиях спецы получают столько же и больше, так что это вообще не показатель. Короче, за деньгами - это если в IT, то не в программисты.
    Ответ написан
    21 комментарий
  • Почему $(this).css() работает, а $(this).addClass() - нет?

    @kvaak
    FE
    Если добавляет класс, то в jquery все в порядке, проверьте через панель разработчика (F12 or CMD+SHIFT+I), что, скорее всего, есть более приоритетное значение бэкграунда для другого класса этого же элемента, либо он где-то переопределен, либо файл цсс, содержащий это свойство, не подключен. В общем, ищите проблему в стилях
    Ответ написан
    2 комментария
  • Открытие модального окна?

    $('button').on('click',function(){
    $('#formError').addClass('in');
    });


    Мы добавляем класс .in, потому что у вас там уже есть fade, если же у вас это бутстраповская модалка, то надо вешать на кнопку:
    <button data-toggle="modal" data-target="#formError">открыть</button>


    Так же можно и просто через JS:
    $('button').on('click',function(){
    $('#formError').modal('show');
    });


    И вообще, читайте документацию по бустрапу, там все понятно описано.
    Ответ написан
    1 комментарий
  • JavaScript: почему не срабатывает функция?

    @balamyt92
    ; select * from users; --
    if (txt.style.backgroundColor == 'rgb(255, 240, 245)')
    Ответ написан
    Комментировать
  • JavaScript: почему не срабатывает функция?

    @kttotto
    пофиг на чем писать
    Ошибка здесь
    if (txt.style.backgroundColor='#fff0f5')
    Вы его здесь присваиваете, а не сравниваете.
    Исправьте на
    if (txt.style.backgroundColor == '#fff0f5')
    Ответ написан
    1 комментарий
  • JavaScript: почему не срабатывает функция?

    Rema1ns
    @Rema1ns
    и так сойдет
    Если вы бы вывели в консоль
    console.log(txt.style.backgroundColor);
    То увидели бы что возвращается цвет не так как вы его задали.
    rgb(255, 240, 245)

    Поэтому ваше сравнение не работает
    Ответ написан
    Комментировать
  • Нужен ли CCS-фреймворк если есть flexbox?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Что за холивар?) Это дело удобства же. Хотите - юзайте, хотите - нет. Тот же бутстрап мне, например, не нравится, в своих проектах я почти не использую css-фреймворки. Разве только для прототипов
    Ответ написан
    Комментировать
  • Почему не устанавливается свойство key, хотя оно существует?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Правильно это делать так:
    {items.map(item => (
      <Item key={item.id} content={item} />
    )}

    Свойство key надо определять снаружи компонента элемента списка, а не внутри.

    Вот ссылка на документацию, где есть примеры правильного и неправильного использования с пояснениями
    https://reactjs.org/docs/lists-and-keys.html#extra...
    Ответ написан
    Комментировать
  • React как удалить элемент?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Примерно так:
    import React, { Component } from 'react';
    
    class List extends Component {
      state = {
        elements: [
          {
            id: 1,
            title: 'First',
          },
          {
            id: 2,
            title: 'Second',
          },
        ],
      };
      
      handleDeleteElement = id => {
        this.setState(prevState => ({
          elements: prevState.elements.filter(el => el.id != id);
        }));
      };
      
      render() {
        const { elements } = this.state;
        
        return (
          <ul>
            {elements.map(el => (
              <li
                key={el.id}
                onClick={() => { this.handleDeleteElement(el.id) }}
              >
                {el.title}
              </li>
            ))}
          </ul>
        )
      }
    }
    Ответ написан
    Комментировать
  • Что учить frontend разработчику?

    1. Сначала учим фундаментальщину (как работают компьютеры, сети и браузер, http, основы программирования).
    2. Затем изучаем как работают конкретные веб-технологии (html, js, css, как всё это парсится браузером и рендерится в веб-страницу, учимся верстать и использовать js, книжек и курсов масса).
    3. Далее изучаем технологии, которые всё это автоматизируют, упрощают и абстрагируют (фреймворки, бутстрапы, реакты, сборщики, jquery, новые стандарты, гриды итд итп).
    4. Практика, применение изученного, выбор специализации (зависит от того, что хотите далее делать во фронте - это может быть просто вёрстка, создание интерфейсов или визиуализация данных, а может быть и работа с графикой\аудио\видео, тренды (сейчас это react, bootstrap, foundation, babel, es6, d3, RxJS, функциональное программирование)), далее развиваться на протяжении жизни можно до бесконечности. Но без первых пунктов это всё ничто.
    Ответ написан
    Комментировать
  • Необходимые знания JavaScipt?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Идешь на сайт Кантора и штудируешь все подряд. Так же находишь на ютубе Зоракса и штудируешь все подряд. Если владеешь английским, можно еще проштудировать курс JavaScript Weird Parts. потом просто ходишь на собесы, делаешь тестовые. Поначалу все собесы будешь сливать, это нормально. После каждого слива делаешь разбор полётов и пристально изучаешь то, на чем завалился. Вангую что тебе 10 заваленных собесов хватит за глаза, чтобы выкачать всю базу. Поэтому поначалу ходи на собесы туда, где не жалко слить.

    В целом я бы еще очень рекомендовал прокачать алгоритмы и структуры данных. В целом, если у тебя есть в бэкграунде опыт программирования на чем угодно, то тебе будет проще. Если нет, то придется набрать минимум пару тысяч часов фигачинга в программировании всего подряд, тупо набить руку, без этого даже выученный на 200% любой язык программирования будет бесполезен.

    В общем 5% теории и 95% практики, очень много упорства, и ты в строю через пару лет. Возможно и через годик, если будешь реально фигачить по 8 часов в день.
    Ответ написан
    Комментировать
  • Почему не работает @media когда @import стоит в конце?

    St1myL
    @St1myL
    @import не будет работать в конце кода, лишь в самом его начале, попробуйте импортировать что-либо еще таким же образом, но ничего не выйдет. Медиа-запросы должны находится в конце, это верно
    Ответ написан
    1 комментарий
  • Приведенный мною код - одно и то же? Или один работет быстрее / эффективнее, а другой - нет?

    Exploding
    @Exploding
    wtf?
    Гггг))) Как бы с первого взгляда и одно и то же, но не совсем.
    Если первый вариант юзать на практике - далеко не всегда ваш ".button" будет совпадать с тем, что находится в таргете. Например на кнопке иконка/рисунок/etc. Поэтому вам придется дописывать специализированный костылеподобный изворот типа:
    if ($(e.target).closest('.button').length){
    	//....
    	e.stopPropagation();
    }

    что само по себе уже не совсем тоже самое, как предпогалолась в вопросе.
    К тому же, не будет возможности использовать .trigger() для .button
    Ну и не известно сколько еще потом по вылазит глюков, требующих, чтоб и их подперли чем-то...
    В итоге получится явно не быстрее и не стабильней чем в либе. Там как ни как сидят, почесывая башни изо дня в день, думая как еще оптимизировать и стабилизировать работу методов. Версий то вон уже сколько вышло.

    UPD
    Просто когда жму Event Listeners в chrome - там у каждого элемента оочень много listener'ов

    Во втором варианте слушатель вешается не на кнопку, а на документ. Видимо у вас просто установлен чекбокс на "Ancestors".

    Ну а если вам взбредет в голову все таки писать свою реализацию делегирования, то в лучшем случае, как мне кажется, вы придёте к оригинальной реализации метода jq.
    Ответ написан
    Комментировать
  • Как с помощью SASS задать стиль родительскому элементу из дочернего?

    drymind404
    @drymind404
    front-end разработчик
    Насколько я знаю, такой возможности нет ни в CSS, ни в SASS, ни в LESS. Если все должно быть именно так, то это к JS.
    Если в родителе будет только один .child элемент, то будет удобнее добавлять .completed родителю, так можно будет задать стили и ему, и дочернему элементу.
    Если больше одного - можете добавлять .completed и к .parent, и к .child. Родителю зададите стили с помощью селектора .parent.completed, а дочернему элементу с помощью .child.completed.
    Ну и в целом не представляю, где вам может понадобиться подобная механика, так что хотелось бы увидеть пример поконкретнее.
    Ответ написан
    Комментировать
  • Почему элементы не влазят в блок?

    Прочтите это, дополнительные отступы - проблема в строчных элементах (inline-block) и работайте лучше с flexbox :)
    Ответ написан
    Комментировать
  • Почему структура сайта у всех разная?

    longclaps
    @longclaps
    Разумеется есть - нужно всё упихнуть в один файл.
    Но разрабы ленятся и вываливают россыпь.
    Не будь таким.
    Ответ написан
  • В чем заключается минус такого делегирования?

    Stalker_RED
    @Stalker_RED
    Все действительно можно сделать в одну строчку.
    table.onclick = function(event) {
    	highlight(event.target.closest('td'))
    }
    https://jsfiddle.net/cm71Ljqa/

    Хотя лучше в три: https://jsfiddle.net/cm71Ljqa/2/
    Ответ написан
    2 комментария