Phil
ему ж все респектуют
enshck
enshck
Phil
и что за новые?
enshck
Этих двух не было вроде
Phil
ооо щас почитаю доки
enshck
getDerived
enshck
willUpdate
enshck
Устарел
enshck
WillMount
Китикет
Для чего вообще нужен cDM обычно? Например для диспатча экшна для загрузки данных, а он в конечном счете изменяет состояние стора, что приводит к ререндеру компонента
enshck
Их вообще в доках не вижу
Китикет
А если мы стейт менеджер не юзаем, то весь этот код с запросом и установкой данных в стейт будет аналогом thunk экшна из редакса
Bogdan
А ты в курсе, что есть более сложные селекторы, чем state => state.something?
там, где тяжелые расчеты, засовывать реселект?
Китикет
Так что это именно то что нужно делать в cDM
enshck
Буду короч читать доки
Китикет
там, где тяжелые расчеты, засовывать реселект?
const third = createSelector( state => state.first, state => state.second, (first, second) => first + second )
Китикет
Как ты это сделаешь без реселекта через useSelector?
Bogdan
да просто селектор обычный
Bogdan
просто он не замемоизирует
Bogdan
Шо?
обычную ф-ю, примит стейт первый и второй, вернет их сумму
Китикет
Вот так же как в примере
Bogdan
Как это в useSelector написать?
вот так же не выйдет
Китикет
Если селектор составной, то не получится использовать мемоизацию у зависимостей
Сергей
пацыки, чет не могу найти реализацю pureComponent в гите у facebook. Никто не сможет подкинуть ссылочку где это?
Китикет
так я и написал выше, выйдет без мемоизации только
Ну конкретно тот пример который я написал будет работать так же в плане мемоизации
Китикет
Потому что там нет других селекторов в зависимостях, эти функции работают без мемоизации, мемоизация есть только у селектора third
Китикет
Так что работать будет аналогично
Китикет
Проблема будет тогда, когда в зависимостях есть другой сложный селектор с мемоизацией
Bogdan
Ну конкретно тот пример который я написал будет работать так же в плане мемоизации
ну, а если shallowEqual юзать, то и первых два выйдет мемоизироваться будут?
🤴👷‍♂️🦸‍♂️🧚‍♀️
пацыки, чет не могу найти реализацю pureComponent в гите у facebook. Никто не сможет подкинуть ссылочку где это?
Такая же как и у компонента, наследуеь конструктор и прототип от функции, которая наследует прототип компонента
Сергей
Scu?
да
Сергей
Scu?
shouldComponentUpdate
🤴👷‍♂️🦸‍♂️🧚‍♀️
shouldComponentUpdate
Ну посмотри в ску или в реализации компонента
Китикет
ну, а если shallowEqual юзать, то и первых два выйдет мемоизироваться будут?
const first = state => state.first const second = state => state.second const third = createSelector( first, second, (first, second) => first + second ) const fourth = state => state.fourth const fifth = createSelector( third, fourth, (third, fourth) => third + fourth ) useSelector(fifth)
Китикет
С реселектом у third есть мемоизация, без реселекта не будет
Китикет
Кайф писать это с телефона)
Китикет
Короче просто реселект юзай и все
Китикет
Потому что селекторы бывают не просто state => state.something
Китикет
И к тому же они должны быть реюзабельные
Bogdan
а вот так перерендера не будет у каждого елемента стейта?
Alexander
Но не рекомендую)
Object.assign(Component1, {Component2}) рекомендуешь? :)
Alexander
Ух е мое
Что не так?
Китикет
Что не так?
То что Component1 - компонент
Alexander
И?
Таймураз
Object.assign(Component1, {Component2}) рекомендуешь? :)
Тут же дети, ребят Вы шлепнулись что-ли
Таймураз
Ну а вообще нестить компоненты- пахнет говнецом
Китикет
И?
Grid Grid.Row Grid.Col - плохо
Phil
componentDidMount не устарел же?
Alexander
Почему такое плохо?
Китикет
Grid.Container Grid.Row Grid.Col - норм, потому что Grid - просто обьект
Alexander
componentDidMount не устарел же?
Устарели именно классы типо из-за хуков. Но это условно
Phil
так почему setState в нем допустим???
Китикет
Почему такое плохо?
Ну как минимум потому что Component1 - функция, а у прототипа функции и самой функции есть разные свойства и методы, типа apply и length
Китикет
Они у тебя будут выводиться как подсказки при наборе
Китикет
Они у тебя будут выводиться как подсказки при наборе
Помимо этого, задумайся о том, что ты в функцию пишешь свойство
Китикет
Это уже некрасиво само по себе)
Китикет
Исключения - defaultProps и propTypes
Yury
так почему setState в нем допустим???
Вызывается 1 раз, dom уже есть, почему бы и нет )
Alexander
Но функция есть объект
Phil
Вызывается 1 раз, dom уже есть, почему бы и нет )
тогда прийдется перерендерить дом с новым стэйтом
Китикет
Но функция есть объект
В массив тоже пишешь свойства, потому что он обьект?
Phil
Нет!
ладно...
Alexander
Хотя погодите-ка