Zzaaf
а зачем так пишут изначально?
Dima
просто берёшь и игноришь? реал?))
Поверь, если ты не будешь знать какой-то из этих пунктов, шанс успеха собеседования не упадет до 0. Он станет меньше, но всгеда найдется тот кто знает меньше тебя.
Dima
И есть куча факторов когда урезан бюджет, но рассчитывают на лучшее. Слишком сложное тестовое - мало кто берется.
Dima
И много таких пунктов, которые увеличивают твои шансы на собесе.
Dima
Всегда есть те кто позади вас. Поэтому нужно просто пробовать, независимо что там пишет в вакансии. Ну или если там 10 лет опыта, то тогда - да, подаваться не стоит.
Zzaaf
Просто в любой другой профессии такие требованя должны асоциироваться с опытом. А сейчас пишут огромный стек, и ты думаешь "ну нахер", хотя сейчас я понимаю что это ошибка, ибо такая специфика.
Dima
Это я говорю про джунов которые боятся пробовать, а если ты html кодер и подаешься на реакт джуна, при этом кроме create-react-app не шаришь ничего, то это другой кейс
Dima
Ну ты красавчик, это нужно иметь крутые софт скиллы и английский, чтобы html to react)
Dima
я так нашёл работу :)
Это как на той картинке, где есть лестница, на первой ступеньке html, на десятой реакт
Zzaaf
у меня тоже софт скилл выше хардов, и это ощутимо в работе
Firstname
Извините, если я детский вопрос задаю, но щас башка реально не варит. Да и дедлайн завтра. У меня есть 2 массива следуюшего вида let users = [ { name: 'aaa', id: 1 }, {//подобен предыдущему} //здесь 1000 объектов ]; let changed = [//пустой массив]; Мне нужно по id человека добавить его объект во второй массив. У меня есть для этого два способа //Первый способ for (let user of users) { if (user.id === 1) { changed.push(user) } } //Второй способ let u = users.filter(user => user.id === 1); changed.push(u[0]); Какой из этих способов быстрее? И знаете ли вы более лаконичный способ?
Zzaaf
но часто посещают мысли что меня нахрен уволят, я хз чуто такое
Igor
но часто посещают мысли что меня нахрен уволят, я хз чуто такое
синдром самозванца. привыкай к нему, он всегда будет)
Zzaaf
синдром самозванца. привыкай к нему, он всегда будет)
про этот синдром я тоже узнал и он тоже тесно связан с IT
Firstname
users.find(user => user.id === 1)
Тооочно! Вот ты мужик
Ildar
Привет! Эксперт по перформансу найдись Сейчас Mount time 18ms, мне нужно выжать максимум. Что выпилить, что бы стало гарантированно быстрее? Испльзуем jss, material-ui https://take.ms/NFOEl const styles = theme => ({ button: { textTransform: 'none', minWidth: 0, minHeight: 0, paddingTop: 0, paddingLeft: (theme.spacing.unit / 2) + (theme.spacing.unit / 4), paddingRight: (theme.spacing.unit / 2) + (theme.spacing.unit / 4), paddingBottom: 0, fontWeight: 500, color: gray[500], height: 24, fontSize: 12, pointerEvents: 'auto !important' }, icon: { color: grey[500], fontSize: '15px' }, text: { maxWidth: 100, whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', fontSize: '0.75rem', fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', fontWeight: 400, lineHeight: 1.66, letterSpacing: '0.03333em' } }); // eslint-disable-next-line class Size extends Component { static propTypes = { isCompact: PropTypes.bool, isDisabled: PropTypes.bool, cardId: PropTypes.number.isRequired, classes: PropTypes.object.isRequired, text: PropTypes.string.isRequired, isPopoverOpen: PropTypes.bool.isRequired, onPopoverClose: PropTypes.func.isRequired, onPopoverOpen: PropTypes.func.isRequired, anchorEl: PropTypes.any, className: PropTypes.string, iconClassName: PropTypes.string }; static defaultProps = { anchorEl: null, isDisabled: false, isCompact: false, className: '', iconClassName: '', classes: {} }; handleSave = (sizeText) => { const { cardId, onPopoverClose } = this.props; onPopoverClose(); store.dispatch(saveCard(cardId, { size_text: sizeText })) .catch((error) => { showRequestError(error); captureException(error); }); } render () { const { classes, className, text, isCompact, isPopoverOpen, anchorEl, onPopoverClose, onPopoverOpen, isDisabled, iconClassName } = this.props; return ( <Fragment> <Button onClick={isDisabled ? _.noop : onPopoverOpen} className={cn(classes.button, className)} > <FlashOnIcon fontSize="small" className={cn(classes.icon, iconClassName)} /> <If condition={!isCompact}> <div className={classes.text}>{text}</div> </If> </Button> <If condition={!isDisabled && isPopoverOpen}> <CardEstimatePopover anchorEl={anchorEl} isPopoverOpen={isPopoverOpen} value={text} onPopoverClose={onPopoverClose} onSave={this.handleSave} /> </If> </Fragment> ); } } export default compose( React.memo, withStyles(styles), withPopoverToggler )(Size);
Тимофей 🛴
Привет! Эксперт по перформансу найдись Сейчас Mount time 18ms, мне нужно выжать максимум. Что выпилить, что бы стало гарантированно быстрее? Испльзуем jss, material-ui https://take.ms/NFOEl const styles = theme => ({ button: { textTransform: 'none', minWidth: 0, minHeight: 0, paddingTop: 0, paddingLeft: (theme.spacing.unit / 2) + (theme.spacing.unit / 4), paddingRight: (theme.spacing.unit / 2) + (theme.spacing.unit / 4), paddingBottom: 0, fontWeight: 500, color: gray[500], height: 24, fontSize: 12, pointerEvents: 'auto !important' }, icon: { color: grey[500], fontSize: '15px' }, text: { maxWidth: 100, whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', fontSize: '0.75rem', fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', fontWeight: 400, lineHeight: 1.66, letterSpacing: '0.03333em' } }); // eslint-disable-next-line class Size extends Component { static propTypes = { isCompact: PropTypes.bool, isDisabled: PropTypes.bool, cardId: PropTypes.number.isRequired, classes: PropTypes.object.isRequired, text: PropTypes.string.isRequired, isPopoverOpen: PropTypes.bool.isRequired, onPopoverClose: PropTypes.func.isRequired, onPopoverOpen: PropTypes.func.isRequired, anchorEl: PropTypes.any, className: PropTypes.string, iconClassName: PropTypes.string }; static defaultProps = { anchorEl: null, isDisabled: false, isCompact: false, className: '', iconClassName: '', classes: {} }; handleSave = (sizeText) => { const { cardId, onPopoverClose } = this.props; onPopoverClose(); store.dispatch(saveCard(cardId, { size_text: sizeText })) .catch((error) => { showRequestError(error); captureException(error); }); } render () { const { classes, className, text, isCompact, isPopoverOpen, anchorEl, onPopoverClose, onPopoverOpen, isDisabled, iconClassName } = this.props; return ( <Fragment> <Button onClick={isDisabled ? _.noop : onPopoverOpen} className={cn(classes.button, className)} > <FlashOnIcon fontSize="small" className={cn(classes.icon, iconClassName)} /> <If condition={!isCompact}> <div className={classes.text}>{text}</div> </If> </Button> <If condition={!isDisabled && isPopoverOpen}> <CardEstimatePopover anchorEl={anchorEl} isPopoverOpen={isPopoverOpen} value={text} onPopoverClose={onPopoverClose} onSave={this.handleSave} /> </If> </Fragment> ); } } export default compose( React.memo, withStyles(styles), withPopoverToggler )(Size);
18ms это наверное в dev?
Ildar
да
Dmitriy
Привет! Эксперт по перформансу найдись Сейчас Mount time 18ms, мне нужно выжать максимум. Что выпилить, что бы стало гарантированно быстрее? Испльзуем jss, material-ui https://take.ms/NFOEl const styles = theme => ({ button: { textTransform: 'none', minWidth: 0, minHeight: 0, paddingTop: 0, paddingLeft: (theme.spacing.unit / 2) + (theme.spacing.unit / 4), paddingRight: (theme.spacing.unit / 2) + (theme.spacing.unit / 4), paddingBottom: 0, fontWeight: 500, color: gray[500], height: 24, fontSize: 12, pointerEvents: 'auto !important' }, icon: { color: grey[500], fontSize: '15px' }, text: { maxWidth: 100, whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', fontSize: '0.75rem', fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', fontWeight: 400, lineHeight: 1.66, letterSpacing: '0.03333em' } }); // eslint-disable-next-line class Size extends Component { static propTypes = { isCompact: PropTypes.bool, isDisabled: PropTypes.bool, cardId: PropTypes.number.isRequired, classes: PropTypes.object.isRequired, text: PropTypes.string.isRequired, isPopoverOpen: PropTypes.bool.isRequired, onPopoverClose: PropTypes.func.isRequired, onPopoverOpen: PropTypes.func.isRequired, anchorEl: PropTypes.any, className: PropTypes.string, iconClassName: PropTypes.string }; static defaultProps = { anchorEl: null, isDisabled: false, isCompact: false, className: '', iconClassName: '', classes: {} }; handleSave = (sizeText) => { const { cardId, onPopoverClose } = this.props; onPopoverClose(); store.dispatch(saveCard(cardId, { size_text: sizeText })) .catch((error) => { showRequestError(error); captureException(error); }); } render () { const { classes, className, text, isCompact, isPopoverOpen, anchorEl, onPopoverClose, onPopoverOpen, isDisabled, iconClassName } = this.props; return ( <Fragment> <Button onClick={isDisabled ? _.noop : onPopoverOpen} className={cn(classes.button, className)} > <FlashOnIcon fontSize="small" className={cn(classes.icon, iconClassName)} /> <If condition={!isCompact}> <div className={classes.text}>{text}</div> </If> </Button> <If condition={!isDisabled && isPopoverOpen}> <CardEstimatePopover anchorEl={anchorEl} isPopoverOpen={isPopoverOpen} value={text} onPopoverClose={onPopoverClose} onSave={this.handleSave} /> </If> </Fragment> ); } } export default compose( React.memo, withStyles(styles), withPopoverToggler )(Size);
не юзай матириал, не юзай рантайм стили
Ildar
не юзай матириал, не юзай рантайм стили
мне бы как-то замерить, сколько в цифрах мне даст отказ от рантайм стилей
Тимофей 🛴
да
Ну в проде быстрее будет. Я могу не про перформанс сказать, не пиши стили все в куче, не юзай If компонент, передавай экшены вторым аргументом в connect
Dmitriy
> не юзай If компонент почему?
тут вопрос сематники скорее всего
Тимофей 🛴
> не юзай If компонент почему?
А зачем он, у тебя же не строковый темплейт
🤴👷‍♂️🦸‍♂️🧚‍♀️
Привет, есть хок, который ловит ошибку. У меня в запросе падает 500 ошибка, но почему-то в итоге у меня белый экран, а не страница для 500. Как из запроса ошибку в компонент закинуть?
🤴👷‍♂️🦸‍♂️🧚‍♀️
Gdsfe ловит ошибки только в рендере
как с эффектора прокинуть в рендер (либо из fetch)?
Sergey
Привет, не подскажите что можно использовать чтобы сделать динамическую таблицу времени с датапикером на реакте. Хочу сделать 'beauty-dashboard-calendar'. Что можете посоветовать?
Ivan
просто берёшь и игноришь? реал?))
Да, так и есть. Пишут полный стэк, потому что так проще отсеить стажёров
Тимофей 🛴
как с эффектора прокинуть в рендер (либо из fetch)?
Если чистый fetch то смотреть response.ok и делать throw и ловить в catch, если effect из эффектора то fail
Sergey
реакт, апиху дома и css
Это понятно, я имею в виду как такую же таблицу в датами в динамике сделать
Sergey
На уровне компонентов (модальное окно, статика) уже сделал, а как сделать dashboard таблицу с записью по времени ума не приложу..
Тимофей 🛴
в howtocards можно подсмотреть это?
Я давно туда не смотрел, ну там наверное есть обработка ошибок
🤴👷‍♂️🦸‍♂️🧚‍♀️
Я давно туда не смотрел, ну там наверное есть обработка ошибок
Ну короче у меня так результата нет, надо через эффектор кажись
🤴👷‍♂️🦸‍♂️🧚‍♀️
Где then?
потерял
🤴👷‍♂️🦸‍♂️🧚‍♀️
Я давно туда не смотрел, ну там наверное есть обработка ошибок
ну такого плана получилось, думаю, что можно лучше
Nikita
если у меня есть древовидная структура которую нужно пройти в jsx как это лучше делать?
Nikita
делать рекурсией метод рендер это нормально?
Андрей
@webpack_ru
Павел
Парни приветствую, подкинте ссылку на репозиторий где компоненты на хуках тестируются, что то не нашел норм примеров и пока показалось что сложнее тестировать
⇺Goga⇻
ребят, а var уже лучше вообще не пользоваться ?
⇺Goga⇻
просто, есть же всетаки моменты, когда им удобнее пользоваться
⇺Goga⇻
например, когда в условиях появляется переменная и надо что бы ее было видно вне ее области видимости только
⇺Goga⇻
хотя ладно, с let, const просто на одну строчку кода больше и читаемость лучше
Ivan
ребят, а var уже лучше вообще не пользоваться ?
Чтобы объявить переменную, которая меняется в других блоках - почему бы и нет
Артем
а чем let не устраивает?
voix
let тоже лишняя. Достаточно const. =)
Артем
let тоже лишняя. Достаточно const. =)
тут человеку надо менять значение переменной =) хотя, можно же ведь через конст объявить объект и менять его свойства как угодно и где угодно в области видимости
Артем
пиши в начале const hlam = {}; и потом где угодно ниже пользуй hlam.t = ....; =))) тоже вариантик ниче так
voix
Мутации редко когда оправданы. Может быть в каком-то дебаунсе или подобных случаях, но в остальных случаях это только добавляет проблем. Особенно если это var и ищи по коду где она мутируется.
Farik
Ребят у меня есть файл config.js можно его как то 1 раз подключить и во всем проекте юзать? проект собран на вебпаке
Farik
Ну ок, спасибо за ответ)
George
Всем привет! Подскажите, что лучше использовать reselect или useSelector?
Артем
не, ну есть еще стор, конечно не самый лучший вариант использовать его под такие дела, но иногда это оправданно
Sergey
Реселект для мемоизации вычислений обычно
Sergey
useSelector для извлечения данных из стора
Daniil
useSelector для извлечения данных из стора
ну если докинуть из редакса shallowEqual, то вроде цель они одну и ту же выполняют с реселектом
Anonymous
Это ттак, что useDispatch лучше не использовать и отправлять данные в store обычным образом из action creator?