Задать вопрос
  • Языки программирования для работы с API?

    @Janus74
    Любой.
    API на то и API, что бы его можно было использовать везде
    Ответ написан
    Комментировать
  • Почему теряется this?

    @davidnum95
    Нужно биндить контекст.
    constructor(props, context) {
        super(props, context);
        this.onRegionChange = this.onRegionChange .bind(this);
      }
    Ответ написан
    3 комментария
  • Споры с менеджером?

    opium
    @opium
    Просто люблю качественно работать
    смените работу
    Ответ написан
    Комментировать
  • Хочу перейти на Linux, какой дистрибутив выбрать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    mint, ubuntu - не ошибёшься
    п.с.
    каждая жаба хвалит своё болото...
    ИМХО (от себя): использую Kali для тестирования своих сайтов/программ

    п.с.с. наверно любой дистрибьютив (основной, который вы перечислили) - способен для тех целей, которые вы себе поставили. Те, дистрибьютивы которые я указал - для вас будут наиболее "лёгкими" в освоении. Главное - чтобы у вас работал интернет и google/yandex и желание искать там всё, что вам не понятно (а лучше и быстрее - посмотреть на ютубе видеоуроки по основам этих дистрибьютивов)
    п.с.с.с. освоение особо много времени не потребует, хотя конечно будет не привычно. Но, чуть-чуть потерпев вы найдёте для себя как плюсы, так и минусы. Из плюсов, которые лично мне нравятся - менее требовательны к компьютеру/железу + очень многое можно найти в интернете + развиваешься.
    Из минусов - непривычно + некоторые для WINDOWS программы нельзя использовать в linux (хотя есть иногда примерные аналоги), хотя без Kali второй ОС я себе не представляю себя как программиста.

    хороший отличный manual по linux (в частности mint)
    Ответ написан
    6 комментариев
  • Какой метод необходимо вызвать при изменении props в дочернем компоненте?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Когда у вас 1й раз происходит "и то и другое" - это ваш componentDidMount + render (у Child)
    Когда вы "нажимаете на кирпичик", то у вас componentDidMount уже не происходит (судя по коду, так как компонент у вас не удаляется из DOM и не появлется там снова). Но так как вы по нажатию меняете у родителя что-то, и это что-то прокидываете в потомка - значит "ему пришли новые props", следовательно используйте componentWillReceiveProps, где в nextProps - будет то что вам нужно.

    Документация про lifecycle methods

    p.s. проверьте, у вас в тексте примера есть someId и sometId (опечатка)
    Ответ написан
    2 комментария
  • Верстаете ли вы сайты на react.js?

    Rou1997
    @Rou1997
    На нем не верстают, он для Web-приложений, прежде всего SPA, только не путайте с теми одностраничными, которые landing page, для них он ни к чему.
    Ответ написан
    Комментировать
  • По каким ресурсам лучше изучать Java Servlet?

    sim3x
    @sim3x
    Ответ написан
    Комментировать
  • Какая правильная структура файлов front-end проекта и почему?

    @antonowano
    Профессиональный самоучка
    • dist
    • node_modules
    • src
    • gulpfile.js
    • package.json


    src - папка со всеми исходниками верстки (html, css, js, less, coffeescript и т.д.),
    dist - папка рабочего проекта скомпилированного из исходников папки src, по команде gulp,
    gulpfile.js - скрипт компиляции рабочего проекта,
    package.json - мета данные проекта и список необходимых npm библиотек для работы gulpfile.js,
    node_modules - сторонние npm библиотеки установленные для компиляции проекта.

    Пример gulpfile.js:
    var gulp = require('gulp');
    var less = require('gulp-less');
    var cleanCSS = require('gulp-clean-css');
    
    gulp.task('default', function() {
        gulp.src('./src/css/**/*.less')
            .pipe(less())
            .pipe(cleanCSS())
            .pipe(gulp.dest('./dist/css/'))
        ;
    });


    Для такого проекта должны быть установлены 3 npm библиотеки gulp, gulp-less, gulp-clean-css.

    Это общепринятый скелетон для любого gulp-проекта. А структура папки src это по вашему желанию. Каждый делает по своему.
    Ответ написан
    3 комментария
  • Какую литературу почитать по проектированию?

    Очень основательная книжка
    1000104253.jpg
    Ответ написан
    Комментировать
  • Как плавно анимировать иконку при наведении?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    в svg придется рисовать. по другому никак
    Ответ написан
    4 комментария
  • Как в react-redux реализовать вызов метода в ответ на изменение стейта?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Добрый день.

    Представим ваш action creator (функцию), которая на success возвращает успешную авторизацию, например:
    $.ajax(url...
      success(data) { dispatch({type: AUTH_SUCCESS, data }) })


    Кто мешает сделать так?
    $.ajax(url...
      success(data) { 
        dispatch({type: AUTH_SUCCESS, data }) 
        loadUserCart(data.user_id) // <- еще один action creator
    })

    Суть уже понятна? Мы после успешной авторизации юзера, вызываем сразу же следующий экшен-крейтор:
    function loadUserCart(id) {
      return (dispatch) => {
        
        dispatch({ type: CART_REQUEST }) // получается, это событие вызовется сразу после успешной авторизации, практически мгновенно
    
        
        $.ajax(urlForCartUpdate...
          success(data) { 
            dispatch({type: CART_SUCCESS, data })
        })  
      }
    }


    Далее вы в компоненте с корзиной, настраиваете показ прелоадера, и вуаля! Получается, для юзера, без задержек, как только он авторизовался - у корзины будет крутиться прелоадер. Юзеру все понятно, он занимается своими делами. Как только "данные подъехали" - вы скрыли прелоадер и показали ему необходимые данные по корзине.

    нужно сначала сделать AJAX-запрос, а по его результатам уже рендерить корзину

    Именно это мы и сделали.

    P.S. не знаю, требуется ли это, но на всякий случай укажу, что чтобы сделать прелоадер в шаблоне, вам нужно в редьюсере корзины создать какое-нибудь поле (флаг), например isLoading и устанавливать его в true когда получите action с типом CART_REQUEST, и false для CART_SUCCESS. Таким образом, вы сможете сделать банальный if в шаблоне рендера и показывать либо разметку прелоадера, либо разметук с данными корзины.

    === вторая часть ===
    В компонентах-контроллерах есть только функция connect() со своими функциями-аргументами, которые передают данные в представление. Как-то реагировать на изменения состояния такие компоненты не умеют (я ведь не ошибаюсь в этом?).

    Еще как умеют, в этом и суть. Вы в mapStateToProps передаете в общем случае:
    {
      ваше_название_поля: reduxStore.название_редьюсера
    }

    В частном случае, может выглядеть так:
    function mapStateToProps(state) {
      return {
        rate: state.rate,
      }
    }


    После того, как вы "подписались" на изменения в state.rate, (а это, если говорить об частном случае, скорее всего reducer с названием rate), ваш "приконекченный" компонент всегда будет получать новые props при изменении в редьюсере. Следовательно, будет вызываться функция render. Само собой - можно хоть сколько "редьюсеров подключить" к одному компоненту.

    Имейте ввиду, что все здесь написано для понимания простым русским языком, на самом деле, так как вы используете компонент Provider на самом верхнем уровне вашего приложения, он прокидывает необходимые props вниз. Ваши connect(Компоненты) умеют реагировать на изменение необходимых props => реакт вызывает рендер, так как "пришли новые props".
    Ответ написан
    2 комментария
  • Bootstrap. Cпор с программистом, как убедить?

    dom1n1k
    @dom1n1k
    Имею опыт глубокой кастомизации Бутстрапа. Глупая была затея.
    Родился такой монстр, который просрал плюсы и сочетал минусы обоих подходов (популярный фреймворк vs самописный велосипед).
    Сильно изменив Бутстрап, убиваются:
    - его обновления и багофиксы
    - совместимость со сторонними плагинами
    - низкий порог вхождения новых людей
    - возможность гуглить решения в случае багов
    Но и самописным велосипедом это тоже не является, потому что сильно завязано на исходную архитектуру. То есть нет полной свободы и гибкости, присущей кастомным решениям. БЭМ-ом там, конечно, тоже не пахнет, откуда идут большие проблемы с независимостью.
    Бутстрап нужно использовать либо как есть, либо с минимальными скинами-стилизациями поверх.
    Ответ написан
    Комментировать
  • В FreeBsd можно просмтатривать изображения, мультимедиа?

    @brar
    Мне кажется, входить в мир линукс через FreeBsd - несколько не то.
    Ответ написан
    5 комментариев
  • Тестовые задания по nodejs для новичка?

    mannaro
    @mannaro Куратор тега JavaScript
    Умею профессионально гуглить
    Есть прикольное задание, которое нашел как-то на просторах интернета:

    Управление виртуальным центром запуска ракет.
    Есть несколько баз (при запуске сервера они "создаются" заново).
    Нажимаешь кнопку, выбираешь цель и ракета летит, транслируя свои координаты на клиент (+ оставшееся время).
    В момент полета может произойти авария и ракета не долетит, надо чтобы это выводилось пользователю в браузер.
    Когда ракета долетает, то базе наносится урон (вычисляется случайно). Когда у базы жизней < 0 игра считается завершенной и пользователю об этом показывается сообщение при загрузке страницы.
    Все это на сервере работает через JSON, а на клиенте через react/angular/custom и обновляется в реалтайме через long-polling или websocket.

    интерфейс - просто выпадающий список, а после нажатия на кнопку один див с координатами, второй с оставшимся временем.
    Ответ написан
    Комментировать
  • Словарный запас?

    a13xsus
    @a13xsus
    Lazy developer
    Memrise
    Добавляй курсы отсюда https://www.memrise.com/courses/english/english/ и учи. Методика работает отлично, сам так запоминал слова из Advanced English (C1, C2).
    Ответ написан
    5 комментариев
  • Как написать серверную часть?

    @raspier
    Java Developer
    Если хотите обмениваться JSON, то смотрите в сторону Spring Rest. Тут потребуется как-то вызвать REST API через какой-нибудь JS фреймворк.
    Если хотите встраивать данные в HTML, то смотрите в сторону Spring MVC.

    Первый путь гораздо интереснее. Даром можете получить начальные знания, какого нибудь модного Vue.js или Angular2.

    Начать лучше с того, что найти простое CRUD приложение. На Spring MVC таких навалом. Например, вот www.journaldev.com/3531/spring-mvc-hibernate-mysql...

    Для второго случае, ищется чуть дольше. Но он будет интереснее, и, что не мало важно, скорее всего, получится красивее в плане дизайна. А для того, кто будет это оценивать, это может оказаться очень важно.

    Если бы делал я, то стек был бы такой:
    - Spring Boot + SpringRest (Гуглить RestController).
    - ORM взял бы Hibernate или SpringData.
    - Сборщик Maven
    - БД, скорее всего нужна встроенная, чтобы проект запускался из коробки. Взял бы H2.
    - Сейчас бы для фронта взял Vue.js, может пригодится в ближайшем году) + Bootstrap 4.
    Ответ написан
    2 комментария
  • Когда переходить к Spring'u?

    Vestail
    @Vestail
    Software Engineer
    После изучения сервлетов.
    Ответ написан
    Комментировать
  • Какой популярный java web framework имеет хорошую базу гайдов?

    @aol-nnov
    спринг?? собрать?! зачем? давай отложи в сторону вещества, сходи на https://start.spring.io и быстренько натыкай себе заготовочку. потом на гитхаб. Отсюда начни https://github.com/spring-projects ну и https://spring.io/docs

    а, во еще: https://github.com/spring-projects/spring-boot/tre...
    Ответ написан
    Комментировать