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

    @mikor Автор вопроса
    kulaeff, я видимо слишком просто описал проблему, если вы прочитаете ветку под первым ответом, задача не будет на столько простой
  • Как раскидать по компонентам REACT?

    @mikor Автор вопроса
    Роман Александрович, Компонент Todos это пример из GraphQL, в действительности есть очень много компонентов в которых осуществляется GraphQL запрос, и по мере получения результата от сервера, меняются статусы Errors/Loading. Если я в каждом компоненте я буду писать

    if (loading) {
       <Loading>
      } else if (error) {
       <Error> 
      } else {
        return (код компонента);
      }


    представляете что будет? вот мне и нужно сделать что то в духе

    export default (props) => {
      if (props.data.loading) {
        return <div>Loading</div>
      }
      return <div />
    }


    и вот этот код (видимо) нужно вызывать где то в Layout и аналогично error, т.е. если там true то выводим блок иначе пусто. Я просто не совсем представляю как все вместе это должно выглядеть... с учетом того что статус loading меняется
  • Как раскидать по компонентам REACT?

    @mikor Автор вопроса
    Роман Александрович, какая разница на сколько строк, у меня этих компонентов (аналогичных) будет несколько десятков, и в каждом это условие? а если добавиться что то еще? во все 50 штук добавлять? при всем уважении, вы или не правы или не так меня поняли
  • Как раскидать по компонентам REACT?

    @mikor Автор вопроса
    В том то и дело что в каждом компоненте аналогичном Todos, надо будет писать это условие, чего не хочется...
  • Как лучше сделать SPA vs MPA?

    @mikor Автор вопроса
    Когда я писал SPA, я это и имел ввиду
  • Как организовать взаимодействие с серверным API?

    @mikor Автор вопроса
    Sergey Illarionov: может вы сможете помочь в моем втором вопросе Динамическая подгрузка js, css в REACT? вот ссылочка, в любом случае спасибо вам
  • Как организовать взаимодействие с серверным API?

    @mikor Автор вопроса
    СПАСИБО! Вы просто сделали мой день!
  • Как сделать интерактивный онлайн-консультант на сайте - гуляющая девушка?

    @mikor
    Для вас в аду будет стоять отдельный котел, 2000-е закончились, хватит, ну пожалуйста... =(
  • Динамическая подгрузка js, css в REACT?

    @mikor Автор вопроса
    Роман Александрович: Буду безумно рад увидеть Ваш пример на github.

    По поводу стилей, чуть подробнее расскажу тогда, может я чего очевидного не вижу. Например для страницы /sign_up, т.е. компонента Registration

    Компонент - Registration.jsx
    import React from 'react'
    import { Link } from 'react-router-dom'
    import './Registration.scss'
    
    export default () => (
      <div>
        <h1>Sign up</h1>
        <Link to="/sign_in">Sign in</Link>
      </div>
    )

    Файл стилей компонента - Registration.scss
    body {
        background-color: yellow;
    }

    Entry (точка входа)
    import React from 'react'
    import ReactDOM from 'react-dom'
    import { Router, Route, Switch } from 'react-router'
    import createHistory from 'history/createBrowserHistory'
    
    // SHARED
    import './shared/stylesheets/base.scss'
    
    // APPS
    import Welcome from './welcome'
    import Authorization from './authorization'
    import Registration from './registration'
    
    const history = createHistory()
    const div = document.createElement('div')
    document.body.append(div)
    
    ReactDOM.render(
      <Router history={history}>
        <Switch>
          <Route component={Welcome} exact={true} path="/" />
          <Route component={Authorization} exact={true} path="/sign_in" />
          <Route component={Registration} exact={true} path="/sign_up" />
        </Switch>
      </Router>,
      div
    )

    и основной файл стилей в /shared/base.scss
    body {
      text-align: center;
    }

    На выходе получаем main.css
    body {
      text-align: center; }
    body {
      background-color: yellow; }


    Вот как то так...
  • Динамическая подгрузка js, css в REACT?

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

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

    Если делать индивидуально для каждой страницы - может быть пересекающийся код, который помимо трафика сожрет повторно еще и оперативки.

    Вы настраивали webpack? Импортировали классы? Использовали ExtractTextPlugin? имена классов выглядят как набор символов и защищены от коллизии

    Например, то же сжатие gzip имеет смысл на файлах >8kb, в противном случае он может не только не сжимать код, но и немного увеличить. При этом один собранный общий файл js или css gzip легко может сжать и в 10 раз.

    Не знаю насколько достоверна информация, но я не переживаю за то что файл на 1-2кб будет весить больше

    Собирать код в общие файлы также полезно и для сервера. Даже если они кэшируются браузером, браузер все равно отправляет запрос по каждому файлу web-серверу, который в свою очередь смотрит в папку с проектом и отвечает браузеру, что файл не изменился. А каждое обращение к HDD съедает его ресурс и увеличивает время переходов по сайту.

    По поводу чем меньше запросов к серверу - согласен. Но плюсы данного подхода перекрывают минус того что будет на 1 запрос больше. А что касается съедания ресурсов HDD то это ерунда какая то, мы же не в 90ых, сервер не файл в папке сверяет, а хэш и нагрузки какой то значительной на сервер это не оказывает

    Мое мнение - если у вас меньше 20Мб яваскрипта и стилей - не стоит задумываться об их разделении. Большой головняк и при этом минимум эффективности.

    Отчасти я с Вами согласен, может быть да, гемора меньше, проще, но плюсов такого подхода что я описал - значительно больше. Я думаю вам не составит труда найти популярные ресурсы с таким подходом и может быть чу чуть изменить свое мнение.

    За ответ спасибо, было интересно прочитать
  • Динамическая подгрузка js, css в REACT?

    @mikor Автор вопроса
    Роман Александрович: Было бы хорошо если так, но я например в компонент Registration импортирую файл со стилями что относится только к нему. Но в ответ я получаю тот же main.css со всеми стилями