Виталий
Mikhail
я смотрю этот stackblitz хорошо работает с хуками, добавил , [], а он его игнорирует
Vadim
Vadim
вы похоже не сохраняете изменения)
Danila
Советую попробовать codesandbox, провереное решение.
Виталий
Vadim
Mikhail
я имею ввиду код в песочнице
ну я добавил этот [], посмотрел что нифига не изменилось, подумал, что код не обновился, добавил width: {width} в рендер, изменения появились на экране, но [] в хук все равно не передавался
Vadim
Mikhail
песочница кривая
Danila
Andrew
Привет ребята :3
Это нормальная практика в реакте оборачивать по дефолту все компоненты в React.memo/PureComponent?
Vladimir
from
Misha
А почему нет?
Andrew
Bogdan
Bogdan
А почему нет?
Потому что бывает, что проще перерендерить, чем сравнить пропсы, внутри у него сравнение по ключу
from
А почему нет?
И ещё дежурное "зависит от приложения"
Если при ререндерах как правило данные меняются (а это свойственно динамическим приложениям), то получишь только больше вычислений. К вычислениям ререндеров просто добавишь вычисления по диффам пропсов.
Bogdan
Или тесты писать поидее, ну если их нету, то пристальным взглядом смотреть
Misha
Bogdan
понял, спасибо
А что ты понял с его ответа? Я ничего не увидел, касательно вопроса, просто набор слов
from
from
from
если при сравнении пропсов выяснилось, что они изменились, то ты просто потратил время на сравнение
from
По умолчанию конечно считается, что чаще тебя это выручает, чем наоборот
Но у нас например был приложение где много данных и по определению по сокетам прилетают только обновившиеся данные. Т.е. заранее известно, что сравнивать ни к чему, ререндерить надо
Bogdan
Bogdan
from
Но у мемо вряд ли дорогое сравнение будет, там shallow equality проверяется
Viktor
Я бы от этого отталкивался
Viktor
дефолтная мемоизация в моем понимании тоже выглядит безобидно)
Bogdan
Viktor
вон они в твиттере говорили нечто в стиле "наша задача научить комьюнити, что рендер-функции должны быть чистыми"
Viktor
https://github.com/reactjs/rfcs/pull/108
https://github.com/reactjs/rfcs/pull/108#issuecomment-468670590 вон тут говорят, что в продакшен app ни одного React.memo вообще нет, и все ок
Viktor
а вот вам ответ от Дена
https://twitter.com/dan_abramov/status/1083897065263034368
Viktor
честно говоря, там довольно слабые доводы, как мне показалось
раз мемоизации по умолчанию нет в internal api, то она и не нужна особо прямо везде
Lzhedmitry
всем привет, кто может подсказать подводные камни этого кода?
componentDidMount() {
this.setState({
...this.state,
});
}
Aleksandr
Как минимум он бессмысленный?)
Aleksandr
Пардоньте если не прав
Dmytro
Прав
Lzhedmitry
ну а может например зацикливания быть? при разных ситуациях, например state поменялся и опять вызывается componentDidMount() и так войти в бесконечный цикл?
Aleksandr
Этот метод срабатывает только один раз
Lzhedmitry
при mouting
Lzhedmitry
а если например юзать componentWillMount()?
Aleksandr
Вот если в componentDidUpdate то там может что-то ужасное произойти)
Lzhedmitry
это понятно, лучше бы вообще на хуки перейти, но есть проекты, в которых есть такой код) и там еще в консоль реакт не спамит про lifecycle deprecated
Юра
Это какая-то фича в новой версии Реакта?
Ruslan
Dmitry
Dmitry
Oleg
Кто нибудь покидайте сюда открытые git проекты сделанные на современном реакте
Lzhedmitry
Oleg
Lzhedmitry
Там так можно?
Ну прям фильтра такого нет, но можно в строке поиска "react": "версия"
Oleg
Roman
Всем привет, есть вопрос от новичка) Пробую применить css modules к stateless component, но ничего не изменяется. Где почитать, как это делается?
Oleg
Roman
SearchBar.js - компонент, App.css - стили. В файле App.js делаю так:
<div>
<SearchBar id={'id'} />
</div>
Oleg
Roman
название так решает?
Danila
Danila
import style from './styles.css';
<div class={styles.className}></div>
Oleg
Danila
Как нет
Да вроде и не надо было никогда
Kirill
Что можете в плане изучения HTML+CSS, если всю жизнь на WYSIWYG?
HTML Academy не помог разобраться в другой парадигме 🙁
Oleg
Да вроде и не надо было никогда
У меня только с module приставкой работает. Раньше надо было модули вручную включать в вебпаке. А сейчас там настроено так что он сам понимает если есть приставка module значит это модуль
Roman