Size: a a a

2020 October 06

p

persona x grata in pro.js
Json Statem
источник

AS

Andrew Smith in pro.js
Foma
состояние?
Да.
источник

F

Foma in pro.js
и чтоза глобальное состояние?
источник

F

Foma in pro.js
Andrew Smith
Ааа. Так бы и сказал)))
Со стейтами вообще не понимаю зачем их делать и как с ними работать правильно, типа локальные, глобальные, что-то там в них делается само...
А калькулятор я на Js-е напишу, не думаю что там проблемы будут - разве что со стейтами этими)
, типа локальные, глобальные
источник

AS

Andrew Smith in pro.js
Foma
и чтоза глобальное состояние?
Честно - я х.з, на Ютубе так чел сказал 😅
источник

AS

Andrew Smith in pro.js
Foma
, типа локальные, глобальные
Типа глобальные стейты, в которых стоит хранить бизнес логику и локальные для фронта, элементов всяких локальных и т.п.
источник

CM

Chingiz Mamiyev in pro.js
Andrew Smith
Типа глобальные стейты, в которых стоит хранить бизнес логику и локальные для фронта, элементов всяких локальных и т.п.
Стейт менеджер
источник

AS

Andrew Smith in pro.js
Chingiz Mamiyev
Стейт менеджер
Да
источник

p

persona x grata in pro.js
Andrew Smith
Типа глобальные стейты, в которых стоит хранить бизнес логику и локальные для фронта, элементов всяких локальных и т.п.
Почитай доку Реакта хотя бы до середины, чтобы понимать как верстать с JSX
источник

AS

Andrew Smith in pro.js
persona x grata
Почитай доку Реакта хотя бы до середины, чтобы понимать как верстать с JSX
Та да. Завтра как раз почти весь день свободных, займусь чтением доков. А то уже аж бесит это недопонимание всего этого.
источник

В

Виктория in pro.js
Andrew Smith
что я делаю не так?
нужно этот код в реакт перенести, но он отказывается работать


менюшка при скроле должна поменять цвет.
пытаюсь сделать так:

const header = document.querySelector('.header.container');

export default class Header2 extends React.Component {
 state = {
   scrol: header,
 };



 changeColor = ('scrol', () => {
   this.setState color = scrollY
   if (color > 250) {
     ${header.style.backgroundColor} = {style: '#29323c'};
   } else {
     ${header.style.backgroundColor} = 'transparent';
   
   }
 });
Вообще самая грубая ошибка здесь состоит в использовании стандартных методов апи для работы с DOM (document.querySelector) в приложении на Реакте. Такой код нарушает концепцию и философию Реакта. Ведь Реакт это библиотека для создания интерфейсов декларативным способом. Можно сказать, что Реакт это абстракция над кодом, который просто работает с тем же DOM деревом посредством методов апи (document.querySelector, document.querySelectorAll и т.д). То есть Реакт берет на себя всю ответственность по взаимодействию с DOM, позволяя программисту не беспокоиться во время разработки о таких второстепенных и отвлекающих от основной мысли вещах как создание нового элемента, его добавление в уже существующий на странице элемент, добавление и удаление обработчиков событий и т.д.
А ты в своем коде идешь как бы в обход этих ключевых возможностей, делая тем самым использование Реакта в своем проекте вообще бессмысленным
источник

В

Виктория in pro.js
Единственный момент когда без использования метода addEventListener никак не обойтись, это добавление обработчиков на document или window
источник

В

Виктория in pro.js
Реакт же не может создать эти элементы
источник

В

Виктория in pro.js
И, соответсвенно, контролировать их своими методами
источник

В

Виктория in pro.js
Но такое навешивание событий нужно делать в методах жизненного цикла компонента
источник

p

persona x grata in pro.js
Виктория
Но такое навешивание событий нужно делать в методах жизненного цикла компонента
Da, в хуке useLayoutEffect
источник

AS

Andrew Smith in pro.js
Виктория
И, соответсвенно, контролировать их своими методами
Хм. То переписать все в функцию обычную? А как тогда подключать к стилям? (К примеру hamburger button)
источник

В

Виктория in pro.js
Виктория
Но такое навешивание событий нужно делать в методах жизненного цикла компонента
Добавлять обработчики в методе componentDidMount, а удалять в componentDidUnmount
источник

p

persona x grata in pro.js
Лендинг на Реакте это не самая лучшая идея из-за проблем спа и сео. Придется подключать Helmet js. Или переписать проект в Gatsby
источник

DG

Dmitry Guzeev in pro.js
это у вас тут помощь такая? человек вообще ничего не понимает в реакте, а вы тут рассказываете куда лучше обработчики событий ложить?
источник