Вы видите копию треда, сохраненную 3 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://jsfiddle.net
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката: https://developer.mozilla.org
if(!value.length) return;
do()
Или так?
if(value.length) do()
Наверни теперь ангуляр, будешь тоже самое спрашивать про первых двух.
реквестирую код ревью
Ничего. Это нормальное первое впечатление от любого кода, который писал не ты.
>var urls = [];
>var thumbs = document.getElementsByClassName('post__image');
>for (let t of thumbs) urls.push(t.getElementsByTagName('a')[0].href);
Получил ссылки, но как скачать их все? Через a href выкачивает только часть почему-то, не стабильно. Через iframe не получилось, не разобрался.
Уже года два его использую просто всегда по дефолту вместо create-react-app, ощущения охуенные. Только пишу на styled-components вместо css modules.
А чем тебе экспресс + реакт не угодил? Те же роутеры к api за 5 минут на нем прописываются. И структура контроллеров легче считывается, чем все в папку pages пихать
Так в нексте суть в том, что клиентский роктинг сочетается с SSR, там это из коробки и оно переоптимизировано как только можно. Если самому такое делать с экспрессом, то можно с ума сойти. Не то чтобы супер сложно, но долго, муторно, запарно.
>Какие подводные?
В том, что один хуй придётся пердолить отдельный API сервер на экспрессе. Ну и XML как язык шаблонов вырвиглазен, это впрочем ко всему реакту относится.
>>14667
Никак из клиентского жса, тут только своё расширение для браузера писать и дёргать его файловую апишечку, или запускать нодовский сервер с папитиром.
Ну так расширение тебе нужно, чтобы иметь доступ к этой системе. Хочешь сказать, что браузер по малейшему пуку стороннего скрипта даёт доступ ко всей системе?
Shallow compare вроде делает, но это не точно. Короче, если функция создаётся заново, то юзЭффект сработает. Поэтому иногда функции, посещаемые в зависимости, оборачивают в юзКоллбэк
Не по маоейшему, а кае и все webapi с разрешения пользователя.
Так же как браузер теье дает дочиуп посылать увеломления, читать usb устройства, доступ к камере и микрофону, геолокации, точно так же и к файловой системе.
Никакого расширения для этого не надо.
>Не по маоейшему, а кае и все webapi с разрешения пользователя.
Ты упустил момент, что ему надо это дело автоматизированно сделать.
А почему никак?
Я, кстати, это и делаю в виде расширения, но пока не было в этом принципиальной разницы.
Попробовал сейчас хромовский downloads.download, не работает без background скрипта. Ебался час-два, не понял как завести это всё вместе.
Угу, на каждый запрос скрипта/скачивание картинки. Такая-то автоматизация уровня жс-треда.
Парни, а где вротэндеру искать подработку на вечер/выходные?
Да если бы. Спиваюсь от нолайферства.
Нет овертаймов на работе, просто пиздец.
>if (value.length && value.length > 0) do();
Хуйня, вторая проверка вообще никакого смысла не имеет + вложенность лишняя будет.
>>14656
>if (value.length && typeof value === 'number' && value.length > 0) do()
Тебе уже ответили, ты просто даун
>>14661
>if (value.length) { do() }
Хуйня, аналогичная первому, вложенность охуевшая будет, если в таком говностайле кодить.
А что Титов?
Потому что не везде нужен ssr и спрятанный конфиг вебпака с уебищными картами в деве и другими косяками о которых ты не узнаешь пока на них не наткнёшься.
Хотя если пилишь туду и лендинги, то заебись будет, да.
Оптимизатор твой if () всё равно урежет до &&, потому что так короче. Не трать энергию попусту, пиши сразу &&
Какая нахуй вложенность, ебаклак?
Проверки по типу `!item` исключительно зависят от стайла-гайда на проекте и часто в них идёт блок обработки ошибок.
`if (item) { do() }` используются для условного исполнения функции, соответственно обработка ошибок будет идти в блоке `else {}`.
Тащемта он прав - JSX - это XML-подобный язык разметки.
Значение JSX знаешь, пидор?
Я бы даже дополнил, писать нужно так, чтоб на душе было приятно!
Зачем ты такой конформист? Писать надо как будто ты творец искусства. К тому же если кроме тебя никто не понимает гениальный код, то ты уже незаменимый сотрудник, а не какой-то там винтик в системе
Ну, как тебе сказать, вы из "маленькая клиентская библиотека для создания компонентов" в очередной раз переизобрели жирножаботехнологии столетней давности:
http://www.javaserverfaces.org/
Я уже видел такой комментарий на этой доске. Мне просто не понятен кейс использования этих компонент из коробки. Почему бы сразу в таком случае не заюзать SSR/SSG фреймворк, тот же Next или, на худой конец, допилить под cобственные нужды ReactDOMServer.renderToString. Разве что смысл может быть в плавной/частичной миграции на SSR и для точечных улучшений различных перформанс метрик.
куда перекатиться-то блять,какие альтернативы?
Казалось бы, причём здесь вскод, если тормозит встроенный тайпскрипт? Точнее не тормозит, а лениво загружается, всё как функцианальщики любят. Зато запускается почти моментально!
> вторая проверка вообще никакого смысла не имеет
Долбоеб, в оригинале при положительном length идёт выполнение кода, т. е. подразумевается, что он больше 0. Первая проверка удостоверяется что такое свойство есть, вторая то что это свойство имеет численное значение, которое больше нуля.
>2к21
>8гб оперативы
Еще наверно расширений накатил новомодных, да, дурачок? Знакомый как-то умудрятся в Visual Studio (без Code, это две разные IDE) работать имея 8 гб на ноуте. Проблема явно не в IDE, а в том что ты засрал её.
>Первая проверка удостоверяется что такое свойство есть
Тогда ты её неправильно написал, лол. По феншую это делается через 'undefined' !== (typeof value.length)
>ряяя я нивинават ета фсё кампухтер ну и што што у вас работаит у миня ниработает я нивинават!!
Ясно. Вызывай мастера по ремонту компьютера.
По феншую долбоебов? Будет у тебя length === null/NaN/"" и твоя проверка обосрётся
ты че дебил блядь? ты что несешь вообще? охуеть с какими даунами сижу в одном треде
Да, я дебил, ведь посмел забыть, что в JS вкатываются одни умственно отсталые дегенераты вроде тебя.
нахуя ты что-то пишешь мне говно?завали свой вонючий ебальник нахуй
в одном логика и иерархия своих компонентов, во втором хтмл/чужие компоненты и ивенты со всей хуйней. И из первого во второй не дриллить, а инжектить весь первый компонент как сервис.
Есть у такого подхода официальное название, может какие-нибудь тулзы полезные?
Кончай велосы изобретать, юзай MVVM со склейкой через тупые контейнеры. Либо MVI.
Просто фрейм супер непопулярный, судя по всему. А я пару месяцев уже наблюдаю ряд вакух, куда нужен экст. Думаю, кое-как может выучить что-нибудь, лишь бы что, и пробовать на собес идти. Если это действительно супер непопулярная тема, то и конкуренция должна быть маленькая. Ну уж точно меньше, чем на реактодебила.
Переходи на Angular, у него как раз такой подход.
Есть. Вообще предпочитай именованные экспорты над дефолтными.
А то читаю Кантора и как-то это оторвано от жизни. Хочется поскорее что-то свое запилить, а не изучать теорию месяцами. Теорию хочу подтянуть уже перед собесами, а сейчас собираюсь работать над проектами.
Прочитал кантора и мдн но поверхностно для общего понимания самой механики, дальше начал смотреть петриченко и буру но делал по своему не как они обьясняли а как сам мог, где то костылил где то пытался переписать все на функции, главное понять саму идею
А что не так?
На твоем пике нет массивов.
Вы оба долбоебы, потому что оба вызвали геттер, для проверки наличия свойства.
Ты тупой? Один раз для всего жомена запршивается.
Знаешь как я узнал, что дискорд написан на жс?)
Ахуел от того что он подгружается по 40 секунд когда все другие программы в основном занимают не более 10-15 секунд чтобы подгрузиться и пошел проверять на чем написан дискорд... Был вообще нихуя не удивлен
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
Если этой информации не хватит, то внизу есть ссылка на спецификацию, которая полностью ответит на вопрос "Что происходит"
Electron
на ссд быстро грузится
Поставить точку останова перед выполненением.
Ну да, в Канторе жс, мейн язык вротенда, в отрыве от html/css описывают, а потом на главах с домом хуярят лютые костыли, а ты сиди и тупи. Он максимум как справочник каких-нибудь мокрых писечек годится, в мдн всё лучше разложено и разжёванно. И на мдн как можно быстрее приучают работать со значениями в доме, а не хуярить сайд-эффекты через консолечку и промпт.
>Знаешь как я узнал, что дискорд написан на жс?)
Что тогда дебильные вопросы задаёшь, если знаешь на чём написан?
Я имею ввиду "ван соурс оф трус" и все такое. Как быть с классовым компонентом, где стейт это объект, мне понятно.
Так блять, подождите. Стейт можно сделать объектом и по ключам менять нужное значение. Это норм будет?
Вообще всяких слайдеров в интернете масса...
Сделать overflow hidden, float left и двигать в минус крайний левый див?
Хотя вообще это выглядит как какое-то припизданутое решение из нулевых, лучше просто в три фиксированных области разные данные выводить. Или подсмотри на произвольном чужом сайте.
Есть стейт как объект:
{hui: "", pizda: "", zaloopa: ""}
И есть setState. Я чета нихуя не соображу, как мне сделать, чтобы сетСтейт обновлял только одно значение, чтобы остальные не терлись.
да я разбирал пример и загнался на одном моменте, там в рекурсии последний шаг это перебор такой пустой коллекции получается
Проиграл. Наверно самый смешной и нелепый высер со стороны вкатуна, который я когда-либо видел в этом итт треде.
Аааа, блять, я забыл про эту хуйню. Просто пользовался ей 1 раз, когда прочитал и все.
>Можешь сразу пройти нахуй с таким обьявлением функций.
Что? Речь о реакте если что, ты о чем?
Нахуя? Мне кажется это ресурсозатратно. В любом случае, я уже вспомнил про ...prevState и все такое.
Говорит, что это не функция.
А можно как-то без лишней ебли вернутся к initial state? Например, мне надо, чтобы при отправке формы поля очищались. Только делать отдельную константу initialState и в handleSubmit засовывать setState(initialState)? Мне кажется можно как-то проще.
>Наебать меня решил?
Это хорошо, что ты перепроверил.
А по делу
> setState(initialState)
так точно.
То есть только так, да? Бля, ну лан.
А можешь еще пояснить вот что:
Вот есть пакет react-form. Там написано, что эта хуйня сделана специально под хуки, мемоизирована, чтобы при ререндерах не лагало и т.д. Насколько правильно, что я просто дефолтную форму сделал, вместо этой йоба-хуйни из пакета?
>>15454
Забей хуй на реактостейт, вешаешь на форму onSubmit, внутри этой формы присваиваешь переменной значение `event.target`, то бишь саму форму. У этой переменной есть свойство `elements`, что есть массив из полей, каждое из которых можно вызывать по айди или имени с помощью `elements[x]`. Выковыриваешь из каждого поля `value`, прогоняешь через рилейтед валидации и в зависимости от исхода или выплёвываешь массив ошибок, который скармливаешь в отдельный компонент со своим состоянием, или собираешь поля в объект и отправляешь его каким нужно способом для эндпоинта.
Это конечно подразумевая, что каштомные компоненты под вопросом хотя бы позаботились о хранении вводных значений в инпутах. Если там дичь в виде хранения строк в дивах, то придётся прокидывать колбэки, чтобы собирать их значения.
>>15567
Вот только спред не одно значение изменит, а полностью перепишет состояние с изменённым одним значением. То есть в любом случае ререндер всей формы будет.
> прогоняешь через рилейтед валидации и в зависимости от исхода или выплёвываешь массив ошибок
Кстати про валидации. Мне все "руками" валидировать? Или есть какой-то пакет или встроенные валидации? Вот мне надо почту валидировать, чтобы была именно почта, и чтобы от яндекса или гугла. То есть мне придется парсить строку на предмет наличия "@" и "yandex"\"google" или есть какой-то более короткий путь? А если ссылка? И я хочу чтобы обязательно была HTTPS. Опять строку парсить? А если мне надо, чтобы в строке не было слова peedoras?
>который скармливаешь в отдельный компонент со своим состоянием
А как мне ошибку пробросить В компонент? Как проп?
>позаботились о хранении вводных значений в инпутах
Ну у меня все хранится в стейте, с которым "синхронизируется" value инпута. Это норм или нет? Есть какой-то еще способ?
>То есть в любом случае ререндер всей формы будет.
Это понятно. Есть способ оптимизировать эту хуйню?
Мемесный зумерок, ты?
Тебе смешно, а у 90% и правда ФП === стрелочные функции
Есть обычные поле input type="number", там валидаторы которые должны проверить что максимальное значение поля 100 а минимальное - 0. Но по факту нихрена не проверяется, я ввожу любое рандомное число, пусть 1000 например и на бэк данные приходят именно в таком виде
Сабмичу данные я просто нажатием на кнопку, к которой привязал хендлер который собирает данные из формы и отправляет post-запрос на серв
Пиздец не в том, что ты расеяный или что-то кдуа-то забыл передать. А втом, что при возникновении ошибки, или вопроса почему не работает - ты блядь не анализируешь проблемы, варианты почему это могло случиться, и не перепроверяешь, все ли ты сделал для того, чтобы этого не случилось. Вместо того, чтобы ПОДУМАТЬ, ты идешь в тред на дваче блядь.
Ты не рассеяный. Ты тупой.
Проверяешь то как, дурик? Проверка это не ввод числа, ввод числа это уже тестирование, проверка это:
>formGroup.get('здесь имя формы').hasError('здесь название ошибки')
>.get('здесь имя формы').errors?.required
Считываешь эти значения и в зависимости от них делаешь действия. Либо сразу назначаешь функции-валидаторы, которые сами всё нужное сделают.
Бля, ты рили думаешь, что я так всегда делаю? У меня просто уже утро, я хуево соображаю и хочу быстрее доделать, чтобы завтра начать уже что-нибудь другое.
>Мне все "руками" валидировать?
По-хорошему набор правил должен быть создан на уровне модели, чтобы расхождений между валидацией сервером и клиентом не было. А с модели должен распространятся до клиента или буквально при запросе, или модулем при сборке.
Ну или придётся спрашивать у бэкендера.
>Или есть какой-то пакет или встроенные валидации?
Нету именно по причинам, которые ты назвал ниже - правила очень разнятся между проектами и формами, на каждые хотелки заебёшься полное решение искать.
Хотя есть конечно общие параметры, типа `minlength` и `maxlength`, которые должны быть у ВСЕХ строковых данных, чтобы всякие шутники не пихали Войну и Мир в одно поле, перегружая запрос.
>Вот мне надо почту валидировать, чтобы была именно почта, и чтобы от яндекса или гугла. То есть мне придется парсить строку на предмет наличия "@" и "yandex"\"google" или есть какой-то более короткий путь? А если ссылка? И я хочу чтобы обязательно была HTTPS. Опять строку парсить? А если мне надо, чтобы в строке не было слова peedoras?
Это всё решается регулярными выражениями, вон даже в спеке есть всё это дело:
https://www.w3.org/TR/html52/sec-forms.html#email-state-typeemail
>The following JavaScript- and Perl-compatible regular expression is an implementation of the above definition.
>/^[a-zA-Z0-9.!#$%&'+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$/
Так что тебе всего-лишь надо добавить к этому примеру свои условия.
>А как мне ошибку пробросить В компонент? Как проп?
Ошибка - это объект, так что прокидываешь так же, как любые другие объекты в другие компоненты.
>Ну у меня все хранится в стейте, с которым "синхронизируется" value инпута. Это норм или нет? Есть какой-то еще способ?
Не хранить состояние инпутов в форме. Тем более сам говоришь, что инпуты идут отдельными компонентами, так что у них есть свои состояния. Ссуть формы же состоит в том, чтобы при нажатии на кнопку "отправить", собрать значения полей, валидировать и отправить их на сервер, если валидация прошла успешно. Ни в какой из этих стадий значения полей не меняются, соответсвенно и общее состояние не нужно.
>Мне все "руками" валидировать?
По-хорошему набор правил должен быть создан на уровне модели, чтобы расхождений между валидацией сервером и клиентом не было. А с модели должен распространятся до клиента или буквально при запросе, или модулем при сборке.
Ну или придётся спрашивать у бэкендера.
>Или есть какой-то пакет или встроенные валидации?
Нету именно по причинам, которые ты назвал ниже - правила очень разнятся между проектами и формами, на каждые хотелки заебёшься полное решение искать.
Хотя есть конечно общие параметры, типа `minlength` и `maxlength`, которые должны быть у ВСЕХ строковых данных, чтобы всякие шутники не пихали Войну и Мир в одно поле, перегружая запрос.
>Вот мне надо почту валидировать, чтобы была именно почта, и чтобы от яндекса или гугла. То есть мне придется парсить строку на предмет наличия "@" и "yandex"\"google" или есть какой-то более короткий путь? А если ссылка? И я хочу чтобы обязательно была HTTPS. Опять строку парсить? А если мне надо, чтобы в строке не было слова peedoras?
Это всё решается регулярными выражениями, вон даже в спеке есть всё это дело:
https://www.w3.org/TR/html52/sec-forms.html#email-state-typeemail
>The following JavaScript- and Perl-compatible regular expression is an implementation of the above definition.
>/^[a-zA-Z0-9.!#$%&'+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$/
Так что тебе всего-лишь надо добавить к этому примеру свои условия.
>А как мне ошибку пробросить В компонент? Как проп?
Ошибка - это объект, так что прокидываешь так же, как любые другие объекты в другие компоненты.
>Ну у меня все хранится в стейте, с которым "синхронизируется" value инпута. Это норм или нет? Есть какой-то еще способ?
Не хранить состояние инпутов в форме. Тем более сам говоришь, что инпуты идут отдельными компонентами, так что у них есть свои состояния. Ссуть формы же состоит в том, чтобы при нажатии на кнопку "отправить", собрать значения полей, валидировать и отправить их на сервер, если валидация прошла успешно. Ни в какой из этих стадий значения полей не меняются, соответсвенно и общее состояние не нужно.
Нашел вот такое, но там пока всего 33 выпуска, нужно моар:
https://www.smashingmagazine.com/category/smashing-podcast
Выше аноны между собой начали сраться, не дав совета даже.
Я тебе дал совет - запустить свой сервер. Прочти какой-нибудь гайд по ноде, где расписывают как фетчить файлы и записывать их в файловую систему, и пердоль свой кравлер.
На клиентской стороне заебёшься дрочиться с корсами и доступом к файловой системе, что впрочем ты уже и испытал. А насчёт нескачиваемости отдельных файлов, смею предположить, что ты не прогонял хрефы через конструктор URL(), и соответственно некоторые ссылки были без домена. Хуй знает, что там макакен намудрил у себя в заднем конце.
А вообще ты хуйней страдаешь, есть апишечка https://2ch.hk/api/index.html, (М) по ней запрашиваешь джейсон и по нему шуршишь на предмет ссылок, без всякого пердолинга с домом.
Как? ПОДНИМАТЬ СЕРВЕР, чтобы скачивать пикчи? Что, блядь, за советы радикальные. Я-то в js залетный, но он без ебли работает, а ещё эту вебопарашу ставить зачем?
Код с пикчи качает пару файлов,как я понял, потому что хром не позволяет качаться сразу большому количеству файлов. Почему-то setTimeout не заработал и не факт, что он решил бы проблему.
Ты кто по масти будешь?
Загрузи картинки в память @ сделай zip @ скачай zip
Каждый раз когда надо дорабатывать функционал на жкьюри я упираюсь и стараюсь сделать на ванильном жс, но старшие разрабы все равно давят утверждая что "должен быть единый code style". В этой битве мне не победить?
Скажи, что нативный код быстрее и лучше типизирован.
Заодно скинь им http://youmightnotneedjquery.com и посрись на тему, какие куски можно переписывать на нативщину.
Потому что ты творишь дичь.
Возьми и перепиши ВЕСЬ легаси проект на ванилу (или на что-то еще) и потом уже пиши на том, на что перепишешь.
А если ты вносишь своей ахуительно правильное мнение, хотя на выходе делаешь неподдерживаемое говно где один кусок написан так, а другой иначе, то долбоеб тут ты.
>youmightnotneedjquery.com
Кек, а ниче что все примеры с жкьюри максимально короче и проще читаются? Или моднявым зумеркам главное назло маме уши отморозить?
Всратый и вырвиглазный. Я на нём на бекенде в ноде делал шаблонизацию емейлов. Есть альтернативы pug, mustache, handlebars, ещё что-то было, но я их всех не пробовал. В следующий раз письма на беке вообще через JSX буду делать, вот это охуенная тема
Потом придёт зумер и начнёт вставлять что-то на нативном JS, только уже какой-нибудь новой редакции, когда высеры из youmightnotneedjquery.com устареют. В итоге вы получите вонючий говнокод, который читается только при условии, что ты знаешь JQuery и JS разных редакций.
Как бы ты отнеся к тому, что в проекте, который у вас написан на реакте, кто-то вносил бы новый функционал отдельных кусков на ваниле? Понравилось бы потом поддерживать такое?
Реакт и ванилла в принципе построены на разных парадигмах компоненты, реактивность ебана рот. А жкьюри и ванилла работают в одной плоскости
>с жкьюри максимально короче
Ты забыл, что к этому "максимально короче" прилагается либа в 100кб минимум, которая ещё и не сплитится. И это не включая всякие плагины.
>проще читаются
Это сомнительно. Читается оно проще только пердедам, которые даже свою маму на жиквери писали. Для остальных же вызов абсолютно разных функций через `$()` вызовёт лёгкое недоумение в лучшем случае. И на доку определённого вызова ты хуй наткнёшься и написана там будет вода, когда какой-нибудь `querySelector()` и легче ищется и дока подробная по нему выскочит.
Необучаемый синьор порвался, ясно.
Где ты в реакте реактивность нашел, ребенок?
1920x1080, 0:18
Спасибо, но нет, тот же результат - качает почему-то выборочно малую часть.
>>15855
Предположу, что то же самое или нет?
Для теста вот тред, где много приложенных файлов https://2ch.hk/b/res/238145801.html (М)
Хромог соснул
Теперь сходи посмотри размер минифицированной production версии, и беги подтираться, пиздабол.
Жрёт, поэтому выбор за тем чтобы сжимать или не сжимать зависит от того что для тебя важнее. Именно поэтому я кинул скрин размера не сжатого, но минифицированного файла, так как сжатие может как улучшить, так и ухудшить производительность, а вот минификация влияет только на читаемость исходного кода файла.
>WebStrorm еще больше тормозит.
Если включишь only type-based completion, то вообще не будет тормозить.
>пайп из редьюсеров, мапов и фильтров занимает 1.2мс
>весь рут редьюсер с огромным количеством вычислений, создающихся массивов и объектов обсчитывается за 7мс
>GC занимает 5 мс
>реактоговно рендерит HTML 200 мс
>рряяяя фп медленное, рамда оверхед делает, ФП НИНУЖНО
Обожаю местных шизиков которые думают что в современных приложениях нужно считать байты, когда основная производительность и скорость зависит от UI. Это как шизики говорят что Руби/Питон медленные, когда 90% от запроса занимает доступ к базе данных что на Руби, что на Расте.
мимо JS-FP боярин
А допустимый фрейм 16мс для 60 фпс, и всэти 16мс ты должен уложить все вычисления и пендеринг, то есть фактически на каждый фреймкалк у тебя 8мс, вот и считай.
>реактоговно рендерит HTML 200 мс
Почему фп-шизы такие шизы? Тут реакт не при чём, проблема в самом DOM.
Ну во первых асинхронный редьюсер имеет свойство нагревается как андроид студио из-за чего cms будет быстрее реакта.
ДАЛБАЕБ. Если у чувака 4 гига оперативки то ПК к хуям сгорит. Учи физику . Наверное ты даже в универ не ходил, опездол тупопыоый
Ну нихуя себе, аж целых 80кб минимум, заместо 100! Ну всё, ты подебил, можешь дальше тащить своё жиквери говно в проекте, чтобы оно цвело и пахло.
Чел, ну какие нахуй из коробки вебпаки. Cli и там и там использует вебпак под копотом, можно просто подключить на проект вью и использовать его, можно поставить вебпак и настроить сборщик для вью.
>"должен быть единый code style"
Это аргумент. Еще аргумент то, что в жуйке многие функции оптимизированы с т.з. кроссбраузерности, поэтому если соберешься переписывать на ваниллу, прежде подумай о регрессионном тестировании.
>Тут реакт не при чём, проблема в самом DOM.
Ну, справедливости ради, реакт вполне может быть боттлнеком - смотри бенчи от krausest.
ага, что бы в ie6 работало. Проект то require.js собирает
> main-block-right-newsblock-column,
почитай про БЭМ
>в js переменные у меня букв по 20-30
Скорее да чем нет. Хотя если у тебя какой-то неебический сложный и большой проект с кучей сущностей и сложной доменной областью, то наверно такое возможно.
>ну и в js переменные у меня букв по 20-30, это считается говнокодом?
Нет, экономить буквы на имени переменных - дурной тон. Это разве что ок в именовании аргументов в лямбдах, да и то, лучше писать максимально вербозно, чтоб на ревью меньше было вопросов.
Хорошо похрюкал с сайта конечно. Если jquery такой плохой, то почему слева одни однострочники, а справа - огромные херовины на десятки строк?
Модные детишки 18 годков сказали что НИКРУТА. Значит никрута. Вот и все
> В этой битве мне не победить?
Вот это мне особенно нравится, "битве". Битве упрямого долбоеба против рационального аргумента об едином кодстайле. Типа ты даже не можешь доказать, почему надо писать на ванилле а не на жк, но битва должна быть энивей. Делай как умные дяди говорят.
Так они правильно давят, лол, кодстайл должен быть единым. Осилишь - перепиши все на ваниль. Но ты скорее всего не осилишь, так что не выёбывайся
>Хорошо похрюкал с сайта конечно.
Главное что ты сам признался, что свинья. Как и полагается любому защитнику жиквери.
>то почему слева одни однострочники
Так у говнокода всегда однострочники. Я тебе даже Америку открою - тебе не нужно ставить жиквери, чтобы их городить. Оборачиваешь код любого размера в функциональное обьявление и вызываешь его - вот тебе и однострочник. По сути в этом и есть весь жикверик.
Какой же ты конченый блядь. Переведу для имбецилов: не однострочник, одна функция. Которая не требует городить огород для элементарной операции типа посылки обоссаного реквеста.
>Переведу для имбецилов: не однострочник, одна функция.
У которой под капотом ехал иф через иф и простынёй погоняет.
До 25 лет часть коры мозга, отвечающей за рациональное мышление, не развита до конца, сынуль.
https://www.npr.org/templates/story/story.php?storyId=141164708#:~:text=Brain Maturity Extends Well Beyond Teen Years Under most laws,maturity until the age 25.
https://www.urmc.rochester.edu/encyclopedia/content.aspx?ContentTypeID=1&ContentID=3051
Поэтому малолетний долбоёб выше по треду ерепенится и хочет делать по-своему, не понимая что порой его хотелки никого не ебут, и что иметь code consistency гораздо важнее моды или старости/новости технологий, но т.к. pre-25-летний долбоёб мыслит эмоциями, а не разумом, то его поведение иррационально. Его сопротивление jQuery ничем не подкреплено, кроме "мне ванилла больше нравится", никаких аргументов.
Такие моменты заставляют задуматься, почему в айти нет возрастного ценза.
Скорее необучаемый дед, который до сих пор хуярит глобальные переменные, горит что его говнокод и прилагающаяся либа совсем устарели. От старческого маразма даже названия методов неспособен читать уже.
Ты напоминаешь дебилов в 93м, которые в белом доме сидели, свято веруя в швитой вечный коммунизм, когда по нему танки стреляли.
классические хуёвые аналогии от малолетнего долбоёба. разница между кокомунизмом и jQuery в том, что одно из них работает, а другое — нет
>разница между кокомунизмом и jQuery в том, что одно из них работает, а другое — нет
Ну так коммунизм (jQuery) тоже работал, пока капиталисты (зумерки) говно в жопу не залили!
Пока что приходит в голову сделать в объекте отдельное свойство, которое будет отвечать за номер в "порядке рендера". Сначала рендерить объект 0 (неважно на каком он месте в массиве), потом 1, потом 2 и т.д. Проблема в том, как мне вычислить этот номер исходя из фактического расположения элементов на экране. Как понять, что этот элемент - номер 1, рядом с ним номер 2, если между ними поставить перемещаемый элемент, то перемещаемый станет вторым, а все после него увеличат свой номер на 1. Сильно заебно будет, да?
Можно какие-нибудь подсказки, советы, может где-то есть интересная статья и т.д.?
П.С. Реакт бтв.
HTML:
<div id="popup">
<div v-if="i">
Name: {{ i.name }} <br>
Type: {{ i.type }}
</div>
</div>
JS:
// Объявление
let vm = Vue.createApp({data(){ return {i: null}; }}).mount('#popup');
// Использование
vm.i = {name: 'Tom', type: 'cat'};
И оно работает, но я не понимаю, как мне сделать условное появление окна, v-if же на рутовый компонент не действует. Можно, конечно, махнуть рукой на то, что на странице будет пустой div, но, бля, неужели "так и задумано"?
Можно как-то сделать появление/исчезновение дива #popup без лишнего джаваскрипта?
Для этого используют UI библиотеки типа Ant или Material
Магия ненужна
Beautiful DnD, Dragula
Спасибо.
Ну, это же вроде как тред по JS. Может стоит изучать как реализуются ООП и связанные с ним паттерны хотя бы с синтаксисом es6 в 2021 году? Ты не подумай, что я против тебя что-то имею. Просто самому тема интересна.
Может стоит понимать что ООП, ФП, РП, АОП, КОП, и прочее - это не про синтаксис, для начала?
Верно. Но нужно ведь понимать как реализуется ООП на необходимом тебе языке. Разве не так? Я имею ввиду какой смысл в теории без практики?
Типа есть папка components и внутри лежат какие-то большие компоненты с логикой.
А нужно еще наделать маленьких кнопок, иконо и прочей хуеты. Куда это можно положить и как назвать?
Если сделаю components -> buttons это уже хуёво? Как бы вы сделали? Да, у меня тут всселенские вопросы пиздец, полдня сижу выбирая имена для классов
Вот есть один объект, у него id и name.
Есть массив из объектов, который приходит с сервера, где только у одного объекта есть подходящий id. И из этого объекта нужно взять все данные и обработать их, как это можно сделать?
find(e => e.id === obj.id)
везде делают по разному.
например папки для разных кусков приложения типа AppAdmin, AppBase, AppCatalog
и отдельные папки типа components или elements, где есть общие для всех куски вроде кнопок
ооп это про языки типа джавы, с#
причем тут жс? в жс свои паттерны , хотя нода пытается косить под вышеукзанные языки, во фронте вообще своя атмосфера
А как ты понял, что пора начинать срать в унитаз, вместо горшка?
Всегда так было.
Любую аналогию считают ложной только долбоебы.
Аргумент.
Проиграл. Ты правда настолько тупой, что отправил тестовое с скопипизженным кодом?
А при чём здесь ФП и JS, долбоебина? ФП это Haskell.
Не знаю, я регулярно встречаю легаси-шизов, дрочащих на БЭМ.
Так аналогия действительно не аргумент, абсолютно логически не может быть аргументом.
Окей, я дурак и обосрался, был не прав. Скажу по-другому, что я имел в виду: если при аргументации кто-то использует аналогию, то слишком часто это ложная аналогия.
Настолько же частое, насколько неспособность внимающего распарсить приведеную аналогию, по причине скудности ума.
Ну так построй здесь и сейчас, раз нормально строится, кукаретик.
Не настолько же. Сейчас на любой пук приводят аналогии, не имеющие ничего общего с темой обсуждения. Чтобы парсить аналогии сверхразумом быть не нужно.
Парсить аналогии проще, чем их создавать. Со многими другими явлениями та же ситуация.
Двачую этого. На практике за сравнивание такого дерьма между собойнужно долго бить по рукам стандартом.
У пакетов есть метаданные с атрибуцией.
Я думаю в данном конкретном случае речь о том, что код банально ctrl+c > ctrl+v вообще без какого-то последующего форматирования, что как раз и выливается в дальнейшую кашу
щас бы делать нестрогое сравнение и недоумевать, почему ты сосешь жёппу
>как жи миня бесит метод сорт сукааа!
Кстати, как давно он уже стабильный? А если стабильный, то почему бесит?
Щито хотел от языка, изначально разрабатывавшегося для свистоперделок к HTML-документам? Гугли, что такое коэрсия типов и как она реализуется при применении операторов/функций, если тебе интересно откуда эти цыганские фокусы. А так, на бою на голом ЖС без компиляции никто не пишет и не выкатывает в прод уже. За нестрогое сравнение бьет палкой линтер (и оно в общем случае медленнее чем строгое, кстати).
Потому что линтер не майкрософт придумали.
Пользуй баш, который идёт вместе с гитфоршиндошс. Здесь npm ни причём, это стандартное поведение шиндошской строки. Оно кстати и в баш пролезает, но автоматом завершается.
Синдром утёнка.
Пикрил не работает что ли?
Алсо ссылки на все файлы можно получить из json-версии треда(просто замени .html на .json) вместе с другой инфой
Я в жс не шарю, но на пике вроде рабочий код
Тестовое это один из немногих способов проверить твоё умение писать код. Но ты настолько умственно отсталый, что даже копипащенный код не смог привести к приемлемому виду, сделав так чтобы он не отличался от твоего кода.
Это да, но с башем часто проблемы возникают в том же вс код, просто из-за того что в юникс и NT файловые пути по-разному выглядят. Я бы не сказал, что его юзать сильно удобнее.
И часто ты по путям за пределами проекта бегаешь?
Стили и шаблоны в одном файле ок. Бизнес-логику выносишь в отдельные модули (сервисы), потом дергаешь их из вьюх
Анончикия, есть где-нибудь инфа, как использовать БЭМ, а именно какие свойства применять для БЭМ элементов? В bem.info не нашел. Вот то есть я могу для блока использовать размер шрифта или padding? А если блок - это слайдер и у слайдера есть кнопки для стрелочек, мне все равно не желательно использовать position:relative; чтобы спозиционировать стрелки от слайдера? Вообще, правильно задавать цвет фона, размер шрифта в блоке и потом, если нужно переопределять свойства через модификаторы или блоку не задавать цвет фона, а сразу задавать цвет через модификатор?
Есть место, где показаны для каких элементов БЭМа какие свойства можно применять?
Я практиковаться хочу, а вообще не понятно как БЭМ использовать. Какие свойства css куда применять.
Бэм не про это. Правильно.
>Типа поставить условие, и если оно не соблюдается, то в id передается пустая строка
научись формулировать свои мысли для начала.
Короче говоря не важно почему в итоге я так планирую сделать, просто есть некий id у обычного html элемента. Допускается ли, что у id будет попросту пустое значение id=""?
>Допускается ли, что у id будет попросту пустое значение id=""?
Кем, куда, для чего?
>не важно почему в итоге я так планирую сделать
Ну и какого ты ответа тогда ждёь?
Разрешаю тебе использовать пустой id. Иди нахуй.
>>17727
Да не, вопрос был в том, может ли это создать какую-то потенциальную ошибку, о которой мне не скажут сразу в консольке. У меня просто есть один плагин, который добавляет стиль к элементу с определенным id. И в зависимости от этого условия я могу передать или не передать значение в этот id.
Вот потому и вопрос, допускается ли такой код вроде:
<div id=""> жопа </div>
>>17727
Чет я ору нахуй, после 12 часов кодинга я уже перестаю понимать о чем я сам пишу. Блядь обычный id у html тега сука, там их миллиард чтоли, тот АЙДИ который у ХТМЛ элемента АЙДИ. Вот этот АЙДИ. Если он будет пустым это ничего страшного или пизда, и id всегда должен что-то принимать в себя, если уж он вообще есть у хтмл тега.
Может ты плагину скажешь чтобы добавлял или не добавлял стиль в зависимости от условия?
Пустая строка - тоже значение. И если у тебя будет более одного такого айдишника, то выбираться селекторами будет только один. Нахуй ты вообще манипулируешь `id`?
HTML дал ему классы ну или на крайняк `data`, называй как хочешь, хоть по БЭМу-хуему, хоть по своей мамаше. Не хочу, говорит, классы, хочу жрать говно и ставить пустые строки в айдишники.
Плокен делает поиск элемента только по id, и суть в том, что этот айди действительно должен быть уникальным для его работы.
Ага и переменные за тебя назовёт, и напишет всё сам.
Не нужно использовать БЭМ, это deprecated технология, она давно пылится в мусорном ведре. Используй css modules, с ними можно именовать классы как тебе удобно.
Спасибо!
If
Пока требуют знаний БЭМа, шито поделать
>>17942
Т.е. нет, вопрос в том, что уникальное значение должно быть только если условие true, а если false, то я думал передать пустое значение. Есть ли какое-то значение, которое id воспримет примерно так же, как react воспринимает, если в качестве элемента для рендера ему передать null? Какое-то безопасное и понятное для него ничто?
Значение `id` - только строчное, так что передастся "null", что тоже не уникальное значение.
>>17947
>Т.е. нет, вопрос в том, что уникальное значение должно быть только если условие true, а если false, то я думал передать пустое значение.
Что за хуйню ты там говнокодишь? Ты вообще не должен менять уникальный идентификатор вручную. В лучшем случае только при создании элемента его присваиваешь, это единственный случай, когда будешь писать `element.id = x`.
Если тебе нужно не присваивать значение свойству, то просто не присваивай. Если же нужно удалить, то есть `removeAttribute()`.
я хуй знает как реюзнуть код так чтобы на максималку.
сделал вот так https://www.diffchecker.com/NmrErtQU редусер и куча барахла реюзается из общего файла https://pastebin.com/HnecQEgF но все равно кажется что я или пиздец изобрел какой-то странный велосипед или остановился на пол пути, хуй знает... неужели нет способа лучше реюзнуть код в таком случае? в ооп просто наследуй@переопределяй нужные методы/пропсы. а тут пиздец че городить пришлось, я в шоке
Если полиморфизм ты ищешь, то передавай функции в функции, или оборачивай функции в функции для добавления функциональности.
Погугли про state reducer, там тебе расскажут
Код не смотрел
:)
продолжаю клепать. я задался вопросом не из практических соображений,а чисто интересно на будущее
в итоге 3 файла, кода стало больше и дублированный код не уменьшился в объеме,а уменьшилась дублированная логика,какая-то ее часть стала общей как и нужно, но это залупа какая-то. композия сосет у наследования. даже если можно реализовать это как-то лучше чем я сделал,я ебал такую сложность -нахуя она нужна,какие профиты?
С момента появления хуков классовые компоненты писать нет смысла (кроме очевидных ErrorBoundary).
поясни в чем принципиальная разница:
-использование npm пакета для dnd
-копипейст куска кода со стаковерфлоу для какой-нибудь хуйни вроде парсинга или создания ключей объекта на основе элементов массива
нахуя вообще в реакте было делать классы, если реакт практики не подразумевают парадигмы ооп вроде наследования и полиморфизма
В мэйнтейнере
Без понятия, наследование кстати кое какое есть. Про полиморфизм хез.
>-использование npm пакета для dnd
Документация
>-копипейст куска кода со стаковерфлоу для какой-нибудь хуйни вроде парсинга или создания ключей объекта на основе элементов массива
Если копипаст заметен, значит ты даже не удосужился разобраться в этом коде, переименовать переменные и причесать стиль. Значит в качестве разработчика ты не пригоден.
Функциональные офк.
Документация с примерами у новых библиотек для React JS и React Native по большей части написана с применением функциональных компонентов, т.к. зачастую предоставляются удобные хуки. Сами разрабы фейсбука говорили в документации, что они видят реакт именно в функциональном виде и будут дальше его продвигать таким.
Про дефер знаю. Меня напрягает как он автоматом в head попадает? Обычно ожидал увидеть перед </body>
1. Учебник Кантора. Выглядит устрашающее, такое чувство, что на его изучение придется потратить не один месяц, но практики в нем мало, как я понимаю. Только описание языка и упражнения к этому описанию. Многие говорят, что лучше использовать этот сайт как справочник, а учиться по другим материалам.
2. Видосы на ютубе. Из плюсов: если не понял что-то, то всегда есть видео, где то же самое будет объяснено другими словами или из другой перспективы. Можно сразу приступить к практике - есть много видосов, где пилят какие-то проекты. В отличие от курсов на ютубе плюрализм (в отличие от юдеми): смотришь разных блогеров и учишься разному написанию кода.
Я склоняюсь ко второму варианту. Алсо посоветуйте нормальных каналов на ютубе. Из тех, которые я знаю - freeCodeCamp, The Coding Train, Web Dev Simplified, Шемсединов, IT-KAMASUTRA, Петриченко, Лаврик, Минин.
>придется потратить не один месяц
Не, ну а хули, за пару же недель можно язык выучить.
Сажи пидору
>Про дефер знаю.
>Обычно ожидал увидеть перед </body>
Нихуя ты не знаешь, дефер как раз для этого и сделан, чтобы скрипты в конец тела не писать.
Ну, я год назад вкатывался, но в бекенд на шарпе, уволили быстро, сейчас во фронтенд пытаюсь.
За сегодня повторил хтмл и ксс, чуть джса набросал, простенькую работу с ДОМ, ивент с кнопкой запилил. Дальше пойду по сайту с оп-поста.
За говнокод и некоторые проблемы были с пониманием веб апи, безопасностью кода, и некоторые интерфейсы не смог осознать.
Практику ты получишь на работке или при создании петпроекта. Любые задачки-хуячки - это не практика.
Спасибо.
Жесть. Обычно такое на уровне собеседования выявляют. Как же они тогда тебя на работу взяли? Спрашивали про паттерны?
Какие паттерны, это стажировка была. Да и когда джуном устраивался, максимум про синглтон спрашивали.
У меня есть один компонент вписанный в другой, выглядит так:
<Компонент1>
<Компонент2/>
</Компонент1>
Рендерится страница, и между компонент1 и компонент2 появляется DIV с overflow: hidden, который хуй пойми откуда берется и режет тень элемента из компонент 2.
И я не ебу совершенно как к нему доступ получить, он не является потомком компонента 1 в коде. У него нет никакого класса. Просто див, который обнуляет стили, при том что в глобальном стиле у меня его тоже нет.
Ну да, да я и на джсе чувствую как проще писать.
На шарпе еще ботов писал после увольнения по сути бот-парсер с нотификатором, но чтобы на работку вкатываться не хотел.
> появляется DIV с overflow: hidden, который хуй пойми откуда берется
Просто так он взяться не может. Ты же в курсе? Уверен что нет глобальных стилей? Посмотрел в браузере от какого css класса он наследует overflow?
Ну я об этом же писал, что не осилил базовые вещи.
Т.е. Если ты уберешь компонент1, то и дива не появится с оверфлоу, верно? Что будет, если ты отрендеришь только компонент1 (без компонент2)? Див появится?
Ну так это обычное дело или ты думаешь, что у тебя в html всё должно быть также как ты там в фреймворке понаписал?
Вообще пользоваться !important это оооочень плохая практика. Она делается только когда действительно нет выбора, либо нужно реализовать хот фикс. Я бы настоятельно не советовал
Удачи тебе со вторым компонентом. Расскажешь потом что причиной послужило. Мне будет интересно послушать.
Это уже устаревшая практика. Во времена фреймворков и библиотек без important не обойтись, иначе вот так вот и будешь ебаться с дивами появляющимися неоткуда.
Вот ты душнила ебать. Говно тоже перед смывом статик-кастом в трубу пихаешь?
мимо несколько лет много писал на крестах, перешёл на жс, доволен
>important
Абсолютно похуй. Мне про то, что это кококо плохая практика на моей памяти только всякие админы затирали. Фронты лепили, слегка поморшившись. Ну и блядь, тут именно что хотфикс!
>Алсо посоветуйте нормальных каналов на ютубе.
Зачем вообще что-то сомтреть на ютубах по 15 минут, когда это можно прочитать за минуту? Я уже не говорю о том, что прочитав какой-нибудь MDN можно быть уверенным (на 95%) в достоверности инфы в отличии от очередного инфоцыгана, который преподаёт "курс до мидла за один месяц"
>>18454
Править исходники npm пакетов это еще больший пиздец? Нашел в общем, next/image оборачивает всё что выдает в свой див как раз с обнулением стилей, пиздец додумались же. Могу там буквально пару строк подправить, но... у тех, кто скачает мой код, этой правки ведь не будет. Вот и хули делать?
Не знаю, я его до сих пор читаю и перечитываю время от времени, когда что-то забываю.
Но learn.javascript я, наверное, за месяц прочёл. Не помню.
>кастом
Ну т. е. инструментом полльзоваться не умеешь ты, а виноват при этом не ты, а сам инструмент? Ок.
>Править исходники npm пакетов
Это пиздец на пять порядков страшнее, вот этого реально никогда не делай если ты не владелец пакета, но ты не он. Поставь лучше important и не еби себе и людям мозг.
Каким инструментом лол? Я смывом пользуюсь.
лучше сделать не получается
Надо бы запилить модальное окно для ввода некой информации пользователем, раньше не парился и юзал встроенную функцию prompt, теперь захотелось красиво это оформить на ангуляре. Что посоветуете сделать? Отдельный компонент пилить чисто для модалки? Кто-нибудь такое делал?
Ну да, отдельный, а как иначе-то? Хотя лучше готовый найди.
:(
На хецнере глянь.
gullohosting
М-да, это с каких пор отсутствие типизации = меньше думать. Это скорее больше геморроя, когда такие как ты высрут какаху, а тебе потом ее искать нужно.
b = 4
console.log(b+x)
ебать нам че больше не нужно декларировать типы объектов? чзх сидел долбил тридерево смотрю какого хуя не выдает ошибку а оно он че ебать до чево прогресс длошел скоро собак без презика ебать можно будет...
цифровой унитаз, там 2 месяца бесплатно первых, только банк подтвердит наличие 10$
Бля, присвой ему класс и поменяй стили. Охуеть конечно реакто-макаки совсем поехали, в жопу в сырцы лезут чтобы блять css-правила изменять.
Нет же чел пчел, ты этим className на картинке изменишь класс как раз таки того элемента, который будет находится внутри безымянного дива. К нему добраться нельзя. Посмотри хотя бы исходник Image компонента. Он оборачивает все что ты в него передаешь перед экспортом
Тебе надо попросить фидбек у менеджера, тиммейтов, и вообще всех с кем работаешь.
Если это вызывает недоумение или лишние вопросы, то тебе надо сменить контору.
Если в фирме нормально работает перформанс ассесмент, то у тебя вопрос «насколько хорошо я работаю» (то есть, «соответствую своей роли») просто не будет появляться. Тебе сами все расскажут.
Лепи тогда обычный `</img>`, хули выёбываешься? Этот компонент специально пропердолен для верселя, так что править его - гиблое дело. Ну или можешь селектором этот див выцепить и поменять в нём стили.
Заодно создай тикет на гитхабе.
Я тебе открою страшную тайну, но при разработке тебе необязательно всё хранить в одном сасс файле:
https://sass-lang.com/documentation/at-rules/import#partials
Локальные вещи (всякие отступы и выравнивание) в scoped в самом компоненте. Глобальные (шрифты, цвета) - в отдельном CSS файле.
Хороший вопрос. Если вопрос касательно SVG-иконок, то я просто кидаю svg из фигмы своему PM, чтобы она их обработала, а потом я конвертирую их в шрифты. А если обычные картинки, то оптимизация в jpg - это пара секунд в фотошопе. Но я соквасен, бывает ебля с такими вещами. У меня тоже полушаражка
Не, пчел. Из React компонента можно обратится напрямую к DOM, даже к тем элементам, к которым напрямую доступ ты не получишь. Просто понадобится useRef с useEffect. Я накидал пример. Посмотри. Надеюсь тебе это поможет
https://codesandbox.io/s/cool-williams-n7ttm?fontsize=14&hidenavigation=1&theme=dark
>подготавливать иконки
Да. Я ебал самостоятельно в Фигме все переводить в заливки.
>оптимизировать картинки
Нет, ты как разработчик должен лучше знать в какой формат их экспортнуть и до какого размера подрезать.
Вкатун. Какими аргументами убедить кабана взять меня на удаленку? Я блять видел на хх, что мидлов из той же конторы, где мне перезвонили, приглашают на удаленку. надо было на миддла сразу собеситься хы
Вроде для этого плагины к VS Code нужно установить. Загугли про них.
Конкретного кабанчика вряд ли убедишь, но нарабатывай опыт, делай портфолио, могут взять на удаленку как раз из-за возможности платить тебе поменьше
Спасибо пчеличандрий, даже расписал всё. Про доступ к дому я знаю, но шатать дом ради одной css строки изначально еще не хотелось, пока сделал с important
Какие у Deno перспективы?
Ноде пiзда, надо только подождать, потерпеть и не бухтеть.
>Какие у Deno перспективы?
Хороший вопрос. Может быть его можно будет юзать для чего-то серьезного, типо банковских приложений. А вообще я не бэкендер
Вакансий сколько? Вот и ответ
Jwt нихуя не гуглится да?
> Можно ли сделать так, чтобы это API нельзя было юзать извне SPA приложения, а только на самом сайте?
Нельзя. Я просто напишу программу, которая симулирует авторизацию на твоём сайте и буду пользоваться твоим API так будто я пользуюсь им на сайте. Это если учесть, что API у тебя только для авторизованных пользователей доступно.
везде цены одинаковые
1 для работника сканирующего лоты своей готовой продукции
2 для проверяющего с возможностью указать кол-во брака в любом лоте
3 для мастера смены для указания минут простоя рабочих за день и интерфейс подтверждения простоя для менеджеров др. департаментов
4 таблица со списком всех лотов
5 аналитическая таблица с указанием эффективности рабочих по отдельности за выбранные дни, кол-во выполненных лотов, брак, простой
6 импорт необходимых словарей из АБАСа(erp которую использует завод) и экспорт табличных данных в csv
есть авторизация и раздельные права доступа. дизайна и тз не было. все сделано со слов директора. директору все нравится, готов башлянуть. ВНИМАНИЕ ВОПРОС: сколько брать денег?
написал 80% клиента
менторю и обучаю новых разрабов
веду один проект
выхожу на сеньора если все норм весной
Тимлид делает мне заявочку, что я виноват в том что 2 наших клиента разошлось в кодовой базе и что я считаю что я всегда прав. Причем мог бы сказать и тоном помягче, но выдал как здрасте.
Что делать? Планирую после релиза проекта искать новую работу. Но хотелось бы уже получить лычку сеньора, тем более что в команде в принципе вроде всем нравлюсь... Чяднт?
>написал 80% клиента
Да похрен сколько ты чего написал. Вопрос к качеству написанного. Я тоже уйму говнокода породил в своей жизни, как на проектах так и для себя, дальше-то что?
>менторю и обучаю новых разрабов
Тут твое ЧСВ может разгуляться. Нашел себе отдушину, молодца
>веду один проект
Опять же вопрос к тому как ты его ведешь
>Тимлид делает мне заявочку, что я виноват в том что 2 наших клиента разошлось в кодовой базе и что я считаю что я всегда прав
...
>>19284
>и что я считаю что я всегда прав
Это самая главная пробелма всех этих мидлсеньеров. Дикая самоуверенность, непокладистость и отрицание любой критики.
я изначально делал под заказ
Это называется CSRF.
> планирую после релиза проекта искать новую работу
> хотелось бы уже получить лычку сеньора
Ты определись что тебе нужно. Все компании по-разному оценивают уровни разработчиков, то что тебе тут помидора дадут, не значит что другие компании будут тебя таковым считать.
Да и зачем это звание ради звания, пусть как угодно называют если платят и относятся нормально
>Да ладно, наверняка много кто
Не, такого нет практически. Компании редко опенсорсят такие вещи. Гитлаб разве что приходит в голову.
Это ведь очень частое событие во время прокрутки? Если к примеру я хочу во время прокрутки скрывать что-то на странице?
Если я какой-то таймер добавлю это норм, или нужно как-то по другому отслеживать прокрутку страницы?
> const hasVoted = item.votes.find((vote) => vote.userId.toString() === sessionUser?.id) != null;
ну хуй знает, я бы за нестрогие сравнения undefined и null всё-таки пробивал двушечку
>Если я какой-то таймер добавлю это норм, или нужно как-то по другому отслеживать прокрутку страницы?
Т.е. не отслеживать, а обновлять состояние, чтобы оно не миллиард раз за прокрутку хуярило
Добавь debounce + проверяй насколько прокрутка изменилась.
>>19201
>Но хотелось бы уже получить лычку сеньора
Можешь просто всем говорить, что ты был сениором-помидором.
>>19195
Если честно, за то что ты в приложение уровня "сделать таблицу с выгрузкой в csv" написал на реакте, да еще и на 2.5к строк, я бы тебе по ебалу прописал вместо оплаты. Еще наверное какой-нибудь редакс подтянул
сейчас бы вместо !! писать != null
>Добавь debounce + проверяй насколько прокрутка изменилась.
Только получается мне нужен throttling же, потому что иначе пользователь может пролистать страницу долго до самого низа, и только потом элемент исчезнет. Просто для понимания процесса спрашиваю.
Throttling это когда например ты чекаешь значение прокрутки каждую секунду. И если значение прокрутки выполняет условие, запускается функция, но запускается проверка условия каждый раз, даже если пользователь 10 лет непрерывно будет на одной позиции стоять.
А Debounce, это когды ты запускаешь таймер после любого изменения прокрутки, и таймер начинает считать заново после каждого изменения значения прокрутки, и только когда значение перестало меняться, таймер досчитывает до конца, и выполняет функцию, но больше она тригериться не будет?
Да, для обуздания слишком частых событий прокрутки тебе нужен throttle.
> Throttling это когда например ты чекаешь значение прокрутки каждую секунду. И если значение прокрутки выполняет условие, запускается функция, но запускается проверка условия каждый раз, даже если пользователь 10 лет непрерывно будет на одной позиции стоять.
Нет, throttle без вызова сам ничего не чекает.
Вот тут хорошо написано: https://underscorejs.org/#throttle
А насколько много ресурсов жрет обновление таймера по скроллу? Есть вообще какая-то возможность следить за производительностью приложения?
Тебе скорее это нужно:
https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API
Так синьорам можно.
Сервер отдает браузеру js-файлы. Тот код, который собирается из используемых в твоем проекте библиотек, собирается в файл vendor.js отдельно от файла с кодом твоего собственного приложения, так как предполагается, что 1) зависимости в твоем проекте меняются гораздо реже чем твой собственный код 2) код используемых тобой библиотек значительно больше твоего собственного кода. Выделив библиотечный код в отдельный файл, этот файл может быть закэширован, например, браузером, соответственно его не надо будет качать заново, соответственно, сайт откроется быстрее. Разделение vendor.js/приложение.js самое базовое, в случае больших приложений код делится дальше чтобы поменьше качать лишнего.
Современный Реакт довольно отличается от изначального, и разрабатывался во времена когда классов в JS вообще еще не завезли.
Если вкратце
1) Нужно было как-то организовывать кодовую базу в целом и как-то хранить состояние компонентов в частности, и казалось что концепция классов хорошо для этого подходит, тем более, на бэковых языках этот подход уже давно был в ходу.
Первый прототип Реакта писался с оглядкой на XHP (php-шный), в котором все хтмл-элементы были описаны классами.
По поводу использования классов в прототипе можно глянуть например https://github.com/jordwalke/FaxJs/blob/master/coreModules/Fax/FEvent.js
2) Наследование опирается на идею, что у тебя есть хорошо определенный и редко меняющийся контракт и есть взаимозаменяемые объекты, с общим контрактом но разным поведению. Реактовские компоненты этому не очень соответствуют: такие ситуации встречаются и не сказать что редко (особенно в библиотечном коде), но в прикладном мире у тебя часто меняется контракт (пропсы компонента), а поведение более менее однообразно. Соответственно, в Реакте использовалось наследование, но только на один уровень - все базовые штуки типа методов жизненного цикла и т.д. наследуются от основного компонента, а в твоих собственных компонентах оно более удобно заменяется композицией.
Практики типа полиморфизма тоже используются, но под капотом, например предоставляя тебе одно апи при концептуально разных рендерерах (браузер и мобилка)
2)
`Date()` хранит в себе количество миллисекунд с начала юниксовой эры. Вот и сам подумай, сколько миллисекунд ты передаёшь, указывая только месяц и год.
тебе конечно виднее :)
Спасибо большое, пчел. Все понятно пояснил.
Я вот тоже. Пока то, что смотрю по Vue мне не сильно нравится. Реакт нравится больше. Но щито поделать, надо в это тоже вкатываться. Да и вдруг в будущем мнение изменится
Правда? Я вот как с редакса на MobX пересел почувствовал облегчение. Пойду почитаю что за стейт менеджер такой твой эффектор
Он слегка похож на мобх, но там нет ебучей магии с проксями и хуки нормально работают.
При этом видео проигрывается нормально.
Браузер фаерфокс.
Зависит от твоих вводных данных и функциональности браузера. Если C++ и Qt знаешь, то можно уложиться в полгода для браузера с базовым функционалом.
Зато роуты и диспатчи изкаробки
А какая нахуй магия в редаксе? Описать редюсер со стейтом и кинуть хуком диспач?
Почитал. Чёт фегня какая-то непонятная, лень разбираться. Остаюсь на MobX
Я ничего про магию в редаксе и не писал. Он простой как три копейки, но бойлерплейта очень много.
Например зомби-стейт, потому что порядок обновления приконнекченных компонентов совсем не тот же самый, что в простом дереве компонентов и регулярно меняется от версии к версии
Когда я передаю в зависимости вызываемую функцию, addEventListener вешается каждый раз заново ведь? Если я в функции вывожу что-то в консоли, то вижу, что при каждом изменении выводится все больше и больше консоллогов, но если передать в зависимости пустой массив, без тригерящейся функции, то она срабатывает вообще только один раз, посколько в зависимости не передается функция. Как быть?
т.е. получается так, что после первого изменения позиции страницы выходит один консоллог, после второй их уже два, потом три и всё больше и больше. Как будто event listener каждый раз вешается заново
Да на каждый пук отписываться не хочется, в итоге сделал через ref
люблю чистый код
with ( Math ) with ( console ) {
log ( cos ( PI / 4 ) )
}
А что здесь чистого? Контр пример покажи
Что-то ты не так делаешь. По сути постановки, тебе нужно всего лишь один раз повесить твой хэндлер на событие скролла: для этого тебе нужно передать в зависимости пустой массив, а в самом эффекте назначить хэндлер через addEventListener и вернуть коллбэк очистки, который твой обработчик скролла уберет.
По тому что ты описываешь (передаешь пустой массив и твоя функция срабатывает один раз), мне кажется что ты в addEventListener передал не саму функцию, а результат ее вызова
addEventListener('scroll', puk())
а надо
addEventListener('scroll', puk)
Если сделал как в первом варианте, то пук вызовется в момент регистрации эффекта один раз, а все события скролла будут обрабатываться тем, что вернула твоя функция (возможно ничем, если она void)
Там у меня ошибка была в том, что я часть функции описывал в самом листенере. В итоге переписал нормально, и всё заработало. Но вот пустой массив все равно не работает, и все выполняется однократно. Я передал в зависимостях саму функцию, и тогда всё работает.
Решил я вкатиться в js Мне для себя, не на продажу кодить. Python медленный, а js вроде ок - так вот и вышло, что на нём начал. Ещё на что то перекатываться не хочу, хоть и для моей задачи он вроде как не оптимален
Дрочу сейчас генетический алгоритм. В однопоточном режиме код выполняется и всё работает, кроме всех доступных ядер процессора. И я очень захотел это исправить, а то долго ждать результатов приходится.
Попытался в worker_thread - вроде получилось. Воркеры отрабатывают, процессор радуется нагрузке. Но только если запускать не в цикле. одной эпохой.
Собственно вопрос, а как бы организовать цикл, что бы
каждую итерацию создавать новый пул воркеров (входные данные могут меняться от эпохи к эпохе) , многопоточно обсчитывать популяцию.
У меня получилось, что просто все эпохи запускаются асинхронно и выполняются параллельно. В общем понимаю что надо копать в сторону async/await какого нибудь да ещё и в цикле. Но уже пару вечеров потратил - не получается никак(.
Вот синтетический пример одной многопоточной итерации, которая работает как надо :
https://pastebin.com/a4T9MjKH - основной тред.
https://pastebin.com/KczQm7eS - воркер.
https://pastebin.com/dHKA8ZYX - вывод.
Подскажите, как можно последовательно выполнить этот код несколько раз, дожидаясь сначала окончания предыдущей итерации ?
А после мдна что читать?
Справочник, но для новичков норм.
Там хорошо все разжевывается, единственный минус - почти отсутствует какая-нибудь практика. Для новичка лучше чем МДН однозначно.
Делаешь одну кнопку, при нажатии 'Cтарт' она перемещается на 100 пикселей вправо/лево и её текст меняется на 'Cтоп'. Таким образом легче будет делать адаптивный дизайн - кнопка просто будет менять текст и оставать на месте при маленьких разрешениях.
а зачем перемещать ее? наоборот фишка в том что для пользователя положение кнопки не меняется, как будто вообще это одна и та же кнопка. просто по нажатию на паузу, кнопка паузы пропадает, и на ее месте появляется кнопка "продолжить".
Перемещение моментально происходить будет, для пользователя это в любом случае будет как две разных кнопки, но вот в коде у тебя будет на 1 элемент меньше.
redux-toolkit
>попап - это всегда всплывающая ебатория посреди страницы или же это может быть менюшка по клику?
Это уже зависит от того, что конкретному разработчику в голову взбрело при создании шаблона, так как у имён классов нет какой-то стандартизированной системы. Попап - это в первую очередь абсолютно спозиционированный элемент, а уж относительно чего он спозиционирован - дело десятое.
Мне не нужен css, мне нужен конкретно бустрап, в первую очередь. Я не собираюсь углубляться в тему, по крайней мере, пока что. Где можно какой-то гайд по самым азам бустрапа найти? Все, что я находил это или "вот скопируйте это себе и все будет норм", или "сейчас я расскажу что такое флекгрид и чем 3 бустрап от 4 отличается". Мне не нужно так подробно.
Любой "Bootstrap crash course" на ютубе + быстро прогляди доку наискосок.
Сам по себе БС - просто набор готовых ЦСС блоков, как в лего. Их не нужно учить, нужно просто знать, какие примерно они бывают, и все. Какую-то сложность может вызвать только кастомизация стилей, ну или гриды бутстраповские. Но там уже нужно смотреть под конкреные требования.
при работе на проекте весь бустрап изучается за полдня. Начни что-нибудь с ним делать, там сообразишь.
Я пытался, но мне бы что-то краткое. В духе "Короче сюда хуярим вот такие штуки, сюда такие, вот так вот размещаем, вот условный хеллоувород на примере которого стандарт написания показываем". Дальше я уже сам по потребностям гуглить конкретику буду.
>>20797
Да мне бы понять как к нему подступиться, где смотреть все стили, как эти флексы обычно размещают и два-три примера простеньких. Про ютуб понял, а есть книга какая-нибудь, мне просто так привычнее.
Бляха, не нужна там никакая книга. Ну загугли Bootstrap recipes, это готовые примеры кода, с демками. Пощупаешь как это в живую выглядит, страх пройдет.
Понял, спасибо
ПЕРЕКАТ >>1920831 (OP)
ПЕРЕКАТ >>1920831 (OP)
ПЕРЕКАТ >>1920831 (OP)
ПЕРЕКАТ >>1920831 (OP)
ПЕРЕКАТ >>1920831 (OP)
ПЕРЕКАТ >>1920831 (OP)
ПЕРЕКАТ >>1920831 (OP)
Ты по сути хочешь хуярить CSS, не зная CSS. Ты же бэкэндер, любишь основы знать, вот и изучай основы CSS.
Кстати половина опрошенных в https://2020.stateofcss.com/en-US/ люто его ненавидит, и это люди которые более-менее разбираются в css. Подумой, прежде чем тащить его в свой проект, даже пет.
Для пета один хуй лучше свой css пердолить, так как любое свойство любого селектора можешь поменять по желанию левой пятки. С либами же придётся городить костыли, которые твой набор стилей ещё и привязывает к ней.
>Про ютуб понял, а есть книга какая-нибудь, мне просто так привычнее.
На мдн есть раздел вката в CSS:
https://developer.mozilla.org/en-US/docs/Learn/CSS
Вы видите копию треда, сохраненную 3 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.