Ответы пользователя по тегу React
  • Сложно ли выучить React-Native?

    voidnugget
    @voidnugget
    Программист-прагматик
    Сам по себе react-native очень сырой и кривой в различных вариациях - без нативной разработки и ковыряния issues'ов в github'e в нём совсем никак. Без знания Obj-C / Swift'a и Java/Kotlin лезть не советую, иначе будут глупые вопросы по типу: "а где мне найти нормальную либу для анимаций в 60fps ?", ответом будет: "Взять и написать".

    Сам по себе RN под iOS был написан на C C++ Obj-C и Obj-C++ в разное время и разными людьми, без тестов.
    В целом ощущение что "собрали на скорую руку из говна и палок".
    Ответ написан
    Комментировать
  • Может ли Relay хранить состояние приложения?

    voidnugget
    @voidnugget
    Программист-прагматик
    Да, у него есть отдельный графовый Store, который умеет выполнять merge/split данных на графах.
    GraphQL Schema Stitching осуществляется посредством Viewer контракта, но он, естественно совсем недокументирован.

    Сейчас имеет смысл использовать Apollo2 вместо relay modern (1.0+).
    Ответ написан
    Комментировать
  • Объеденить Redux и Relay?

    voidnugget
    @voidnugget
    Программист-прагматик
    Вышел Apollo2, так что вопрос отпал сам собою...

    Состояние в redux'e под GraphQL хранить - очень плохая затея, так как нужно сразу же оформить middleware для merge/split операций на графах, а у нас обычно разработчики "ниасилят" такое.

    Да, в relay modern (1.0+) можно запилить redux в качестве стора через Environment.
    Ответ написан
    Комментировать
  • Формат ошибок в GraphQL?

    voidnugget
    @voidnugget
    Программист-прагматик
    GraphQL не привязывается к REST'у... по этому специфические заголовки и статусы ответов не используются.
    Коды ошибок сервера обрабатываются как часть GraphQL схемы. Сам GraphQL разрабатывался для любых транспортов, не только HTTP1&2, что бы его можно было гонять, допустим, там под WebSocket'aми или вообще под каким-нить rtmfp или любым другим кастомным протоколом.

    Это как шутка про REST:
    "Когда вы в последний раз видели HEAD запрос с range заголовками и статус ответа 206 (Partial Content) ?"
    "Это и определяет степень познания и ответственность современных хипстеров в разработке программного обеспечения"

    Я не советую использовать родную golang либу - она не соответствует последним спецификациям и плохо работает что с relay что с apollo.

    p.s. rest никто толком не знает ;)
    Ответ написан
  • Angular 2 + GraphQL миф или реальность?

    voidnugget
    @voidnugget
    Программист-прагматик
    Уже вышел Apollo2 - так что не вижу ничего сложного.
    На самом то деле проблема больше в корявом бэкенде - разработчики не умеют писать Schema мапперы что бы замапить схему реляционной СУБД на схему GraphQL API и привязать соответствующие ААА сервисы.

    В этом плане советую глянуть join-monster и postgraphql.
    мб заопенсорсю свой маппер когда-нить.
    Ответ написан
    1 комментарий
  • Как безопасно сохранять и рендерить форматированный текст в ReactJS SPA?

    voidnugget
    @voidnugget
    Программист-прагматик
    Можно рендерить в браузере, либо фильтровать.
    Никто не мешает делать вот так
    <b style="width:expression(alert('bad style!'))"> \o/ </b>

    Так что, чаще всего, кастомные стили тоже напрочь выпиливают.
    Хотя, после CSS кейлоггеров в скроллбарах и в SVG'шках, я уже мало чему удивляюсь.
    Ответ написан
    Комментировать
  • Как работает react js?

    voidnugget
    @voidnugget
    Программист-прагматик
    1. Грубо-говоря есть 1 страница в которую данные приходят по REST интерфейсу с ModX и он не участвует, непосредственно, в рендере. Сам по себе реакт рендерит страничку по кусочкам(компонентам), но вот внутри нет хорошего механизма для проверки нужно ли менять эти кусочки в DOM дереве - есть PureRenderMixin, но часто нужно городить руками.
    2. Нет эта страница не должна перегружаться и от реакта в таком случае толку 0. Реакт - это шаблонизатор в MVC, он не занимается работой с моделью и в нём нет бизнес-логики.
    3. Flux - это православный CQRS-ES, и непосредственно к modx отношения не имеет. Полноценной реализации этого паттерна, по всем канонам и с SOA, сейчас нет. Так что не стоит заморачиваться. Для работы с подобными вещами РНР / Python / Ruby довольно плохо подходят, так как там нужна асинхронность / многопоточность прямо с коробки, и без костылей типа gearmand или celery.
    4. Надо ковыряться в самом реакте - там много недочётов и недоделок, но сейчас это наиболее полноценное и типобезопасное решение для рендеринга посредством VirtualDOM.
    Ответ написан
    9 комментариев
  • Как динамически вызывать компонент React?

    voidnugget
    @voidnugget
    Программист-прагматик
    Достаточно плохо сформулирован вопрос

    Если прямо в JSX шаблоне
    {typeof FormOne !== 'undefined'? (<FormOne />): typeof FormTwo !== 'undefined'? (<FormTwo />): '' }

    а вот так уже внутри шаблона не получится
    {if (FormOne !== 'undefined') (<FormOne />) else if (typeof FormTwo !== 'undefined') (<FormTwo />)}

    Так можно сделать только вне шаблона
    render: function() {
      var Component = false
      if (FormOne !== 'undefined')
        Componenet = (<FormOne />);
      else if (typeof FormTwo !== 'undefined')
        Component = (<FormTwo />);
    
      return (
        {!!component ? (<Component/>): 'No component'}
      );
    },
    Ответ написан
    Комментировать