Default
Igor
чтобы фортнайт в 60фпс был
забыли про святую всех святых, или майнкрафт уже не лагает?
Ilya
У ангуляра тоже был маркетинг. И где он теперь? :)
ну Angular весьма популярен (если мы не об AngularJS)
Igor
а в чем заключается маркетинг у фреймворков/библиотек? Что-то я не сильно понимаю
Default
ну Angular весьма популярен (если мы не об AngularJS)
Если в 16-м году был острый срач на тему того, что же использовать в новых проектах, то сейчас большинство пишет на реакте и вью
Igor
Наверное всякие статейки на хабре, курсы..
разве реакт может напрямую быть связан с хабром? Фейсбук им платит?)
Default
А вообще компаний, способных в лоббирование решений в глобальном масштабе не так уж мало. Тот же майкрософт, например
Denis
а в чем заключается маркетинг у фреймворков/библиотек? Что-то я не сильно понимаю
мне кажется его нет как такового все зависит от имени компании которая его выпустила, если не смотреть на уникальность и тд
Ilya
а в чем заключается маркетинг у фреймворков/библиотек? Что-то я не сильно понимаю
ну к примеру коференции посвещенные исключительно фреймворку/либе и экосистеме (аля React Conf)
Anonymous
Ребят подскажите почему при обновлении страницы компонент рендерится один раз, а если при переходе с другой страницы на страницу с этим компонентом через хистори пуш то рендер 2 раза
Denis
ну к примеру коференции посвещенные исключительно фреймворку/либе и экосистеме (аля React Conf)
не совсем кто бы ходил туда если бы у реакта на гите было 500звезд?
Максим
https://www.npmtrends.com/react-dom-vs-vue-vs-@angular/core
порой мне кажется, что все эти скачивания vue - чьи то пет проекты. Я angular и vue изучил примерно в одно время, расширения кругозора ради и увеличения рабочих предложений. По ангуляру предложений с тех пор получал примерно как по реакту, в том числе сейчас занимаюсь проектом на нем. По вью - ну единицы встречал..
Anonymous
у тебя есть коннект с location от роутера?
Withrouter hoc на контейнере этого компонента
Ilya
не совсем кто бы ходил туда если бы у реакта на гите было 500звезд?
ну так это часть маркетинга. FB раскручивает реакт, в том числе и за счет конференций
Igor
Withrouter hoc на контейнере этого компонента
ну вот вероятно из за этого и ререндерит, можно накинуть конечно реакт мемо либо shouldComponentUpdate
Bohdan
Мне надо использовать useCallback вне компонента. Какие тут варианты?
Bohdan
никаких. Зачем тебе это?
ну собственно мемоизировать колбек.
Ilya
ну собственно мемоизировать колбек.
чем function f() {} не устраивает?
Igor
Пробовал pure component не сработало
у тебя определенно ререндер из-за смены location, подписка на эти данные, нужно понять что именно вызывает ререндер, pureComponent не решает проблемы
Bohdan
чем function f() {} не устраивает?
нужно создавать новую, когда зависимости меняются
Ilya
нужно создавать новую, когда зависимости меняются
а зачем? Какую задачу ты пытаешься решить?
Igor
смотри, если у тебя стейт и пропсы не меняются, ты можешь через deep equal например в shouldComponentUpdate разрулить эту ситуацию
Igor
но лучше конечно смотреть в родителях, скорее всего там есть подписка, по которой и вызывается ререндер всего содержимого
Bohdan
Там по сути код реакт компонента, но его нельзя использовать в jsx как реакт компонент (создает лишнюю обертку что ломает другую либу), а нужно вызывать как функцию. и соответственно хуки нельзя юзать
Igor
withRouter, connect
Igor
withRouter по сути коннектит компонент к роутеру, и при смене локейшена будет ререндерить
Ilya
props => <Item cb=(() => props.onCb(props.id)} />
всю задачу. А не кусок. Но в целом если ты хочешь одну и туже функцию при одинаковых входных параметром то просто погугли про кеширование вызовов функций
Igor
А как предотвратить рендер второй раз ?
ну разрулить в shouldComponentUpdate, но я бы на твоем месте ничего бы не делал, 2 рендера это херня
Igor
Спасибо
https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/withRouter.md
MⅨ
Можно как-то минимизировать state спрединг когда идешь в глубину? { ...state, cars: { ...state.cars, ford: { ...state.cars.ford
MⅨ
А можно с примером?
Igor
эм, ну например const cars = deepCopy(state.cars) cars[index].done = true this.setState({cars})
MⅨ
но ты же стейт в state не возращаешь? {..state, state.cars: cars}
Igor
тебе только нужно будет написать метод глубокого копирования
MⅨ
У меня от редукса
Igor
ты же ...state делаешь, не видишь подвоха?) Если бы this.setState(state) то было бы оправдано, а так ты на верхнем уровне обновляешь значение
Igor
аа, так бы сразу, я про локальный стейт думал, ну prevState нужно возвращать
Anonymous
https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/withRouter.md
Типа По любому пишут из за родительского компонента ?
Igor
там, где у тебя роуты и роутер
Anonymous
Хм
Igor
const AppPage = React.memo( ({ children }) => children, (prevProps, nextProps) => nextProps.pathname === prevProps.pathname ) у меня такой костыль, чтобы не было ререндеров страниц)
Anonymous
там, где у тебя роуты и роутер
Там провайдер только с параметром стора редакса
Igor
он и без этого должен ключи сравнить, только мемо оставь,
там по пропсам не только pathname, так что не прокатит
Bogdan
там по пропсам не только pathname, так что не прокатит
месо поверхносно сравнит все пропсы, я вижу , что pathname в обьекте пропсов лежит, его сравнит, он строка, все прокатит
Bogdan
const AppPage = React.memo( ({ children }) => children, (prevProps, nextProps) => nextProps.pathname === prevProps.pathname ) у меня такой костыль, чтобы не было ререндеров страниц)
а это работает? я проверил, у меня нет, апдейтится и ререндерится на каждый клик, прикольно
Bogdan
подожди, на какой клик?
ну кликал на пункт меню, pathname один и тот же или я не так понял?
Igor
ты внутри реакт мемо проставь консоль лог и смотри сколько у тебя рендеров
Igor
children - это роуты (страницы), меню независимое от роутера должно быть
Oleg
Bogdan
children - это роуты (страницы), меню независимое от роутера должно быть
во, нету апдейта на кодесандбоксе пробую, а вот есть проект, на нем и апдейт и ререндер есть
Vabka
У меня вопрос. Может кто совмещает react и mobx. Есть сделать компонент и использовать стрелочные функции, то всё ещё будет происходить ререндер из-за того, что стрелочные функции постоянно будут пересоздаваться в рендере? Или это починили?
Mikhail
народ, подскажите, как можно вынести resolve промиса в свойство класса? чтобы можно было потом дернуть resolve при анмаунте, например
Mikhail
На 4-ой строчке из (resolve, reject)
Vladimir
Ребят кто next js юзает ?