Задать вопрос
  • Где взять тестовые данные для дизайна?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Неужели так сложно придумать фейковые телефоны и адреса?
    Ответ написан
    3 комментария
  • Как уменьшить размер фото в CSS если в файле я этого не вижу?

    PavelMonro
    @PavelMonro
    В build.js код
    a(["jquery","get_val"],function(a,b){a(function(){var c=a("html");if(c.hasClass("homestead_page")){var d=a(".section_wrap"),e=".resize_rooms";d.find("section.homestead").each(function(){var c=a(this),d=c.find("nav.rooms"),f=d.find(">a");!function(){function b(){a(window).trigger("resize"+e),c.each(function(){var b=a(this),c=b.find(">span"),d=c.width();b.css("width",""),b.css("width",d+h+"px")})}var c=f.find(">span"),d=parseInt(c.eq(0).css("padding-left"),10),g=parseInt(c.eq(0).css("padding-right"),10),h=d+g;a(window).on("load",a.proxy(setTimeout,null,b,1)),setTimeout(b,1)}(),function(){function c(){var b=a(window).width();i>b&&(b=i),b>j&&(b=j),b-=i,f.css("width",""),f.css("width",Math.floor(b*k/l+g)+"px")}var d=74,g=d+28,h=d+50,i=b("minWidth"),j=b("maxWidth"),k=h-g,l=j-i;a(window).on("resize"+e,c),setTimeout(c,1)}()}),d.find(".columns").each(function(){var b=a(this);!function(){var a=b.attr("data-background");a&&b.css("background-image",'url("'+a+'")')}(),require(["section_block_resize"],function(a){b.each(a)})})}})})}(),function(){function a(){var a=Array.prototype.slice.call(arguments,0);"string"!=typeof a[0]&&a.unshift("pages/homestead_subpage"),window.define.apply(this,a)}a.amd={jQuery:!0},/**
    Ответ написан
    1 комментарий
  • Где почитать про "боевое" использование сокетов?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Еще в 2012 году парни выжимали 1 млн соединений с 1 физического сервера: https://habrahabr.ru/post/123154/
    Даже если снизить накал на порядок и предположить что у них и нагрузка была в плане количества сообщений ничтожной - все равно получается 100 000 соединений с сервера, а это больше чем средний онлайн ААА игры.

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

    "Pubg держит 3 млн игроков" - забавно). Pubg держит 100 игроков в одной сессии и это хороший результат.
    WoT держит 20 игроков в одной сессии.
    EVE в самой большой битве было ~7500 человек, и они вводили своё фирменное замедление времени - сервер обслуживающий локацию не успевал обсчитывать математику.

    А вообще, все проекты обслуживающие большое количество людей строятся изначально исходя из возможности горизонтального масштабирования. В этом смысле сессионки вообще шикарны, изолированная на долгое время группа людей, какие-то связи за пределы группы отсутствуют, никакие серьезные потоки данных из сессии перебрасывать не нужно, целостность данных тоже пофиг по большому счету - идеальная история.
    Ответ написан
    2 комментария
  • Все ли приложение будет ререндерится, если измениться какой то внутренний(где то в приложении) state одного из компонентов?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Разумеется что нет. Рендерится (перерисовывается) только "та часть" (тот компонент), в которой были изменены пропсы/стейт + все дети если в них нет оптимизаций (например, они могут быть сделаны как stateless, pureComponent или иметь shouldComponentUpdate - тогда перерисовываться не будут при описанных условиях).

    вижу обновили вопрос: да, только футер.
    Ответ написан
    2 комментария
  • Что такое side эффект?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Sideeffect - это что-то, что может повлиять на "чистоту" вашей функции. Редьюсер же - функция. Чистая функция, это значит такая, что если ей на вход подать одни и те же параметры, то результат будет всегда один и тот же.

    Пример: есть у вас в localStorage имя пользователя. И вы в коде пишите, что-нибудь такое:
    case SET_DISPLAY_NAME: {
      return {
        ...state,
        name: window.localStorage.getItem('name') ? window.localStorage.getItem('name') : action.payload,
      }
    }


    Следовательно, если вы подадите на вход функции, имя Вася, то оно вам вернет Васю только если "в sideeffect локал_сторадже" нет ничего. Здесь вы не можете быть уверены, что если подать Васю, вам всегда вернется Вася.

    По примеру с комментариями - не думаю что хороший пример. Айдишники генерировать будет бэкэнд ваш. Вы добавляете новый комментарий путем отправки его на сервер, с сервера приходит статус "ОК" и ваш комментарий уже с айдишником.

    Бывает, что айдишники нужно генерировать самому, тогда они отлично генерятся в acftionCreator'ax. Например, делаете вы систему уведомлений, и у каждого уведомления должен быть свой id (например, тут сервер вам не нужен, вы ничего туда не отправляете, просто визуальная часть). В таком случае, я бы не стал генерировать id через middleware, а просто делал бы это в "экшенах".

    Тем не менее, с генерацией айди все тоже самое, что и с localStorage. Вы не уверены, что подав на вход: имя, текст комментария и почту - получите ТОТ же результат, что и в прошлый раз с такими же входными параметрами (айдишники то разные будут!)
    Ответ написан
    3 комментария
  • Как сделать Ajax запрос на React js?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    Для аякс запросов можете использовать Fetch или Axios.
    Советую выбрать второй.
    Ответ написан
    5 комментариев
  • Как сделать Ajax запрос на React js?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    У React же просто охренительный официальный туториал

    Пройдите его - это несколько часов займёт. Пока вы не разберётесь немного с Реактом - вы ничего на нём не напишете)
    Ответ написан
    1 комментарий
  • Как сделать Ajax запрос на React js?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Или используйте старый xhr (новый fetch тоже норм). В общем, тут суть в том, что ваш вопрос больше о том, как сделать асинхронный запрос в React. Все просто: храните начальное состояние и флаг загрузки в стейте. При запросе обновляйте. Реакт сам все отрисует при изменение стейта.

    Пример (код с одной из глав нового учебника, если интересно инфа в профиле)
    class App extends React.Component {
      constructor(props) {
        super(props)
        this.state = {
          data: [],
          isLoading: false,
        }
      }
      componentDidMount() {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', 'http://localhost:3000/data.json', true); // замените адрес
        xhr.send();
        this.setState({ isLoading: true })
    
        xhr.onreadystatechange = () => {
          if (xhr.readyState !== 4) {
            return false
          }
    
          if (xhr.status !== 200) {
            console.log(xhr.status + ': ' + xhr.statusText)
          } else {
            this.setState({
              data: JSON.parse(xhr.responseText),
              isLoading: false,
            })
          }
        }
      }
      renderProducts() {
        const { data, isLoading } = this.state
        if (isLoading) {
          return <img src='/i/preloader.gif' alt='загружаю...' /> // рисуем прелоадер
        } else {
          return data.map(item => {
            // я здесь отрисываю все через другой компонент, вы же можете просто рисовать сразу верстку для начала
            return <ProductCard key={item.id} name={item.name} price={item.price} quantity={item.quantity} />
          })
        }
      }
      render() {
        return (
          <div className='App'>
            <div className='product-list'>
              {this.renderProducts()}
            </div>
          </div>
        )
      }
    }
    Ответ написан
    1 комментарий
  • Как реализована замена в vue/angular...?

    Вот сделал небольшой набросок просто для понимания https://jsfiddle.net/wq3sLnbd/16/
    Ответ написан
    1 комментарий
  • Как правильно разместить элементы?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    У тебя скрин с калькулятора?
    Ответ написан
    1 комментарий
  • Про конкуренцию на фрилансе?

    search
    @search
    мама говорит что я особенный
    • индусы и "хорошие специалисты" - это разные непересекающиеся ниши;
    • заказчики тоже разделяются на новичков (не знающих разницу между индусом за 5 долларов в час и тяжеловесом за 50) и опытных. Чтобы стать опытным заказчиком нужно хоть раз обжечься об индуса;
    • заказчики в основном аматоры, но на том же апворке можно встретить и приличные компании. Компании в основном ищут грамотных спецов и не жалеют денег;
    • если у вас нет отличного профиля с историей заказов, то вам предстоит как-то доказать что вы не индус;



    PS
    Как-то у своей хорошей подруги из Индии спросил "почему индусы такие дряные программисты?". Она ответила что это культурная особенность. В Индии во многих школах запрещено задавать вопросы (во всяком случае так было раньше), поэтому программист выполняет задание настолько, насколько он его понял и редко ставит под сомнение идеи начальника/заказчика. Такие дела.
    Ответ написан
    2 комментария
  • Что такое web 2.0?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Для начала, предлагаю прочитать книги "википедия для чайников" и "как пользоваться гуглом"

    https://ru.wikipedia.org/wiki/Веб_2.0

    магический сайт, который знает ответы
    Ответ написан
    Комментировать
  • Как в TypeScript структурировать файлы?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Если речь о nodejs (если верить тэгам), то надо просто запускать вот так: ts-node ./index.ts (ts-node), скомпилированных файлов вы при этом даже не увидите.
    Если паче чаяния речь о фронтенде, то сборкой занимается бандлер (чаще всего webpack), опять же промежуточные скомпилированные файлы при этом не видны.
    Ответ написан
    1 комментарий
  • Должно ли в React всё быть компонентами?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Реакт можно встроить в уже существующий рабочий сайт. Например, есть какая-то сложная таблица для переводчиков с кучей логики - вот тут самое место реакту. Воткнули, не трогали сам сайт (пусть он будет хоть на руби-шаблонах написан) - выкатили.

    Другое дело, когда у вас изначально SPA приложение на React. Тогда нет никакого смысла шапку/страницы с логотипом и так далее делать не на react. Удобно же, когда все в компонентах.
    Ответ написан
  • Что такое react на пальцах?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Вы можете написать все что угодно. Будь это сайт с сундуками cs:go или сервис поиска дешевых билетов. Главное, что React и подобные библиотеки отвечают за "лицевую" часть. Отсюда и слово frontend. Для полноценного сервиса нужен еще бэкэнд.

    Реакт упрощает написание SPA - то есть одностраничного приложения. Это такое приложение, которое не требует перезагрузки окна браузера для брождения по разным экранам.

    Без бэкэнда вы тоже можете написать кучу приложений, если воспользуетесь доступными API.
    Например - вк выдает вам всю инфу по вашим фотографиям. Вы можете найти те, которые были самыми популярными (по лайкам), добавить сортировку по годам, фильтры по 10 / 100 лайков, например.

    Если играете в доту, можете вытащить все свои игры и построить графики... (пример dotabuff)

    И тд тп.
    Ответ написан
    3 комментария
  • В чем ошибка при переключении года?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    https://codesandbox.io/s/mopx1nzpkj
    у вас куча маленьких ошибок
    1 вы не поключили connect и следовательно компонент не знает о функции setYear
    2 вы выводите год как {year} но как только жмете на 1 из кнопок года то в редусер вы ложете не число а обьект
    return { ...state, year: action.payload } это вернет вам {year:2017} и в компоненте уже к нему обращаться нужно вот так {year.year}

    вот в этом моменте const { year, photos} = this.props вы получате ваши данные в компоненте. Выведите их в консоль и тогда вам станет немного понятнее в чем у вас ошибки
    Ответ написан
    8 комментариев
  • Как переписать 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 комментария
  • Как youtube воспроизводит видео?

    @Gortyser
    display: none;
    Плохо всматриваетесь
    spoiler
    5a86f516d1b66982870244.jpeg
    Ответ написан
    2 комментария