Ответы пользователя по тегу React
  • Как собрать все стили React?

    Robur
    @Robur
    Знаю больше чем это необходимо
    ctrl-s в браузере и почистить потом лишнее.
    Ответ написан
    Комментировать
  • Как происходит процесс верстки на React?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Там же не будут условно все 3-4 человека работать над версткой,

    почему нет? будут, если так будет работа построена.

    Верстка в реакте по определению связана с компонентом неразрывно, если наверстать что-то в html то потом переделывать под реакт - столько же работы если не больше.

    есть несколько вариантов:
    1. создание UI - библиотеки компонентов, из которых уже разработчики строят что им нужно. Это требует грамотного подхода, но если сделано как надо - то весьма удобно. Разработчик в идеале вообще ни одного html тега не пишет - везде просто компоненты из библиотеки. на элементы и на лэйаутинг. Ответственный за библиотеку уже там внутри пишет стили, верстку, обновляет под дизайн и так далее.
    2. каждый разработчик создавая компонент сразу продумывает и полностью создает верстку для него.
    3. разработчики пилят что-то работающее но выглядещее как мечта кубизма, потом это отдается верстальщику, который уже стизилует, поправляет теги, делает чтобы было хорошо-красиво.

    во всех вариантах тот кто отвечает за верстку должен конечно знать JSX и хотя бы базовое представление о том как компоненты рендерятся в DOM-дерево.
    Ответ написан
    Комментировать
  • Как протестировать атрибут компонента, если это функция?

    Robur
    @Robur
    Знаю больше чем это необходимо
    "атрибут компонента" не тестируется. Тестируется какая-либо логика.
    Если вы хотите протестировать саму функцию, то выделяете ее в отдельную функцию и пишете для нее тест
    как-то так

    function changePage(page) {
    callFunction(page)
    }
    
    <Component 
     changePage = {changePage}
    />
    
    
    ///где-то в тестах пишете тест для changePage.
    Ответ написан
    Комментировать
  • PrivateRoute как реализовать проверку токена?

    Robur
    @Robur
    Знаю больше чем это необходимо
    это надо делать не в PrivateRoute а где-то в другом месте (например при старте приложения, или после логина) и класть в стейт приложения.
    PrivateRoute должен просто смотреть в стейт - можно показывать или нельзя, никаких запросов делать не должен.
    Ответ написан
    Комментировать
  • Похожи ли React js на React Native?

    Robur
    @Robur
    Знаю больше чем это необходимо
    похожи
    Ответ написан
    Комментировать
  • Как добавить данные в существующий документ коллекции mongodb?

    Robur
    @Robur
    Знаю больше чем это необходимо
    так же должна сохраняться к коллекцию, в тот документ который был создан с первого Select, но создаётся новый документ с данными.


    Очевидно что вы вместо обновления существующего создаете новый. Чтобы это изменить, надо перестать создавать новый, а вместо этого обновлять существующий. Тут вам upsert подойдет.

    Как можно отвести один документ на одного пользователя, что бы на каждого пользователя был свой документ в коллекции mongodb.


    в каждый документ сохраняйте какой-нибудь id пользователя, потом каждый раз ищете, есть ли уже документ для нужного id, если есть, обновляете, если нет - создаете новый.
    Ответ написан
  • Mobx state tree и MobX Разные вещи?

    Robur
    @Robur
    Знаю больше чем это необходимо
    MST это Mobx+State tree. То есть надстройка над mobx.
    Mobx дает инструменты для создания реактивных данных, но не дает никакой структуры для приложения, максимально гибкая библиотека, как хотите так и строите свое приложение.
    mst - построена на основе mobx, дает больше всяких фич, и при этом налагает на вас определенные условия - как вы данные в своем приложении должны организовать и работать с ними.
    Ответ написан
  • Как объединить два больших react приложения из разных реп?

    Robur
    @Robur
    Знаю больше чем это необходимо
    ну, варианта два:
    - иметь два реакт-приложения на странице, инициализируя их в разных контейнерах
    - приводить к одной архитектуре и структуре для начала.

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

    Естественно если вы хотите объединить приложения на уровне исходного кода то с большой вероятностью этот код и сборку придется переделывать либо в первом либо во втором.
    Ответ написан
    Комментировать
  • Стоит ли переходить на Хуки?

    Robur
    @Robur
    Знаю больше чем это необходимо
    5 комментариев
  • Что здесь является this?

    Robur
    @Robur
    Знаю больше чем это необходимо
    this будет равен тому что был установлен для функции в которой эта строка вызывается.

    все. помимо этого не надо усложнять. Ничего никуда не опускается, ничего никуда не подставляется.

    в строке this.renderSquare(0) эта функция render() для функции render в this будет экземпляр Board.
    дальше уже вызывается renderSquare() в которой this - тот же самый экземпляр Board (все как и для render по сути)

    в строке value={this.state.squares[i]} никакой this никуда не передается, из массива squares берется нужное значение и передается 'X' или 'O' без всяких board

    в строке onClick={() => this.handleClick(i)}
    используется стрелочная функция, для того чтобы вне зависимости от того как она будет вызвана в будущем, значение this осталось неизменным, таким каким оно было когда эта функция создавалась (this из renderSquare)

    почитайте как они работают.
    Ответ написан
  • Как убрать лишние перерендеры?

    Robur
    @Robur
    Знаю больше чем это необходимо
    второй и третий компоненты тоже перерендериваются, вопрос почему?

    потому что так устроена логика работы реакта.
    То что "пропсы не меняются" еще не значит что рендер компонента выдаст то же самое. Может у вас там таймер засунут или еще что.

    Поэтому по дефолту реакт вызывает рендер всех затронутых компонентов, и если вы точно знаете что ничего не поменялось, об этом нужно сообщить, shouldComponentUpdate в pureComponent именно это и делает, но ничто вам не мешает написать свой метод. для функциональных компонент на хуках есть React.memo для той же цели.
    Ответ написан
  • Что учить для верстки простого проекта на React JS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    html+css.
    Что-то устарело, что-то новое, этот список постоянно меняется, так что "учите" то, как это самостоятельно выяснять.
    но. начните с штудирования caniuse.
    ну, верстку на float или таблицами можно уже не изучать.

    судя по вопросу, у вас знаний сейчас около 0 так что учите хоть что-нибудь, по ходу дела поймете что нужно что нет и в каких условиях.
    Ответ написан
    Комментировать
  • Хороша ли связка React,Redux + Meteor?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Для практики лучше такое не делать - много гемороя, но если сильно хочется -
    гугл по запросу "redux+meteor" выдает кучу ссылок на попытки других людей, код, всякие мидлвары есть, обсуждения и так далее. Не знаю что вы не нашли, может у вас гугл другой.

    Кроме *Express*, слышал что плохо с оптимизацией.

    Слухами земля полнится, если вы так выбирате технологии, то интерес к redux+meteor неудивителен.
    До того момента когда для вас будет иметь значение оптимизация в Express вы вряд ли дойдете ближайшие пару-тройку лет. Берите и все.
    Ответ написан
  • Как сделать Hook, для работы с query parameters?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. не понятен вопрос, какие эффекты, при вем тут useEffect? не хватает кода как вы это все используете и что за проблемы.
    2. updateUrl должна сохранять все параметры которые уже были в урл, и добавлять/обновлять новые. У вас все удаляется и ставятся только переданные.
    3. Золотой стандарт - использовать роутинг. Если не хотите или не подходит - то любой велосипед, ваш тоже подойдет.

    4. Вы точно хотите именно url? может вам localStorage больше подойдет?
    Ответ написан
  • Как убрать зависимость отрендереных методом .map компонентов друг от друга?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. они не зависят друг от друга, вы меняете стейт компонента и рендер вызывается заново. Это нормальное поведение.
    2. переменная message - одна на всех, если вы ее поменяете то во всех разом произойдет изменение - добавится или удалится "отправлено".
    Если у вас проблема в том что вы нажимаете отправить в одном компоненте, а "отправлено" появляется во всех - а хочется чтобы в каждом было свое "отправлено" то вам надо сделать для каждой строки отдельный флаг. Лучше всего - сделать то что внутри Grid отдельным компонентом и перенести message/setMessage туда.
    Ответ написан
    Комментировать
  • Можно ли начинать изучать программирование с React.js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно. Результат будет хуже (намного), дольше (в разы) и сложнее (если вы склонны плакать - заплачете).
    Но можно.
    Ответ написан
    1 комментарий
  • Доступ к state в многостраничном приложении?

    Robur
    @Robur
    Знаю больше чем это необходимо
    передайте this.state.name в Content как свойство, а в нем уже передайте в catalog из props.
    Ответ написан
    Комментировать
  • Как сделать совместное редактирование данных на сайте?

    Robur
    @Robur
    Знаю больше чем это необходимо
    У меня была немного другая задача, но очень близкая, от реализации которой я в итоге отказался, но в процессе изучения как можно это решить, узнал про https://en.wikipedia.org/wiki/Conflict-free_replic...
    Такие структуры позволяют менять общие данные независимо и параллельно и затем их объединять в результат.

    Возможно это вам подскажет нужное направление мысли.
    Ответ написан
    2 комментария
  • Почему многие говорят что mern умер?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Почему они так говорят лучше у них спросить.
    насчет древности - стеку lamp лет 20, а mern - лет 5.
    Ответ написан
    Комментировать
  • Как перерисовать фронтенд, не передавая представление в теле ответа?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Для этого и используют React и Angular?

    да.
    Возьмите любой, прочитайте доку, вникните, и поймете, как.
    Так же можете погуглить Ajax.
    Ответ написан
    Комментировать