Ответы пользователя по тегу React
  • Стоит ли использовать react в простых проектах-лендингах?

    @Sun_Day
    Да не особо целесообразно, ведь в лендосах основной упор на верстку, ну и где-то обычным жсом поколдовать - так с этим тоже легко справиться без фреймворков.
    Минусы - сео в накладе, размер бандла повышается.
    В принципе все это более ли менее решаемо, только зачем вам лишняя головная боль, если речь про обычные лендосы?
    Ответ написан
    3 комментария
  • Зачем передавать dispatch в хук useEffect?

    @Sun_Day
    В основном чтобы пофиксить предупреждения от eslint. То же самое будет, если написать вот так

    useEffect(() => { вызов dispatch }, [])

    The dispatch function reference will be stable as long as the same store instance is being passed to the . Normally, that store instance never changes in an application.

    However, the React hooks lint rules do not know that dispatch should be stable, and will warn that the dispatch variable should be added to dependency arrays for useEffect and useCallback. The simplest solution is to do just that:


    ссылка на документацию

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

    Варианты:
    1) Сделать то, что показано вами выше.
    2) Отключить правило линтера в данном конкретном месте строчкой // eslint-disable-line
    3) Отключить правило глобально в самом конфиге eslint. Гугл в помощь.
    Ответ написан
    1 комментарий
  • Как работают классовые компоненты в React?

    @Sun_Day
    Это логика, которую обрабатывает движок реакта. Ты просто следуешь абстракциям, которые предоставляет либа. Наследуясь от React.Component ты вызываешь метод render, который реализован в базовом классе React. Далее тебе не нужно у каждого дочернего компонента вызывать render, это детали внутреннего исполнения. В данном случае ты просто работаешь с jsx. Чтобы скрупулезно проследить за деталями внутренней реализации - нужно смотреть исходный код.
    Ответ написан
    Комментировать
  • Почему redux лежит на плечах фронтендера, когда это работа бэкэндера?

    @Sun_Day
    Когда юзер находится в вашем веб приложении, он создает определенные действия. Действия связаны с состоянием. А redux это набор утилит для глобального хранения состояния(state) в приложении.
    Таким образом, вы создаете какие-то объекты и они меняются в зависимости от состояния. Пользователь это видит как некие различные реакции на его действия.
    Ответ написан
    Комментировать
  • Какой указать тип для event path на React?

    @Sun_Day
    Вероятно его туда не добавили по какой-то причине. Есть подозрение, что именно для того, чтобы вы его не использовали.
    В мозиле отыскать его не удалось, но вот в хроме оно есть. Конечно можно написать обходной тип, но наверное не стоит использовать это свойство, если важна какая никакая кроссбраузерность.
    А вот с функцией composedPath все впорядке.
    https://developer.mozilla.org/en-US/docs/Web/API/E...

    Но если прям необходимо, то как-то так:

    type M = MouseEvent & {
        path: Node[];
    }
      const handleOutsideClick = (event: M ) =>


    6059fcedca4bc829495530.jpeg
    6059fcf7e1b25851798383.jpeg
    Ответ написан
    1 комментарий
  • Как правильно верстать на ReactJS?

    @Sun_Day
    Все зависит от задач. В реакте важно делать компоненты как можно более мелкими(главное совсем не переусердствовать, хоть это и непросто). Декомпозировать. Это важно особенно с компонентами, которые могут стать переиспользуемыми.

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

    То есть, будет вполне норм, если в стартовом компоненте, с которого начинается отрисовка приложения, и начальная логика - это как правило App component, у вас будет:

    const App = () => {
      <Header />
      ... other components
      <Footer />
    }


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