Sm•ok
Кто шарит за react-multi-carousel ? Чет при перерендере карточек он ломается
Anton
Эмоушен? Можно чуть поподробнее?
https://emotion.sh/docs/styled Эта зараза относительно умная и пытается не создавать рантайм если это возможно. Из минусов — оно использует внутри стайлик и нельзя postcss на стили навесить. А стайлик на порядок хуже с grid для ie11 например.
Белка 🦊
https://emotion.sh/docs/styled Эта зараза относительно умная и пытается не создавать рантайм если это возможно. Из минусов — оно использует внутри стайлик и нельзя postcss на стили навесить. А стайлик на порядок хуже с grid для ie11 например.
Я правильно понимаю, что это styled-components, только в разы лучше? Я просто использую styled-components перманентно и хотел бы знать есть ли смысл переходить на emotion и что я получу|потеряю
Anton
переходить — не имеет никакого. в новом проекте — можна получишь меньший размер бандлов и лучший перформанс за счет исключения рантайма потеряешь — ничего.
Anton
грид для ие11 — просто не надо её postcss-ом делать. это самоограничивающая тебя жопа. а остальное сносно отрабатывает
я то руками делаю — так как postcss нет. но с postcss тоже самое вполне ок работает. так что я бы сказал что эмоушен не позволил мне секономить пол рабочего дня на этом
Sergey
Вообще, тоже пользуюсь Emotion, но с тех пор, как она давала скорость в разы выше SC. Сейчас разница практически незаметна, в деталях Emotion приятнее.
Белка 🦊
Eldar
Ребят что расскажите про react 17, что нового по асинхронному рендерингу компонентов, что это за штука рендеринг компонентов по временой шкале. есть инфа что это и главное как это будет работать? за любую инфу буду рад
Artem
https://immutable-js.github.io/immutable-js/docs/#/Map/concat
проблема была все таки в саге - takeEvery вместо takeLatest... ;)
Таймураз
проблема была все таки в саге - takeEvery вместо takeLatest... ;)
В любом случае ты неправильно результат объединял
Artem
В любом случае ты неправильно результат объединял
ну... я его объеденением еще не занимался... не мог на начальном этапе понять, почему в Network несколько респонсов, а в экшене консолишь и только последний. ... Там и у саги под капотом есть так называемый debounce для оптимизации...
Oleg
помогите справиться с перформанс проблемой, пожалуйста. как по такому стектрейсу понять, где у меня проблема?
Dmitriy
Dmitriy
@popuguy как роутинг решил?
Dmitriy
как это загуглить? react profiler?
По вкладками своими дальше просто в тулзах глянь)
Oleg
а, стоп...
Oleg
По вкладками своими дальше просто в тулзах глянь)
а, на эти оранжевые "коммиты"?
Andrey
помогите справиться с перформанс проблемой, пожалуйста. как по такому стектрейсу понять, где у меня проблема?
а в чем просадка то? памяти много жрет? там листнеры копятся непрерывно, мб не чистишь ресурсы где нибудь
Andrey
извиняюсь, а куда смотреть?
если по цпу лагать начинает, то в Ranked посмотри, чьи апдейты дольше всего проходят, оптимизируй
artalar
извиняюсь, а куда смотреть?
Очень много маленьких операций в эдиторе, очевидно
Andrey
Очень много маленьких операций в эдиторе, очевидно
так эдитор серенький, значит он же не ререндерился даже, нет?)
Andrey
Да но чарт им забит?
чем длиннее, тем больше компонентов он содержит, или я не так интерпретирую новый профайлер?)
artalar
хмм
Andrey
проще в ранкеде посмотреть, где дольше всего апдейты занимали и посмотреть, почему
Andrey
Ты уточняй что это вкладка профайлера)
ну на скрине видно же, Ranked) ладно ЕТО ВКЛАДКА ПРОФАЙЛЕРА
Oleg
проще в ранкеде посмотреть, где дольше всего апдейты занимали и посмотреть, почему
ну, вроде с табой проблема. начал с переписывания на функциональный комп.
Andrey
ну, вроде с табой проблема. начал с переписывания на функциональный комп.
ну типографи тоже на самом деле чет много апдейтится анимации шоль делаешь но в целом да - 2 цели для оптимизации
artalar
ну, вроде с табой проблема. начал с переписывания на функциональный комп.
Больше всего просадки там где больше всего разницы меджу ступенькой и ее детьми. У вас это: Typography и MyButton
artalar
ну, вроде с табой проблема. начал с переписывания на функциональный комп.
Покажите MyButton, мне дико интересно что может работать полторы ms в кнопке
artalar
Это ж, типа, как заспредить несколько многотысячных массивов…
Roman
чуток странный вопрос: как можно оставить проптайпы в прод билде? у меня тесты гоняются с прод сборкой, хочу чтоб сыпались ворнинги от проптайпов
Roman
ясно
Roman
значит завендорю отдельный билд и буду подключать снаружи в тестах. костыль конечно, но для тестов ок
Roman
Нормально - никак.
If you DO want to use validation in production, you can choose to use the development version by importing/requiring prop-types/prop-types instead of prop-types
Oleg
ну типографи тоже на самом деле чет много апдейтится анимации шоль делаешь но в целом да - 2 цели для оптимизации
ну, типографи - просто надстройка над материалом, мне кажется, надо копать в другом месте.
Andrey
ну, типографи - просто надстройка над материалом, мне кажется, надо копать в другом месте.
да, и то, почему ее апдейты занимают почти треть времени - большой вопрос)
Ками
Да
Michail
Привет всем! Кто-ниб знает когда именно срабатывает onKeyPress, т.е если просто поставить его на компонет и на странице, потом нажать кнопку будет ли что-ниб,
Blue
Подскажите пожалуйста, мне нужно передать firebase в componentDidMount. Firebase инициализирую в отдельном классе. Затем в компонентах использую FirebaseContext.Consumer внутри render(). Соотвественно при обращении где-то вне render, обратиться не получается. Как быть?
Alexey
Ребята, это нормально, что я пробрасываю событие через Context React?
Alexey
import { AnswerClickedContext } from '../../../../containers/Quiz/Quiz'; const withContext = Component => props => ( <AnswerClickedContext.Consumer> {clickHandler => <Component onClickHandle={clickHandler} {...props}/>} </AnswerClickedContext.Consumer> ); const AnswerItem = ({ answer, onClickHandle }) => <li className={classes.AnswerItem} onClick={() => onClickHandle(answer.id)}> {answer.text} </li>; export default withContext(AnswerItem);
Michail
да
Дмитрий
Подскажите пожалуйста, мне нужно передать firebase в componentDidMount. Firebase инициализирую в отдельном классе. Затем в компонентах использую FirebaseContext.Consumer внутри render(). Соотвественно при обращении где-то вне render, обратиться не получается. Как быть?
Надо, значит, оборачивать сам компонент в FirebaseContext.Consumer. Например, при экспорте писать не export default MyComponent; А export default props => <FirebaseContext.Consumer> {firebaseContext => <MyComponent {...firebaseContext} {...props} />} </FirebaseContext.Consumer>
Blue
Или использовать хук useContext (и useEffect вместо componentDidMount)
Спасибо, не слышал про useEffect, почитаю про него, тоже попробую заюзать
Alexey
@michaeldaineka спасибо
Wizard
Привет. Пытаюсь настроить алиасы путей. Использую create-react-app, который убирает paths из tsconfig.json, а файл extends просто не подхватывает. Как эта штука настраивается?
Wizard
Попробуйте это https://github.com/risenforces/cra-alias
Для вебпака использую это: react-app-rewire-aliases Проблема не в сборке, мне выкидывают ошибку компиляции из-за того что перед запуском create-react-app чистит пути из настроек компилятора. Меня такое поведение очень удивило)
Wizard
Хотя надо попробовать, там же другие хуки срабатывают. Спасибо.
kübernarkomaan
привет, можно ли как-то объединить это в один эффект?
Dmitry
Нет
Dmitry
Явно разные условия. Нет ничего плохого в том что эффектом несколько А все те функции возвращают отписку?
Wizard
Попробуйте это https://github.com/risenforces/cra-alias
Спасибо, сработало) Теперь ещё такой вопрос: как использовать эту утилиту, если нужно добавить свой плагин в сборку? (например вместе с react-app-rewired) Может вот этой штукой пользоваться? https://github.com/risenforces/craco-alias#migrating-from-cra-alias
Wizard
Не в курсе
Эта штука тоже работает. Она требует дополнительный конфиг, зато более универсальная и позволяет подключать и другие различные плагины кроме алиасов.
Wizard
А зачем плагины в rewired для алиасов? Он же умеет это из коробки
Не увидел последнее сообщение. Я не знаю, но у меня почему-то не сработал этот rewired (смотри первое сообщение), а craco без проблем словил.
Oleg
Немного оффтоп. У кого MacBook 12? Его экрана и производительности вам хватает для разработки?
Mikhail
Немного оффтоп. У кого MacBook 12? Его экрана и производительности вам хватает для разработки?
Экрана точно нет, но можно второй подрубить и ок Производительности должно хватать
h1
продолжу оффтом. А чем обусловлена такая популярность маков во фронтенд девелопменте?
Wizard
Ты без плагина все делать можешь Там же тебе только нужен config overrides
Любопытства ради попробовал всё же ещё повозиться с rewire. Там в любом случае придётся прописывать одинаковые пути по 2 раза: в config-overrides.js и tsconfig.json, хотя было бы удобно сработать вот по такой схеме: https://github.com/viniciusmelquiades/react-app-rewire-alias#for-typescript-users Но такого модуля уже нет. Если есть аналоги, мне будет интересно узнать.