Это копия, сохраненная 6 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Откликайся вообще на всё. Любой собес это опыт и сразу понимаешь что нужно подтянуть из знаний.
вкатун, 2 недели на первой работе
toFixed
Реакт группирует вызовы сетстейт для улучшения производительности, например
this.setState({counter: this.state.counter + 1});
this.setState({counter: this.state.counter + 1});
превратится просто в
{counter: this.state.counter + 1}
потому что у них одинаковые ключи counter и он как бы Object.assign'ит их
а через prevState ты гарантированно получаешь прошлый стейт, потому что эти колбеки в сетстейте выполняются по очереди.
>>40063
Этого пидора не слушай, сам не понимает что несет.
Читая информацию на счет стажировки в Тинькофф увидел что из всех сред для JS использовать на экзамене можно только Ноду древней версии (восьмой). Так как у меня стоит 16, встал вопрос установки менеджера версий. Что посоветуете? Ставить виндоус версию NVM или есть какие-то аналоги получше? Сами чем пользуетесь?
asdf
>Реакт группирует вызовы сетстейт для улучшения производительности, например
Что за хуйню ты несешь? Нихуя он блять по ключам не бегает, стейт просто строго сравнивается с предыдущим состоянием.
Вызов this.state во время вызова this.setState() имеет такие же подводные камни, как и вызов нынешнего состояния во время процедурки изменения этого состояния в ассинхронной среде. То есть непредсказуемый результат.
>стейт просто строго сравнивается с предыдущим состоянием
Это как раз ты несешь хуйню. Нахуя ему сравнивать стейт с прошлым? Чтобы что?
>Вызов this.state во время вызова this.setState() имеет такие же подводные камни, как и вызов нынешнего состояния во время процедурки изменения этого состояния в ассинхронной среде
Какой-то бред ебанутого. Ты молодец, если знаешь что асинхронщина может быть непредсказуемой, но какое это блять отношение это имеет к делу? Как по твоему это проблема должна решаться параметром калбека в setState(callback)? Причина одна, и это та, которую я описал. Реакт просто объединяет все вызовы сетстейт в один объект, и перезаписывает уже существующие ключи в этом объекте, именно по этой причине перезапись выполняется только у последнего сетстейта в линейном коде.
https://ru.reactjs.org/docs/react-component.html#setstate
Так это стандартный кишочкосрач. Причём нерелевантный к современному реакту.
>>40211
>Это как раз ты несешь хуйню. Нахуя ему сравнивать стейт с прошлым? Чтобы что?
Чтобы блять решать, ререндерить или нет. Это если чё наиболее дорогая операция при работе с ДОМом.
>Как по твоему это проблема должна решаться параметром калбека в setState(callback)?
Влёгкую, в колбэке ты манипулируешь тем, что в него рендерер передаст, а не неопределённое состояние компонента, вызванное хуй пойми откуда.
Я тут делаю такую штуку для постановки оценки от 1 до 10 путем наведения мышки на звездочки. Ну как в Кинопоиске например. То есть если курсор над, например, шестой звездочкой, то звездочки до неё должны быть активны. Ну и при клике должна оценка отправляться на сервер. Так норм или можно как-то оптимизировать? В принципе работает. Ну сейчас если курсор убрать, то ставится ноль, но потом заменю это на типа оценку пользователя, которая будет приходить с сервера.
Сам высиавил таргет ес5 и жалуешься на свою криворукость. Ты мудак?
Сейчас решил вкатиться, выбрал естественно JS. Поспрашивал в общей ветке про курсы типа яндекса и гикбрейнс, там сказали, что все они говно и не стоят своих денег. Потому сейчас в бесплатной части курса вспоминаю html и css, которые изучал еще в школе и пишу под диктовку первые строчки типа анимирования кнопки.
Вопрос. Я же правильно понимаю, что после изучения всей базы я смогу перескочить на нод и тоже писать всякие программки, делать фронт и бэк сайтов полностью, писать игры под андроид(принимать участие офк, не полностью их делать)? Или JS это вес таки про анимацию кнопок и интерактив на сайтах?
Смотрел всякие подкасты и видео на ютубе, в контексте JS идет только сайты-сайты-сайты-сайты, а мне весь этот лендинг вообще неинтересен.
Верните мемслеш
По-моему то что тебе понаписали про асинхронность setState и коллбэки это все правда, но к примеру отношения не имеет. В этом случае можно и setState({...this.state, v: this.state.v+1}) делать.
С JS'ом можно много чего сделать, так что да, не бойся. Даже если по итогу тебе захочется взять какой-нибудь другой язык для написания бэка, то впустую твоё знание не пропадёт.
Я и знал что сетстейт асинхронен
Объясни зачем в ф-ции из примера нужен prevState?
Без фантазий на тему множественных вызовов setState подряд.
Ты тупой? Основное отличие ес6 от ес5 именно в том, что в 6 запилили let и const с блок-скоуп видимостью, а в 5 этого не было.
function A() {
console.log('A')
return <B/>
}
function B() {
console.log('B')
return <C/>
}
function C() {
console.log('C')
return null
}
function D() {
console.log('D')
return null
}
function App() {
const [state, setState] = React.useState(0)
React.useEffect(() => {
setState(state => state + 1)
}, [])
console.log('App')
return (
<div>
<A state={state}/>
<D/>
</div>
)
}[/code]
"App"
"A"
"B"
"C"
"D"
"App"
"A"
"B"
"C"
"D"
Почему так, нахуй? Почему 2ой раз "B", "C", "D" пошло перерисовываться?
function A() {
console.log('A')
return <B/>
}
function B() {
console.log('B')
return <C/>
}
function C() {
console.log('C')
return null
}
function D() {
console.log('D')
return null
}
function App() {
const [state, setState] = React.useState(0)
React.useEffect(() => {
setState(state => state + 1)
}, [])
console.log('App')
return (
<div>
<A state={state}/>
<D/>
</div>
)
}[/code]
"App"
"A"
"B"
"C"
"D"
"App"
"A"
"B"
"C"
"D"
Почему так, нахуй? Почему 2ой раз "B", "C", "D" пошло перерисовываться?
react-i18next+lokalise
Это платформа неподдерживаемая производителем.
Под нее пишут по прайсу x10.
И вообще для всех платформ неподдерживающих ESM код пишут отдельно и заворачивают в <script nomodule>
Progressive Enhancement это не рокет сайнс.
А вот когда вы в современные браузеры грузите легаси код - то очевидно долбоёбы. Движки, что исполняющие, что рендеринг, оптимизируют из года в год под новые фичи, а вы продолжаете пихать в них дерьмо.
Особенно смешно наблюдать как одновременно используют современные CSS\DOM фичи, которые поддерживаются только в современных браузерах, и одновременно грузят в них же es5-target бандл.
Владилен Минин
ТРИЗ
Спроси у гугла.
Переводы объектов БД должны хранится в БД. Но для этого на проекте должна быть архитектура с поддержкой многоязычности, на фронте ты волшебным пакетом ничего не сделаешь.
https://www.opennet.ru/opennews/art.shtml?num=57054
Заворачивать все в React.memo хорошая практика? Вроде везде в доках писали, что компонент перерисовывается только если у него type или пропсы меняются. Для B еще можно предположить, что он внутри A, поэтому он перерисовался, ладно.
Но с D что не так?
inputItems.forEach((e) => {
e.addEventListener('click', console.log('clicked'))
})
Зашёл в консоль и увидел, что клики срабатывают сами. Я ничего не жал.
Это как? Почему? Как исправить?
колбэк неправильный ()=>console.log()
+ на каждый импут клик вешать не надо, лучше на родительский элемент один навешать и он провалится на все дочерние элементы.
> каждый импут клик вешать не надо
Получается, отслеживать нужный инпут через e.targer.
А с лейблами что делать? При том же сравнении сперва выводит false для лейбла, потом переключается на привязанный инпут и уже true
Есть кто css по курсам изучал? Посоветуйте ресурс по изучению
хочу подтянуть навыки, а то че-то верстал ща сайт каждую секунду что-то гуглил, мне кажется с такими навыками фронтендеру не стоит подаваться в джуны
Спасибо.
>че там учить-то
Да например ща верстаю, всё дивами захуярил, в итоге серч ниже бургера, хочу на одном уровне чтобы были. использовать позишин абсолют не хочу, слышал это плохая практика. Только гуглить походу.
А какие технологии ты ожидал? Дёргать память браузера/машины в контексте клиентских скриптов тебе всё равно не дадут.
Какую нахуй дергать память, ты совсем ебобо? Мемоизация это обычный кэш, реализованный на обычном JS. У любого кэша должна быть какая-то возможность его сбросить
Вот допустим такой код:
let a = 10;
if (a > 0) {
b = 20;
}
По умолчанию переменная b объявляется при инициализации в виде var или let?
У переменной b получается глобальная область видимости, но от чего это?
От того, что она var или от того, что на необъявленные переменные let распространяется такое же правило как и для var и они по умолчанию глобальны в этом случае?
b не объявляется нигде, во время выполнения скрипта, если дойдет до b, будет поиск в блоке if'a, если не найдет там - будет подниматься выше по скоупам, пока не найдет b либо до глобального скопа. В твоем случае b поднимется в глобальный и будет доступна через window.
let - всегда ограничен блоком, в твоем случае блок - это сам скрипт, но это не глобальный скоп, через window доступа не будет.
Т. е. это правило едино и для var и для let? (понятно, что в моём варианте var и так будет в глобальной видимости)
Вот в этом примере:
let a = 10;
if (a > 0) {
b = 20;
}
b будет var или let?
Если она глобальна это делает её var?
Вот это я не могу понять.
Напиши "use strict" в начале, получи ошибку и не еби мозг.
как она может быть не глобальный, если через виндоу можно увидеть её?
Получается, если не указывать var или let, то по умолчанию она становится var? Потому, что let не будет свойством window.
var ограничен скоупом функции, а твоя хуйня объявляется совсем глобально, вообще везде.
Это я обосрался, забыл вызвать функцию.
Ты бы про лексическое окружение почитал, как там переменные ищут, а то такое чувство что ты пытаешься заучить эту хуйню.
Она не var и не let блять. Если режим не strict, то a = 1 просто равносильно globalThis.a = 1, при условии что a раньше не было, и все.
Так ты не типизировал ничего, так что там any в твоем коде и всё хорошо.
Вообще вопрос максимально глупый, можно же просто статью про let и var почитать, там максимально всё подробно описано
>>41046
Двачую
Я просто был максимально уверен что вар в скоупе сделает глобальным переменную, но нихуя.
Я вообще вар не использую так шо похуй
а на выходе в дисте то у тебя вар получается скорее всего хехехе
Можешь объяснить, зачем ты объявляешь переменную без значения, а потом переопределяешь ее? Почему при инициализации ты не можешь ей дать сразу значение и неявно типизировать как надо?
Так я понял, метод мангуса find возвращает Query объект, но если добавить await, то вернёт данные. Что за магия такая?
any писать нельзя, пишем везде unknown
>Можешь объяснить
Могу. Но вопрос нет в том зачем я что-то делаю, в а том что TS неправильно выполняет свою работу. Если не задать переменной значение, то она неявно объявляется как any, это я и пытаюсь предотвратить, но конфиг не работает.
Что ты несешь, ебанутый? Причем тут базовые типы js?
Как тебе такое, илон маск?
>In some cases where no type annotations are present, TypeScript will fall back to a type of any for a variable when it cannot infer the type.
>In some cases
чел...
А стойте, я хуйню скинул. А вообще вопрос: вы ставили тайпскрипт поверх реакт криэйт апа? Если да, то попробуйте через шаблон поставить сразу. Либо это косяк тайпскрипта и в данном случае подсказка не работает (и не должна работать возможно)
Хз как он, но вот на сайте тайпскрипта запустил. На один any ругается, на другой — нет.
Пчел, ты думаешь что тайпскрипт работает так, а на самом деле он работает по-другому. Почему - отправляйся на гитхаб
Всё он правильно выполняет, у твоего высера тип высчитывается по последнему присваиванию.
У тебя нужда есть работать с mongoose? Если нет, то и нахуй не надо. Там какие-то ещё непонятки между гусём и нодовсим адаптером, из-за которых гусь отстаёт от фичивысирательства адаптера.
Плюс монга - мем, лучше БД своего пета на каком-нибудь postgresql реализуй, так как скорее всего тебе придётся с реляционной бд сталкиваться на работе.
Ну вот думаю сделать на монго и сделать бранч с постгрессом чтобы вообще оверкил был
да я уже допёр эмпирическим методом, а зачем было про ленивые вычисления затирать?
https://html5book.ru/
https://doka.guide/
Не будешь ебланом и гугли абсолютно все в процессе верстки что вызывает вопросы, без этого вообще бессмысленно и все коту под анус
Я думаю, что можно не указывать прям для каждой переменной. Главное - это интерфейсы объектов с данными, которые используются больше чем один раз
Я ебу че у них там принято, может надо, тайпскрипт это же про строгость. Я вообще вчера начал вкатываться.
Если только вчера начал вкатываться, то как определил нетупость человека, написавшего код?
По его проектам
После этого deno сдохнет обоссавшись и обосравшись?
Поясни. Почему он должен сдохнуть из-за поддержки нодой какой-то новой апихи?
И второй вопрос, вот в js есть Array и Map. Хочу привести их к одному Api: {getItem, mapItems}. Как это лучше сделать функционально ведь у Array и Map разные методы получения и прохода элементов, а значит хотелось бы передавать эти функции вместе с передачей самих структур, что бы не потерять контекст.
Там SICP на js вроде переписывали.
Аноны, если в проекте надо список картинок вывести, то у вас они в одном формате всегда хранятся в папке (?
Я ща столкнулся с проблемой, что сложно делать проверку на пнг и жпг, так как не могу понять как словить андефайнд если картинка не загрузилась и запихнуть нуллиш оператор.
Вот думаю просто все файлы переименовать на пнг и не ебать мозг. Это всё зависит от проекта или всё же лучше как-то проверять на существование имг? И как это сделать если я код пишу в реторне, я даже не могу выбрать элемент на проверку ( хотя не уверен что там можно проверить как-то)
>Вот думаю просто все файлы переименовать на пнг и не ебать мозг. Это всё зависит от проекта или всё же лучше как-то проверять на существование имг? И как это сделать если я код пишу в реторне, я даже не могу выбрать элемент на проверку ( хотя не уверен что там можно проверить как-то)
Напиши отдельный компонент-обертку над <img> и там можешь код писать хоть куда.
сделал так, тупа топ.
Зависит от того, что ты понимаешь по функциональным программирование на js. Если про полноценную функциональщину, то ищи fp-ts, ramda и будь готов учить что такое функторы, монады, линзы и прочая залупень.
Вчера читал как раз про монад, этот паттерн используется в самом жаваскрипте (массив это монад)
я сделал так, но попахивает как-то это
У тудушек должен генерироваться айди при создании, вот его и используй для лейблов и инпутов.
Не реализованы там базовые операции двухсторонки, так shift/unshift намного медленее push/pop.
JS сам по себе почти функциональный язык.
Ничего не знаю про дено, но async-api в JS проектировали ещё хуже, чем обычную модель. Хотя обычную проектировали тогда, когда JS был для снежинок на рождество, а современное вроде бы уже для крутой платформы.
Вот тупо этому fetch нельзя таймаут сделать, а это самая первая фича, которая нужна. Задачи, что в планировщик ушли, нельзя прервать. Из-за этого надо городить неебические костыли вместо нормального программирования.
Очень раз за JS, что спустя 5 лет начинает что-то доходить, что вот надо, надо...
Ок, тогда пока не буду забивать этим башку
>Реактивщина вроде rxjs давно под капотом умела дергать xhr.abort(), вотс зе проблем?
В том, что новый fetch интерфейс говно, из-за чего все используют велосипеды на основе легаси интерфейсов xhr.
Это и есть единственная причина по которой я учу это говно, а так, никогда не притрагивался к нему.
>Вот тупо этому fetch нельзя таймаут сделать, а это самая первая фича, которая нужна.
Не нужна. Потому что таким образом, умные и образованные разработчики веб-стандартов намекают тебе, веб макаке, что у пользователей не всегда есть качественный ШПД в интернет и ставить таймаут на запросы это выстрел себе в колено.
>ставить таймаут на запросы это выстрел себе в колено
Тащемта таймауты на запросы обязательны, если не на отъебись говнокодишь конечно. Лучше уж юзер через 5 минут узнает, что его запрос отвалился, чем будет ждать неопределенно долгое количество времени
>Потому что таким образом, умные и образованные разработчики веб-стандартов намекают тебе, веб макаке, что у пользователей не всегда есть качественный ШПД в интернет и ставить таймаут на запросы это выстрел себе в колено.
Да нет, просто обработка таймаутов - не фетча дело. Как минимум есть два типа таймаутов - серверный и клиентский. Серверный таймаут - статус-код по сути, а фетч ответ со статусом не считает ошибкой. Клиентский же таймаут сильно зависит от логики клиента, и клиент сам должен реджектить промисы с такими ошибками, а не фетч угадывать его хотелки.
А чьё это дело?
Моё дело, как разработчика, получить данные. Своевнеменно. Или какое-нибудь исключение, если их получить нельзя.
И меня, как разработчика, категорически не устраивает история, когда фетч повисает по каким-либо причинам и данных своевременно нет.
Таким образом, fetch просто не пригоден для прикладного программирования. Или надо строить немеренные обвязки над ним, или пилить собственное решение на базе xhr, чем все и занимаются в итоге. Хорошо что есть вот это легаси-решение.
И не только с fetch проблема. Общая асинхронная модель всем этим страдает. Если есть какая-то ожидающая асинхронная задача, то прервать её нельзя. Нужно пилить сложные обвязки и свои костыли для прерывания. Хотя на многих других платформах можно.
Надо переименовать .js в .ts
>Лучше уж юзер через 5 минут узнает, что его запрос отвалился, чем будет ждать неопределенно долгое количество времени
Пчел, этим занимается браузер, нахуя ты дублишь логику http клиента встроенного в браузер у себя в проекте? Как бы если коннект не разорвался, значит загрузка идёт.
Нет.
JS должен работать только при наличии нужного класса.
Всё работает, если js код находит класс. Однако если класса нет, то ломается вёрстка, стили не применяются, а в консоли ошибка из-за попыток применить к несуществующему контейнеру методы и прочее.
Полагаю, ломается как раз из-за отсутствия контейнера.
Чтобы исправить это, можно весь связанный код обернуть в if с проверкой на наличие контейнера.
Не будет ли такое говнокодом?
Смотрю, пока не до этого было, 3 дня реакт изучаю решил пока не трогать нихуя, сейчас загуглю как фиксить, я изучаю по старым гайдам.
Олсо, сделал роутинг в индекс.джс, если я апп буду загружать через path "/" эт норм практика? или внутри аппа лучше все руты выставлять?
>А чьё это дело?
Твоё.
>Моё дело, как разработчика, получить данные. Своевнеменно.
Это зависит от сервера и инфраструктуры. Клиентский скрипт на скорость запросов влияет более чем нихуя.
>Или какое-нибудь исключение, если их получить нельзя.
"Получить нельзя" - очень расплывчатое понятие, которое зависит от бизнес-логики бэка.
> И меня, как разработчика, категорически не устраивает история, когда фетч повисает по каким-либо причинам и данных своевременно нет.
Фетч может "виснуть" только по одной причине - сервер не вернул ответ с таймаутом. А это значит, что логики таймаута нет и на сервере. Опять таки тут тебе волшебный клиентский скрипт не поможет.
>Таким образом, fetch просто не пригоден для прикладного программирования.
Ну да, его спеку писали не для того, чтобы можно было говнокодить как захочется. Это вообще всех стандартов касается.
>Или надо строить немеренные обвязки над ним, или пилить собственное решение на базе xhr, чем все и занимаются в итоге.
Проблема в том, что ты считаешь, что фетч - либа уровня "сделай заебись", а не инструмент для работы с запросами. Для сделай заебись есть либы типа аксиоса.
>Если есть какая-то ожидающая асинхронная задача, то прервать её нельзя.
Вообще-то её можно "прервать" режектом.
>Хотя на многих других платформах можно.
Какие платформы?
всегда, если картинка не реалистичная картинка со множеством деталей, или если нужно сделать крутую анимацию. всякие иконки, простые в векторном представлении вещи лучше делать в svg.
Иди послушай лекцию по основам TCP На ютабах, что бы таких тупых вопросов не задавать.
Нода это что? Пишешь роуты на одном компе, стартуешь сервер. Потом с другого компа посылаешь запросы на роуты и получаешь ответ на другой комп
что уебанского? и почему решил что вью лушче? лучше для чего?
мне вот интересно как люди к таким выводам приходят
В реакте уже легаси, во вью можно сказать тоже
комп в другой стране может быть
Я готов к джунству/стажировку? или уже надо хуки+ редакс знать?
Имбецил ебаный, я по постановке вопроса уже сомневаюсь, что хоть что-то там изучил.
ты ведь всгеда омжешь открыть ххру и псомортеть требования вакансий и сопостваить вывозишь ты или нет
ну вот что ты ожидаешь услышать то
Я кста да. Месяц джс изучал, 3 дня реакта.
Но я до этого на шарпе год кодил
Но по ощущениям я будто всё могу создать. видимо я на экстремуме
>
Да ну он не совсем готов. пока просто в корзину добавляет итемы. а пейдж отдельный с оплатой не доделал, завтра сделаю
>Пчел, этим занимается браузер, нахуя ты дублишь логику http клиента встроенного в браузер у себя в проекте?
Ты из какого века? Зачем тебе тогда вообще fetch в браузере? Ты слово ajax слышал? А SPA?
Твоему приложению в браузере надо иногда фоном отправлять и получать данные. И это подразумевает, что приложение в состоянии понять, отправились ли данные или нет. А для этого нужны таймауты.
>>41887
>"Получить нельзя" - очень расплывчатое понятие, которое зависит от бизнес-логики бэка.
Нет никакой расплывчатой логики. Или я получаю данные за предписанную секунду-три, или не получаю. А там уже другое дело разбираться с тем, из-за чего не получаю.
>Ну да, его спеку писали не для того, чтобы можно было говнокодить как захочется. Это вообще всех стандартов касается.
Просто разрабы JS как на старте не в состоянии были что-то адекватно проектировать, так и в зрелом проекте. Просто такие люди. Язык определяет мышление, какой язык, такое и комьюнити.
>Какие платформы?
python
там можно сделать cancel для задачи, если она потеряла актуальность.
А ну так ты чёто знаешь уже. А почему с шарпа выкатился? Алсо хоть в доке реакта всё на классах, сейчас на хуках пишут
>А почему с шарпа выкатился?
я 2 месяца поработал и меня вышварнули из-за того что я задачу не мог решить. Хотя как я потом узнал, там многих увольняли, там мой друг работает, сказал что его тоже кикнули, я потом 2 года "депрессовал" и забил на кодинг, ща вернулся во фронтенд, пока как по маслу всё идёт.
Ну я ещё в вузе учусь, лабы делал все эти годы, но на шарпе/asm
3 курс
>Ты из какого века?
из 21 века
> что приложение в состоянии понять, отправились ли данные или нет. А для этого нужны таймауты.
Что ты несешь, шизик? У тебя тот же fetch возвращает promise, с которым ты можешь использовать оператор await и метод .then. Тебе блять недостаточно этого, что бы понять, завершена отправка данных или нет?
Не будет ли у вас минутки поговрит о React.memo?
Так он говорит о том, что нельзя запрос отменить, который уже отправлен. Хотя ему уже написали про аборт контрол и вроде тема ичерпана была, чё вы дальше мусолите
> Хотя ему уже написали про аборт контрол и вроде тема ичерпана была
Лол, исчерпана. Пока ещё ни один, НИ ОДИН браузер его не поддерживает. Тут только сотый файрфокс указан, но это пререлизовая версия, в релизе сейчас версия 99. А ещё гугол-хром есть и другие, которые в ближайшее время поддерживать не будут.
>Так он говорит о том, что нельзя запрос отменить, который уже отправлен
Самое главное, что нельзя понять, что запрос не отправился. То есть тебе надо придумывать костыли, например делать setTimeout и из него контролировать, что вот не выполнился. Но это же писец полный в плане кода.
А ведь логика самая простая. На фронте нужен функционал, что при нажатии кнопки на сервер отправляется запрос. И надо, чтобы если запрос тормозит, пользователю показывалось сообщение "сорри, что-то не работает сейчас". И аналогичная логика в рутинных фоновых задачах, где поллинг какой-то идёт. Самая очевидная и нужная вещь для прикладного программирования, и это не додумались сделать. Это именно fetch.
Ещё есть просто вопросы к кривости асинхронности.
Просто не осилили сделать нормальную платформу. Какой язык, такие и проектировщики, одно в другое перетекает.
>Пока ещё ни один, НИ ОДИН браузер его не поддерживает.
Какой же тупой, пиздец просто. ты смотришь на свойство "timeout", а не на сам abort controller. Вот тебе список браузеров, которые могут отменять запрос по аборту. При необходимости, ты и по таймауту можешь аборт запустить, тебе это никто не запрещает но если ты так будешь делать - ты долбоеб.
>надо, чтобы если запрос тормозит, пользователю показывалось сообщение "сорри, что-то не работает сейчас"
Чел, а если юзер входит в процентов 30 населения, которые имеет доступ к 2г интернету и для него то, что ты называешь "тормозит" абсолютно нормальная работа интернета, при которой он получает плевок в ебало от вебмакаки в виде "что-то пошло не так", какое у него мнение сложится о твоем продукте?
>Самая очевидная и нужная вещь для прикладного программирования, и это не додумались сделать.
Это додумались сделать, ты просто читать не научился за свои 20+ лет сущетствования.
>Какой же тупой, пиздец просто. ты смотришь на свойство "timeout", а не на сам abort controller.
Мне нужен таймаут и я смотрю свойсво таймаут. На который ты раньше дал ссылку. И кто из нас тупой?
При этом xhr таймаут есть.
>и для него то, что ты называешь "тормозит" абсолютно нормальная работа интернета
Если я умышленно прописываю маленький таймаут, значит так надо. Если бы так было не надо, я бы его не прописывал.
>Мне нужен таймаут и я смотрю свойсво таймаут. На который ты раньше дал ссылку. И кто из нас тупой?
Ты, потому что несмотря на то, что тебе буквально доказали, что ты не прав ты начал строить из себя неебаца эксперта, хотя по факту являешься не более чем вкатуном.
>При этом xhr таймаут есть.
А еще во времена xhr был activex. Теперь будешь считать, что эта хуйня априори должна поддерживаться везде, где только можно? Тебе уже несколько анонов написали, что ставить таймауты на запросы это антипаттерн.
>Если я умышленно прописываю маленький таймаут, значит так надо
Значит ты костыли хуяришь, а не нормальный код.
>Тебе уже несколько анонов написали, что ставить таймауты на запросы это антипаттерн.
Видел я приложения, которые эти аноны разрабатывают. Некоторыми можно даже пользоваться, пока интернет хороший и стабильный.
>А еще во времена xhr был activex.
Какой ещё activex? Есть исключительные ситуации, разные юз-кейсы работы кода. И их надо учитывать. А вы их не учитываете, вам всё пофиг. Будете с пеной у рта доказывать, что не надо.
Какой комьюнити, такой и язык. Поэтому JS такой кривой и исправляется еле-еле.
Но мне и не с такими поделками приходилось работать, я как-то не сильно жалуюсь.
>Некоторыми можно даже пользоваться, пока интернет хороший и стабильный.
Вот как раз ими и можно пользоваться, твоя поделка просто насрет пользователю в ебало ошибкой о таймауте.
>Но мне и не с такими поделками приходилось работать, я как-то не сильно жалуюсь.
Кого ты хочешь наебать, если ты банально не знаешь как fetch работает? Сколько ты работал в ИТ? Месяц джуном?
>Кого ты хочешь наебать, если ты банально не знаешь как fetch работает? Сколько ты работал в ИТ? Месяц джуном?
Лол, есть ощущение, что это ты в этой сфере год или меньше.
>Вот как раз ими и можно пользоваться, твоя поделка просто насрет пользователю в ебало ошибкой о таймауте.
Моя задача программировать логику. Если логика требует, чтобы данные были свежими, значит мне нужны короткие таймауты. Потому что нормально, например, просто забить на соединение и попробовать отправить ещё раз. Вообще куча сценарием есть.
Или может мне нужен умеренный таймаут. Или вообще пофиг.
Вот, это моя задача как разработчика решать, что мне надо в конкретной ситуации, и исходя из этого конфигурировать вызов. Чего fetch не позволяет.
Покажи код, как сделать так, чтобы если в течении двух секунд данные не были получены, fetch прерывался бы.
const ac = new AbortController();
const {signal} = ac;
setTimeout(()=>ac.abort(), 2_000);
fetch('...', {signal})
Первая ссылка в гугле по запросу "js cancel fetch"
В нестабильных сетях очень обычная история, что у тебя соединения рвутся, а ты об этом не узнаёшь. Ты должен предусматривать эти истории как штатные.
Самое разумное это ставить таймауты и уже действовать исходя из того, что данные не отправились или не пришли.
Причём поздние данные тоже плохи. И может нарушаться порядок из прихода. И в случае поллига может накапливаться много повисших соединений, если их не рвать.
Потом придется перекатываться на svelte
> на каждый чих надо ставить стороннюю библиотеку вместо использования встроенного функционала
а, ну тогда пиши на ваниле и костыляй свои лодаши и реакты, всё ведь можно на внутреннем функционале написать, нахуй не нужно это ваше чужое!
>если есть ахиос в котором отмена запроса уже давным давно есть
А акиос весит ноль байтов как fetch?
Тут дело в том, что аксиос весит дохуя, а функционала приносит за свой вес ровным счетом нихуя. Тот же лодаш и реакт намного больше нового функционала добавляют.
Здарова аноны. В общем мне нужно разобраться как можно пользоваться стандартными потоками ввода вывода в Node JS (8.10.0). Мне нужно ввести два числа разделенных пробелом в одной строке и чтобы мне программка выдала их сумму а затем завершилась.
Нашел вот такое https://replit.com/@kekos88/OldTremendousProcedures#index.js решение, однако не работает нихуя. Ввожу числа - жму enter - ???? - ничего не происходит. Как это исправить? Что посоветуете почитать чтобы нормально разбираться в стандартном вводе выводе у Ноды? Ютуб туториалы идут по 4-7 часов и там слишком много ненужной мне хуеты, а на сайте ноды тупо справочник в котором хер разберешься. Че делать?
>Зачем ты его закрываешь?
ну ваще не закрываю, просто у меня там приложение большое уже написано, и я не хочу в нем копаться, хочу маленький файл для тестов, но ради него нужно целое реакт приложение устанавливать. по другому хз как
>'end' то как вызываешь?
Ну я пробовал ctrl-c например и ctrl-d, тогда программа завершается, но результат в консоль не выводит.
Я на самом деле не понимаю что я делаю в этом коде, я его тупо скопировал.
точно,оно
Никогда не перестану поражаться тому, что люди, в большинстве своем, не способны связать двух слов.
Словно всю жизнь существуешь в мире умственно отсталых.
>JS сам по себе бесполезен и нигде не нужен
Хуле ты хотел от языка, где даже чтобы сгенерить рандомное целое число нужно писать гигантский костыль?
Ты кое что забыл
Можно даже JS не учить, но это возможность делать сайты на вордпрессе за 40к, без какого-либо развития.
ctrl+c это завершение процесса, событие SIGINT.
Конец ввода это ctrl+z
>>42658
Арендуй себе хостинг для простенького php скрипта и заливай туда по ftp файлы после сборки. Ну или арендуй себе vds и прямо на нём разрабатывай под ssh, vs code такое умеет, вебшторм тоже.
>>42853
Уже не надо, есть crypto.getRandomValues
>crypto.getRandomValues
Поридж, а что скрывается за этим твоим crypto.getRandomValues знаешь? Тот же самы костыль.
Думаешь, раз обернул говно в фантик, то оно перестало быть говном?
Вкатун, плиз. Там не Math.random внутри, все уже давным давно расжовано.
Никак, не придумали математики еще способа зарандомить ПОЛНОСТЬЮ уникальное число, которое гарантированно будет уникальным.
я имел ввиду,что как в лото,надо сгенерить 6 чисел,и чтобы генерируемые числа не повтоились
Только проверяя каждый раз, нет ли уже такого сгенерированного числа ранее, если есть - рандомить заного. В рандомайзерах сейчас гарантируется, что два числа подряд не будут одинаковыми, а вот 3 - уже нет (могу ошибаться, я давно смотрел как это реализовано в v8, сейчас могли поменять).
>как в лото
Тебе надо просто рандомно выбрать уже существующие числа из списка, а не рандомные.
Храни результат в сете и роль до тех пор, пока его размер не станет 6.
Рэндомы бывают разные.
Только внутри коллекций с итератором.
const hw = "hello world";
for (const char of hw) console.log(char)
ctrl+z это разве не остановка процесса? У меня по нажатию этой комбинации пишется Stopped имя программы.
я так понял,это для браузера код,а я запустил через ноду
Конечно на фронте, это же гарантирует, что никто из клиентов не подделает результат рандома.
Конечно нельзя, ты же будешь всю криптолибу с каждым запросом посылать.
А че не на бэке?
Короче, кто-то может поделиться своим опытом с VPS/VDS у конкретного хостера (timeweb? sprinthost?)? Чтобы всё серьёзно: убунта (хотя она везде), доступ к консоли рута по SSH, при этом без жёстких лимитов на трафик и с хорошим пингом. И цена простейшей конфигурации не более 1000 р/мес желательно.
открытый бета тест
>А зачем подделывать, если можно сразу ввести нужный результат без обращений к либе?
ну для бэка тогда надо php учить
У меня есть стейт в котором хранится сумма товаров.
На моём сайте есть 2 раздела, основной и /Payment там оплата всех товаров будет с выводом суммы.
Пришёл к тому что у меня App - главный компонент будет хранить стейт суммы, и я каждый раз передаю этот стейт большой цепочкой компонентам. Причем я передаю аж 2 стейта, функция которая обнуляет сумму (setState({moneyStore: 0}) , а другой ветке передаю текущее количество денег. В итоге получится довольно много ссылок на этот стейт. Это нормальная практика? То есть нескольким компонентам в хуй не упёрся этот стейт, но мне приходится его по цепочке передавать потому что не могу по-другому связаться с разделами.
В идеале я хотел хранить в дочернем компоненте Payment эту сумму и там же её ресетать, но не понял как в параллельных компонентах ( а параллельные они потому что в разных разделах находятся и их нельзя рендерить друг друга) тогда менять это значение, поэтому сделал через длинную цепочку (ну она не очень длинная, но если представить что проект будет гигантским, то будет засрано всё)
Забыл сказать. При нажатии на карточку Card у меня добавляется в moneyStore += price этой карточки.
а в пейменте на кнопку пей я ресетаю количество денег.
Прикольный сайт
Съеби
>random(diapason)
Что это за высер? Вот у тебя есть функция, которая возвращает случайные N-бит. Покажи мне способ, как эти биты преобразовать в число в определенном диапазоне без костылей.
Понял. Ну я пока 4й день учу реакт, решил не затрагивать его. вот сегодня только узнал что такое хуки.
Как думаешь, редакс лучше потом изучать? или уже можно садиться сразу
кк
Единственное что хорошее есть в реакте, что реально делает разработку приятной и чуть быстрее - поддержка jsx из коробки, но jsx можно поставить отдельно и без реакта.
Я вот захотел сделать комплексую анимацию и охуел как же говняно все устроено в реакте. Прямая парадигма реакта - разбиение на компоненты для удобной модуляциий комплексных приложений.
Но при этом ивенты на компонентные дивы не навесить без табуляции, а это пиздец говно костыль, ад и анти патерн для многих элементов. Уже на этом моменте идет какое-то выстреливание себе же в ебло.
Приходится все выводить в один синглтон, при чем не самый красивый, так приходится держать и все компоненты, и стейты этих же компонентов. А тут появляется пердолинг другого вида - делай так чтобы не было бесконечно ре-рендера.
Проще свой фреймворк написать на ванильном жс ояебал.
но тогда вероятны повторы чисел
>Зависит от терминала, в винде это конец ввода, в баше это завершение программы.
У меня WSL терминал
Что за игра?
>при этом ивенты на компонентные дивы не навесить без табуляции
???
function Abu(props){
return <div {...props></div>;
}
???
> Игра полностью на жс?
Лет 10 назад я бы мог решить, что ты спрашиваешь про flash, silverlight или java-апплет. А в 2к22 я даже хз, что может значить "не полностью на жс". Или ты про сервер? Он на NodeJS без примесей. Там серверных вычислений не то чтобы мало, но сама игрушка пошаговая, так что JS должен справляться.
В смысле? А как ты хочешь чтобы оно онки тебе давало если ты на нём фокус не можешь?
Молча, элементы слушают за глобальное нажатие через основной ивент класс, в игровых движках так и сделано, либо делается (тоже за костыль считаю) через зависимость от синглотона какого-нить.
Но тут по крайней мере даже не напердолить зависимостей как на ванильном жсе чтобы все это дело контролировать. Я уж устал в эту матрешку играть, перекидывая функции. Чинишь одно, ломается другое, пиздец 'модульность и легкость в разработке'
изи
function getRandomNumberNoRepeat(min, max) {
const numberArray = [];
const numbersAmount = max - min + 1;
let randomValue;
return function getRandomNumber() {
if (numberArray.length === numbersAmount) {
console.log('Array of numbers is full, restart function');
return numberArray;
}
do {
randomValue = Math.floor(Math.random() * numbersAmount + min);
} while (numberArray.includes(randomValue));
numberArray.push(randomValue);
return randomValue;
}
}
const getRandom = getRandomNumberNoRepeat(1, 2);
console.log(getRandom());
В игре пока делать нечего, кроме прохождения вступительной кампании. ПвП нет и не будет, какие там плюшки. Чистой воды игра мечты, короче. На этапе проектирования о способах монетизации мыслей не было.
Ладно, ухожу отсюда, всё-таки не /gd/
>не понимаю
Так ты тестируй свой код чтобы понимать.
Добавь в свой хендлер стейт счетчик какой-нибудь и посмотри как он будет работать.
Жаба головного мозга
Ты собрался регестрировать хендер на каждый ре-рендер? У тебя на простых анимациях с пары объектов браузер вытечет.
Тащемта хронический нпм инсталл тоже может стать костылём заместо архитектуры.
Во первых, Math.random это не рандом и на любом нормальном проекте ты за это получил бы по рукам.
Во вторых, у тебя это медленно работает, если надо заполнить массив большой длины. Нужном енять массивы на set.
Кто-нибудь объясните этому дурачку что любой школьник может наклепать своих пакетов и никто ему за это даже линейкой не шлепнет.
А я говорил про пакеты школьников? Я говорю про мастадонтов типа node-ipc
А теперь проверяй свой код как в первый раз)))
Это не я доебался, это велкум ту реакт. То ли еще будет.
Сейчас у меня сделано поэлегантнее чем у тебя, и то говно говна которое может отвалиться со следующим апдейтом реакта, сейчас решил забить и заняться свойствами дом объектов и это тоже фейспалм.
Если бы я не был ленивой жопой мне проще было бы что-нибудь свое напердолить.
Это говно начинает меня бесить. Какой-то шизик расставил нулы по половине .d.ts? В официальной документации нет никаких нулов блять.
Кто из этих двух пидорасов мне пиздит?
крипто uint8array до 255 генерит.
тогда нужна будет проверка чисел random<7 через цикл
потом mySet.has(random);
>тогда нужна будет проверка чисел random<7
Нет. Иди читай страницу про доки про ператоры в JS.
Вот она то тут как раз причем. Почитай и подумай еще раз над тем, как определять, меньше ли число 7 при рандоме и надо ли это делать.
до меня пока дошло,что там генерация идет до 255,
а нужно допустим 6 чисел из 49.
это сколько тупой работы по генерации и переборке будет
Я использую референс к переменной через которую меняю стейт.
Это даже звучит тупо потому что стейт в реакте должен сам исполнять функцию основных характеристик компонента, иначе нахуй он такой нужен, кастыльный кастыль.
function getRandomInt(min, max) {
// Create byte array and fill with 1 random number
var byteArray = new Uint8Array(1);
window.crypto.getRandomValues(byteArray);
var range = max - min + 1;
var max_range = 256;
if (byteArray[0] >= Math.floor(max_range / range) * range)
return getRandomInt(min, max);
return min + (byteArray[0] % range);
я не знал ответа,но гугление дало такое
}
Хуки
Я не совсем понимаю. Почему, если вот так сделать: x = 'какой-то текст', то текст внутри элемента выбранного селектором не меняется?
Если вот так, то всё меняется document.querySelector('#test').textContent = "выфвфы", а если через переменную, то нет
>const x = document.querySelector('#test').textContent
Ты получаешь значение поля объедка узла, то есть это самая обычная строка. Менять этот x это все равно что просто поменять строку этой переменной. К dom-узлу эта переменная уже никакого отношения не имеет, ты уже получил строку.
>Если вот так, то всё меняется document.querySelector('#test').textContent = "выфвфы"
Потому что document.querySelector() возвращает ссылку на объект ноды, и ты меняешь свойство этого объекта, что отражается в дом. Менять значение в переменной и свойство объедка это очень разные вещи.
Изучай что такое ValueObject и что такое ReferenceObject, поймешь.
Спасибо!
А есть тогда способ, чтобы эту лабуду как-то запихнуть в переменную, чтобы укоротить? Мне несколько раз нужно обращаться к ней и как-то не очень каждый раз прописывать document.querySelector('#test').textContent
>В официальной документации
Вот ты ахуеешь, когда выяснишь, что MDN это не официальная документация, а вики.
Однажды может быть наконец отыщешь в интернете специфиуации.
Дык запихни просто сам объект в переменную
const test = document.querySelector('#test');
test.textContent = 'пук'
А лучше иди учить жс
> Вот ты ахуеешь, когда выяснишь, что MDN это не официальная документация, а вики.
Вот же бля, а ведь ты прав...
Ебать меня за шиворот, меня так не наебывали с начальной школы, когда родители пообещали купить сегу на новый год, а потом нихуя не купили.
Какого блять хуя в MDN гонят какой-то порожняк и ничего не сообщают про null? В спецификации IndexedDB все написано же.
>Какого блять хуя в MDN гонят какой-то порожняк
Так всех людей, которые там работали поувольняли к хуям собачьм, там теперь сообщество базу знаний наполняет, как вики. Какое сообщество - такое и качество контента. количество вкатунов и недомидлов с 10 летним опытом разработки там зашкаливает
Ну вот чел работает 10 лет в одной области, а знаний едва ли наберется на уровень миддла.
Или так лучше не делать?
По клику по элементу мне нужно получить датасет, который есть у родителя этого элемента
closest юзай.
Третий работает отлично, второй значительно хуже.
Хватит срать в штаны, открой доку.
https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-1950641247
Блять, там так и было написано, зачем я это сделал
Впервые слышу о них. Спасибо, сейчас чекну.
Проверил через докер-образ, и правда 12-я версия.
Вообще странно, это же версия 20-го года. По идее должна бы быть 16-я версия, которая текущая LTS.
>Насколько тупая идея делать реальный сайт для доставки еды без cms на next.js?
Не тупая, но и не настолько простая, как тебе кажется. Для сириус бизнеса один хуй нужно будет выделять отдельный бэк сервер под задачи и пердолинг с БД, так как некст исключительно в контексте запросиков на лямбдах работает.
>Для сириус бизнеса один хуй нужно будет выделять отдельный бэк сервер под задачи и пердолинг с БД
Это нужно для простого сайта для заказа бургеров?
Держи в курсе
На простеньком беке или CMS.
Как мне засунуть значение с условием в элемент?
Нельзя делать component.props.bla =
Я также не хочу делать тернари(почему тернари поддерживается, а простой if - нет, втф), я хочу обычный if, иначе пусть элемент использует дефолтные статы, о который я не должен ничего знать.
Ебать програмировать на реакте это когда проблема которая решается на полторы минуты, расстягивается на часы=дни я ебал.
9 из 10
Из под TOR - всё работает. Блокировка провайдера?
Помимо этой версии не работает локализация инструментов разработчика, не работает никакой язык, кроме аншлийского. Не критично, но сам факт напрягает.
Далбаеб тут ты, твоя хуйня не будет работать с элементами с с тележкой свойств и прочих вкладышей. Ты же не собираешься копипасть стену кода? Это антипатерн. А если условий больше чем 1?
Разбей большой элемент на элементы поменьше тогда. Ну или напиши функцию с if и вызови её где тебе надо.
У меня такая же хуйня. Почему у таблицы получились неровные рамки? Как фиксить эту хуйню?
Ебаный рот этого гугл хрома. Как он умудрился обосраться вообще? На лисе все норм
> почему тернари поддерживается, а простой if - нет, втф
Потому что JSX — сахарок для шаблонных строк.
https://www.w3schools.com/js/js_string_templates.asp
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Template_literals
>когда проблема которая решается на полторы минуты, расстягивается на часы
Растягивается, потому не хочу. Что значит не хочу?
>почему тернари поддерживается, а простой if - нет
Потому что тернарный оператор возвращает значение, а if ничего не возвращает, а следовательно, это ничего не может быть присвоено переменой?
grid
Абсолютно логичное и при этом абсолютно бессмысленное суждение. анекдот про холмса,ватсона и воздущный шар
Какая ж тупорылая херня, если бы я был бы умнее на 20 пунктов айсикью и не ленивым, я бы свой охуенный яп написал бы сам, логичный, для людей. У тебя блядь 100500 языков возвращают null null и еще раз null, ты захуярил undefined, ты ж блядь самый умный навреное(нет), но не продумал работу с условиями, пиздец как будто я не могу если захочу вернуть в теранри с одной стороны хуй, а с другой залупа. Разработчик жса пидорас, я все сказал. ППС Да вообще таких пидаров много. Разбираться и быть спецом в ЯП это тоже самое что иметь сертефикат душевнобольного.
>спойлер
Ты же знаешь прекол из 00-х "Почему нет специалистов-пхпшников"?
Потому что все пхпшники дропали пхп сразу после того, как становились полноценными кодерами и понимали, какое пхп говно.
Ну епта, ну напиши не тернарный оператор, напиши через IIFE и твой любимый if.
А null и undefined нужны чтобы эксплицитно "нихуя" писать как null, а если что-то пошло не так, то возвращать "undefined", типа эти случаи полезно различать.
Почему только со строкой где 1 случай, работает нормально, а 2 и 3 случаи не обновляют сообщение в теге p?
https://jsbin.com/hadokawori/1/edit?html,output
1)Используй пж codesandbox
2)Посмотри туториалы реакта какие-нибудь
3)Вот я вроде сделал как должно быть, можно вообще p не рисовать
https://jsbin.com/yuzikifeko/2/edit?html,output
скока откликов вышло перед оффером?
Я как раз прохожу туториал и пытаюсь понять почему если ставить зеленую строчку в работу, то сообщение рендерится как и задумано, при изменении чекбокса; а если ставить красные строчки то ощущение что реакт их не видит.
Electron, либо nwjs если нужно не палить исходники.
В первом случае при изменении стейта происходит ререндер компонента и код из первого случая читается.
Во втором случае код читается только при переключении чекбокса. Т.е. ты его переключаешь, значение меняется, но не запоминается между рендерами, компонент ререндерится и ты получаешь undefined. Поэтому в любом случае меседж нужно засунуть в стейт
крюки и состояние
Могут себе позволить) Они же не маньки каргокультные вроде тебя
И? Носителей хоть и мало, но английский все равно легче понять и перевести и выучить, код нужно комментировать на английском
А можно не комментировать на английском.
Что легче, выучить английский или комментировать на родном языке? Внимание, для ответа нужен iq>80.
Это значит тебе в конфиге вебпака нужно резолвы смотреть.
Легкость для тебя никого не ебет, так что завали сам
У тебя на уме ответ для того, у кого IQ=85.
А у кого IQ выше, там другой ответ будет. Среди просто людей больше тех, для кого китайский родной, а не английский. Хотя даже здесь ещё много тех, кто английский просто знает, например в Индии очень многие знают английский. А вот среди занятых в IT уже может быть совсем другая пропорция, намного больше тех, для кого английский родной, а китайский они совсем не знают.
Высерок для высирания прототипов. С условием, конечно же, что ты сьебёшь в закат после разработки этого прототипа.
И что это должно значить?
Он ввёл в переводчик fuck Putin, а там перевелось как блять Путина. Получилось буквально обратное от желаемого
Ничего, импортозаместим XML'ем.
>Ryan Florence
>I feel like an idiot for not using Tailwind CSS until now.
>Kent C. Dodds
>Skip to the end. Use @tailwindcss.
У них же на сайте все явно написано. Это говно.
+15¢
Потому что после крымнаша доллар удвоился. А инженегром на удалён очке намног сложнее быть.
https://github.com/expressjs/express/releases/tag/4.18.0
Ну конечно говно, одно дело, когда был он да бутстрап.
А сейчас есть Chakra UI, Ant Design, css modules
За годик инженером бесплатно почти нереально стать, а потом работать удаленно откуда хочешь.
))
да еп твою, что не так с этим говном
бля че этих стейт менеджеров развелось
Какой же ты тупой, пиздец. Уже сотню раз тебе npm намекнул, что надо самому сборщик настраивать, но нет, надо качать create-react-app с сотней уязвимостей и парочке node-ipc в пировых зависимостей.
В гайде не было написано делать audit, сделал - соси хуй
>box-shadow: 0px 0px 0px 8px ${zalupa.abu.dvach.hui.babkin px}
>просто
Неужели это проще, чем
>@inlcude "theme/box-shadow-sm"
Весит килобайт, а весь редуксовский бойлерплейт будет на пару десятков.
Что бы тему в styled использовать нужно сначала создать файл с провайдером и, собственно, самой темой. В чем разница?
Согласен. Можно все провайдеры захуячить в app.tsx, так все делают.
Компоненты тоже все в одном файле пишешь?
Самый няшный фреймворк. для верстального фастфуда ничего лучше нет, просто все css свойства перевели в удобные маленькие классы,отсортировали по градациям и разложили по полочкам,с возможностью гибкой настройки, пиши хуйню в стиле @apply flex items-center justify-between px-4 py-6 bg-black text-white sm:block и в хуй не дуй. но в серьезных проектах вряд ли такое будешь использовать,да и в рот их ебать
ты издеваешься?если б там был ответ,а не левые ссылки я б и не спрашивал
Сап, изучаю React, пишу своё небольшое приложение (калькулятор), вот такую штуку выдаёт, а я просто не понимаю, что не так?
https://github.com/vercel/workshop-reacthaton
В файле App нет кода вроде 'export default ...'.
читай про js modules, export import. Посмотри как ты эспортировал App, мб нужно при импорте обернуть его в скобки{}?
Если для тебя прочитать документацию метода требует титанических усилий, то пиздуй на завод. Как раз нужно импортозамещать экономику в стране, окружённой враждебными врагами и предателями.
Ага вот тут ты и попался, там этих методов/фреймворков 100500, к каждому читать доку?
Но ты смотришь один метод одного фреймворка. Причём не какого-нибудь соевого, вполне себе полу-легаси.
Так я же для примера его привёл
Давно, называется while.
Бля эти файлы не должны быть удалены. Git add . не работает, такую же плашку показывает.
Пишут типа индексация поломалась
Спроси в web
Стейт это то место где могут хранится данные элемента. Но данные нужно показывать, для это используется рендеринг, но у рендеринга есть несколько стадий, типа подготовка, сам рендеринг, хуе-мое, и вот доступ к этим стадиям осуществляется через функции называемые хуками.
Главное, покрывай тестами.
Зачем юзеру нужна причина ошибки?
Это копия, сохраненная 6 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.