Это копия, сохраненная 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
У сервера нет ДОМовских заёбов с контекстом методов, так что классы на ноде намного лучше заходят. Плюс версия ноды постояная в контексте кода, так что не надо ебаться с разношёрстной поддержкой классов между средами.
Классы надо использовать тогда, когда тебе нужно очевидные инстансы со своей логикой создавать. Симптом инстансов - когда у тебя функции в модуле пропукивают между собой референс на один и тот же объект и дёргают его поля. Это прямо каноничная сигнатура метода класса.
В принципе можно не заморачиваться с классами/фунциями и всё хуярить на процедурках, а модули конвертировать в классы только при появлении симптома.
Там замыкания всякие, на гитхабе можешь посмотреть на реакт, там открытый код.
Вот ещё анон кидал, можешь ознакомиться
https://www.netlify.com/blog/2019/03/11/deep-dive-how-do-react-hooks-really-work/
Окей, пока не вижу необходимости делать классы, только если для красоты
Когда уже будет хвостовая рекурсия, чтобы форы эти ебаные совсем не писать???
Завайпать тред, чтобы модер жмакнуть "удалить все посты"
освой дебаггинг
Нормальное функционирование в том смысле, то intellisense практически не работает(
Хранить идентификатор поста, под которым октрыта форм отправки в вьюксе или родительском компоненте.
>Форма в каждом компоненте, потому что я хочу чтоб форма под постом показывалась
Вьюдауны еще не научились динамически менять локацию ноды.
Ахуительные истории короче. Им изобретали фреймворки, потому что ручками обновлять дом это слишком тяжело и большой риск допустить деоптимизации. По итогу они пихают по форме в каждый комментарий. Только выиграли.
а почему intellisense глючит?
>По итогу они пихают по форме в каждый комментарий. Только выиграли
А ты уверен, что там форма всегда рендерится, фуфел? Наверное, по твоему мнению через жиквару через строки вставлять намного удобнее
>Наверное, по твоему мнению через жиквару через строки вставлять намного удобнее
Вьюдаун не палится. На ванилле можно спокойно перекидывать любой элемент в доме, с сохранением референса на этот элемент.
Ну так она разве рендерится, если переменная не тру? Или я чет не понимаю? Я ещё планировал метод отправки формы этой в компоненте поста прописать. Это типа тоже выйдет, что я один и тот же метод n раз напишу? И так не надо делать? Но вроде логично типа.
>>45227
А, ну попробую мб. Я прост думал, сделать чтоб компонент типа эмиттил в родительский компонент какую-то команду, чтоб все формы позакрывались у компонентов постов, но чет неосилил пока.
Через какие нахуй строки, долбоёб. Любитель innerHTML, ты? Узнал тебя по обдристанным штанишкам.
>А ты уверен, что там форма всегда рендерится,
Уверен. Иди и ты проверь, теперь.
>Ну так она разве рендерится, если переменная не тру?
Какая нахуй разница тру или не тру.
У тебя в каждом компоненте рендерится НОВАЯ форма. Новый дом узел. Каждый раз. На 100 комментариев ты создаешь 100 нод формы.
Есть слайдер и к нему 2 инпута с именами from и to.
В инпуте можно менять значения, но нужно сделать валидацию через yup.
В принципе я сделал, но остаётся проблема в том, что у меня ошибка общая, а надо, чтобы она относилась именно к тому инпуту, где ошибка и произошла. Также юзаю formik со всем этим делом.
Код на пикче, функция validate вызывается на onBlur инпута.
Я вообще хуй знает как это сделать.
Ну так и чё я не понимаю? Что значит "новая"? Я нажимаю на кнопку, появляется элемент с формой. Не нажимаю - не появляется. Чем эта форма будет отличаться от той, что будет динамически вставлена? Один хрен одновременно на странице будет одна форма (ну если я сейчас пофикшу это).
Когда кнопка не нажата в верстке показывается <--v-if--> вместо элемента формы, то есть её же нет типа.
Ты не понимаешь разницы между двумя разными объектами?
Понимаешь в чем разница между двумя массивами на пике?
Ну я вообще жс не изучал особо, прост сайтик свой делаю. Я не понимаю, в чем разница между теми штуками у тебя на пике. Но лан, подумаю, как сделать чтоб одна форма была.
Прост мне показалось логичным что всё, что связано с этим компонентом, будет внутри этого компонента. У меня же каждый комментарий это как отдельный блог типа (не как на даче, а типа как в ВК там или на Ютубе)
Что, если ему потом понадобится менять динамически контент этого элемента в зависимости от условий? Императивно у каждого элемента менять пропы? Хватит дурачком прикидываться.
>>45237
>Через какие нахуй строки, долбоёб
Через которые ты контент на странице меняешь, попущ.
>Уверен. Иди и ты проверь, теперь.
Ты обосрался, долбоебина. Не рендрится от слова совсем, ни в реакте, ни во вью, ни в ангуляре
Ты после того как пообедаешь посуду всю выбрасываешь, а перед новой трапезой новую покупаешь? Это же по твоему логично должно быть - еда же каждый раз новая. Нет разве?
>Что, если ему потом понадобится менять динамически контент этого элемента в зависимости от условий? Императивно у каждого элемента менять пропы? Хватит дурачком прикидываться.
Если бы да кабы. У этих плавающих форм очень слабая привязка к каким-либо элементам в списке, в который они засовываются. А уж в контексте имиджборды связки вообще нет, так как даже ответы - всего-лишь строчные ссылки. Так что хуй знает про какие пропы ты тут затираешь.
Ты тупоё добоёб.
Ни вью, ни реакт, ни ангуляр не перемещают форму по дереву.
Они создатут сто форм на сто комментариев. И будут тебе их показывать и скрывать. Но это будут сто разных блядь форм. Ты понимаешь это или нет?
Ахуительно, блядь.
Ну например то, что это требует в 100 раз больше памяити и в сто раз больше вычислений.
Что в этом плохого? Хуй знает, что плохого в том, что вы постоянно сеуете, што браузеры вам всю оперативку выжирают и тормозят.
Ну то есть я правильно понимаю, что если ты пишешь у какого-то элемента v-if, то этот элемент энивей есть, просто не показывается? Даже если в коде страницы его нет, то он где-то там сидит и занимет память? Я рил не знаю.
Если он не занимает там где-то память (не закеширован), после того как был отрендерен хотя бы раз, то все еще хуже. Ты будешь создавать форму заново КАЖДЫЙ раз. С тем же успехом можешь заново ререндерить всю страницу на каждое движение мыши, что в этом плохого?
Ну прям там одно поле с кнопкой дохуя памяти занимают? Просто ты говоришь, как я понимаю, что даже если кнопка ответа не нажата, то вью энивей для каждого поста займет память для формы? Ну типа думаю не страшно новую форму нарисовать каждый раз, когда ты отвечаешь на пост. Но если он рисует форму для вообще всех постов на странице, на которые ты и не собирался отвечать, то тогда да, не очень наверное.
А что ты хотел от двух одновременно запущенных браузеров.
>Они создатут сто форм на сто комментариев.
Они создают 100 форм только если ты написал в коде, что надо создать 100 форм. Если ты напишешь создать одну форму к активной карточке поста, то он создаст одну форму.
Ни у кого идей нет?
ты спизданул про создание 100 разных форм для каждого поста, а не сравнение двух разных нод, попущ. Иди перечитай свои посты.
Ну да. Тут одно поле - ничего стращного. Там тоже одна кнопка - ничего страшного. А вон там тоже всего ничего подумаешь.
Ты понимаешь что из такх мелочей блядь все и складывается? Никто не садится писать ГОВЕННЫЙ ТОРМОЗЯЩИЙ И ЖРУЩИЙ ПАЯТЬ код намеренно.
Ну типа как делать без анта, сам написал?
Несовместимые сорта модулей ноды.
Можешь посмотреть на Хабр. Он делает именно то же, что ты - создает новую форму для каждого поста.
Хабр правда очень шустрый сайт, не так ли?
для каждого комментария*
Я сделал как мне тут один анон советовал: в родительском компоненте есть переменная commentingPostId, которая передается в каждый компонент поста. В компоненте поста сравнивается id поста с переданным commentingPostId, если совпадает, то показывается форма. При нажатии на кнопку ответить, срабатывает метод, который эмитит id поста. В родительском элементе при эмите срабатывает метод, который устанавливает commentingPostId на тот id, который ему заэмитил компонент.
В том, что это костыльное подобие плавающей формы. Тащемта её можно "по-настоящему" реализовать и во фреймворках, но для этого придётся создавать свою систему оверлея или пихать императивный код с рефами в компонент. С отдельным стором кстати намного проще, так как императивщину можно спрятать за тханком и реф хранить в полуглобальном состоянии.
>Хабр правда очень шустрый сайт, не так ли?
Как будто из-за того, что он создает эту форму он так лагает.
Не ну я знаю, что это такое, просто подумал, что наверное не круто хранить типа в общем хранилище информацию, относящуюся только к одной странице. Или норм? наверное да, надо было так сделать, лел.
Ты прав. Вьюкс не очень хорошо подходит, а вот vue-query вполне.
есть массив ['a', 'ab', 'abc', 'babc']
в нем требуется для строки 'abcd' найти элемент, который больше всего входит в указанную строку с начала строки ('abc')
как это сделать?
>как это сделать?
Прочитать оппост.
>Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю».
бамп
Он все и перебирает, долбоеб.
вааау
Хуйни-то не неси, долбоеб. https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3
Так. ну этот чел на видосе говорит обратное. Если дисплей инишл выставить, то выдаст именно инлайновым. Или получается у дисплея по дефолту инишл это инлайн, и дисплей всё в инлайн пытается перевести? ясн
https://youtu.be/N8tFrMZp_wA?t=114
Когда собираешься подрасти и вместо того чтобы ретранслировать то, что ты не понял, начать читать документацию, долбоеб?
Чел ему глворил. Пиздец.
Получается я был прав
Так верстали наши шизопредки
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" class="" method="post" id="my_form" name="my_form" method="post">
в ней инпуты где вводишь текст
И есть кнопка сабмит
<button type="submit" class="button" button id="button">Submit</button>
Данные Array показываются прям на этой же странице (можно на другой, не суть важно). Т.е. у меня над <!DOCTYPE html> висит
<?php
print_r($_POST);
?>
Так вот, нужно чтобы по нажатию кнопки форма не сразу отправлялась (срабатывала) а например 7 секунд задержка была. Уже пробую 10 метод со стаковерфлов и ничего не срабатывает.
Как можно сделать задержку?
Не знаю важно или нет, на XAMPPE щас проверяю.
<button type="button" onclick="send"></button>
<script>
const send = () =>
setTimeout(() => {
const form = document.getElementById("form");
const fd = new FormData(form);
fetch("/<твой экшн>", { method: "post", body: fd });
}, 7_000);
</script>
дадада мне похуй на onclick, глобальное пространство и прочую хуйню. Один хуй эта пыхамакака не в состоянии написать нормальный жс
Второй вариант, еще легче:
<button type="button" onclick="send"></button>
<script>
const send = () =>
setTimeout(() => {
document.getElementById("my_form").submit();
}, 7_000);
</script>
><?php
>print_r($_POST);
>?>
Ебало представили?
https://ru.wikipedia.org/wiki/Межсайтовый_скриптинг
>>45687
попробовал - нихрена. Вот вся моя форма простейшая
<?php
print_r($_POST);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>test_post</title>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<label for="first">First Name :</label>
<input type="text" id="first" name="first">
<label for="last">Last Name :</label>
<input type="text" id="last" name="last">
<button type="submit">Submit using POST</button>
</body>
</html>
На ней попробовал решение 6-10 из стаковер - не работаеют. Кнопки подставляю как у них в примерах. У тебя в примерах тоже даже твои айдишники подставлял. Наверное я рукожоп какой-то и в упор чего-то не вижу.
я это видел, я для себя делаю поэтому вообще все равно на защиту.
>Кнопки подставляю как у них в примерах. У тебя в примерах тоже даже твои айдишники подставлял. Наверное я рукожоп какой-то и в упор чего-то не вижу.
это что такое?
>type="submit"
> У тебя в примерах тоже даже твои айдишники подставлял. Наверное я рукожоп какой-то и в упор чего-то не вижу.
Ну так кидай полностью весь код, что ты подставил.
мимо
вот пожалуйста, подставил второй вариант анона.
<?php
print_r($_POST);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>test_post</title>
<script>
const send = () =>
setTimeout(() => {
document.getElementById("my_form").submit();
}, 7_000);
</script>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post" id="my_form">
<label for="first">First Name :</label>
<input type="text" id="first" name="first">
<label for="last">Last Name :</label>
<input type="text" id="last" name="last">
<button type="button" onclick="send"></button>
</form>
</body>
</html>
>>45697
спасибо
вот пожалуйста, подставил второй вариант анона.
<?php
print_r($_POST);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>test_post</title>
<script>
const send = () =>
setTimeout(() => {
document.getElementById("my_form").submit();
}, 7_000);
</script>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post" id="my_form">
<label for="first">First Name :</label>
<input type="text" id="first" name="first">
<label for="last">Last Name :</label>
<input type="text" id="last" name="last">
<button type="button" onclick="send"></button>
</form>
</body>
</html>
>>45697
спасибо
Не за что. Формы говно, если что. Если хочешь в фуллстек учи сразу подход AJAX, а именно как работает метод fetch.
Так в чём актуальность замыкания в 2022? Нахуй это на собесах спрашивают? Что бы что? Что бы узнать понимает ли человек, что лет в скобочках не видно за скобочками? Так спрашивали бы сразу про области видимости. Или я чего-то не понимаю?
Ты блять когда импортируешь модуль используешь замыкание.
В рякте хуки это чистопородные замыкания.
потому что в жс кроме замыканий и прототипов нихуя нет
по какому дефолту, в спеке написано, что блочный, значит браузер так его и должен отображать и прописывает это в дефолтных стилях. То что у пропсы значение inline не значит ничего.
Как мне это сделать?
Выдает ошибку
Warning: Cannot update a component (`Home`) while rendering a different component (`ListItem`). To locate the bad setState() call inside `ListItem`
Так это чистый ритуализм. Считай TDD - коммунизм позднего совка. Никто в него не верит и не практикует, но если ты не хочешь быть изгоем-опущем, то ты должен говорить о важности тестов и какое же заебатое это TDD. Да и кабанчикам в принципе похуй на тесты, им проще загонять разработчиков на сверхурочные после деплоя в пятницу через раз, чем продлевать и усложнять процесс всей разработ очки.
Читал, что строки лучше сбрасывать в "" а не null, потому что v8 там лучше работает и не пакует\распаковывает значения туда-сюда.
А что делать с массивами, объектами и другими типами?
Ну типо у тебя есть какая-то формочка с строками, чекбоксами и т.д. и кнопка очистить форму, какие значения полей лучше выставлять после клика на очистку формы?
Какой клик на очистку формы? При успешном сабмите вызываешь HTMLFormElement.reset() и не ебёшь мозг.
Да много где есть на инпутах крестик для быстрой очистки, или на группе чекбоксов "снять все".
Нашёл все элементы через querySelectorAll и превртил результат в массив. После попробовал это:
console.log(days.some(e => {e.classList.contains('-range-from-')}))
Не работает, выдаёт false
Однако код:
days.forEach(e => {
console.log(e.classList.contains('-range-from-'))
});
Работает и говорит о наличии нужного элемента.
Почему так?
Ха, точно. Теперь работает. Спасибо.
Ну тупоскрипте пишем
Берёшь и пишешь. Я после шарпа js за неделю выучил. Джависты совсем тупенькие?
windows 10 powershell, в прогу mysql заходит, а команды не выполняет ну либо я туплю
Лля каждого типа использвать в качестве пустого значения тот же тип.
Незаполненый массив это пустой массив.
То что ты тупой не проблема.
Ты свои эти метафоры и аллегории оставь для других мест
- Как реализовать "тёмную тему" на выбранном фреймворке (Angular, React, Vue).
- Как отследить открытие веб-приложения в новой вкладке и автоматически запретить выполнение кода в предыдущей.
- Как отправлять HTTP запрос не на каждый key stroke, а только через N миллисекунд после ввода последнего символа.
много кода
>- Как реализовать "тёмную тему" на выбранном фреймворке (Angular, React, Vue).
Реализуется без фреймворка в современном CSS.
>Реализуется без фреймворка в современном CSS.
шо.
хочешь сказать можно просто взять и на все разделы сменить тему каким-то там цсс?
"Добавляет новый атрибут или изменяет значение существующего атрибута у выбранного элемента."
так toggle же всегда для тем использовался.
во-вторых, как ты отслеживаешь другие разделы сайта?
Да, через media query prefers-color-scheme, например.
Подожди, а как же декларативность, как же то что можно легко перенести проект под мобилки, виар.
вью так может?
мимо вкатун, возможно через неделю первая работа будет
Пока, всем похуй на твой список. Тред обсуждения языка программирования не будет тебе помогать отсеивать вкатышей.
Что ты там собрался ан ваниальном жс быстрее писать, долбоёб?
Иди нахуй с такими вопросами вообще.
Паттерн "реактор"
Так у ярна там модная установка через корпак, его нпм тоже не видит. Это не с ярном проблема, а нпм в моём конкретном сетапе.
Сложно, а все что ты выучишь там будет и нахуй не нужно
Ну и дичь, пришлось добавить временную папку в пути. Шиндошс-стайл солюшнс.
Хосспаде, почему вкатуны такие долбоебы? Начинай с Паскаля и Си, потом будет похуй что разрабатывать
потому что не знают нихуя в вопросе. это как с ребенка 2 летнего в ахуе быть, почему он не понимает таблицу умножения
мээээх
импортнул один компонент, стили наложились на другой
Так бабель всё равно сделает нужный процент, а его настройки от желаний бизнеса зависят, какая разница?
Как в одном конфиге вебпака сделать так, что бы генерировалась 2 бандла с разными настройками бабеля?
Или придется 2 разных конфига делать и по очереди выполнять?
Создай отдельный энтрипонит для говна, обмазанного полифилами и пихай его с аттрибутом nomodule в страницу. А основной бандл с type="module". Но там нужно больше пердолиться, скорее всего два конфига собирать придётся, так как нужно будет транспилировать слишком свежее говно в node_modules тоже.
Тут есть общее описание, как это реализовывать:
https://philipwalton.com/articles/deploying-es2015-code-in-production-today/
Это очень старый гайд, так что не рекомендую ему следовать буквально. Плюс все плагины для вебпака, которые якобы могли это дело автоматизировать, не обновлялись года 2 минимум.
А бабель мне гарантирует что весь код точно будет переведен на старый стандарт? Например, как он реализует динамический импорт?
>А бабель мне гарантирует что весь код точно будет переведен на старый стандарт?
Нет.
>как он реализует динамический импорт?
Никак. Динамический импорт реализуется средствами вебпака или вита. Диинамический импорт нестандартных зависимостей (напр. css) реализуется через соответствующий лоадер и/или плагин.
>как он реализует динамический импорт?
Через добавление <script src> на страницу и навешивание на события load и error resolve и reject параметры промиса. Можно поменять, если есть необходимость.
>Как в одном конфиге вебпака сделать так, что бы генерировалась 2 бандла с разными настройками бабеля?
>Или придется 2 разных конфига делать и по очереди выполнять?
this.
//webpack.config.js
module.exports = [config1, config2]
Так у меня разные цсс модули. у меня 2 разные цсс модуля и они не импортят друг у друга. там где я их вызываю по всей видимости вызываются 2 вот этих цсс модуля ( так как прописаны импорты в модуле компонентов)
В общем надо просто следить за наименованиями.
Дебил, ты их импортируешь в скоуп модуля сайд эффектом, пиздуй читать инструкцию, как работать с css-модулями.
ты че бредишь, сука? Какой рантайм вебпак на клиенте?
То что он тебе сгенерировал код по подгрузке модуля не значит, что он у тебя вебкап работает в рантайме.
А как насчёт того, что инкапсуляция стилей и нормальный шаблонизатор есть в Angular, Vue, Svelte, а в React нет? Что ты скажешь по этому поводу? А? А? А?
>А почему в Реакте нету инкапсуляции стилей?
Ну поставь scoped jsx, будет тебе инкапсуляция как в вуе.
>А когда в реакте появится HTML шаблонизатор?
Как только вуй сможет в нативное мобильное прилоежние
А зачем выбрал, если не нравится... Да, бек сложнее, но там не такой разброс по технологиям, несколько актуальных стеков, общие алгоритмы, СУБД, со знаниями которых можно потом переехать хоть в блокчейн. Смысл учить фронт и переучиваться на бек, если можно сразу бек?
Отвечу, что вышеописанные фремворки могут работать только в браузере/на ноде, а реакт не только.
>То что он тебе сгенерировал код по подгрузке модуля не значит, что он у тебя вебкап работает в рантайме.
>То, что ты вставил код реакта в бандл не означает, что у тебя реакт работает в рантайме
Сам понял что высрал?
>инкапсуляция стилей
В чём отличе от css-модулей?
>нормальный шаблонизатор
Дефайн "нормальный". Из нормальных шаблонизаторов на память приходит только pug, так как это единственный шаблонизатор, который упрощает чтение хтмл простыней, а не усложняет. Но он как бы умир, да и работал тольно на нодовских серверах.
>Какой рантайм вебпак на клиенте?
Вот этот?
https://github.com/webpack/webpack/tree/main/lib/runtime
Блеа, мне надо было всего-то в стор добавить один слайс с ебаным массивом, так для этого пришлось редачить четыре-пять файлов...
Причём здесь реакт? Это типичный бойлерплейт редукса.
>охуеват от количества бойлерплейта в этом вашем реакте
>Блеа, мне надо было всего-то в стор добавить
В реакте нет стора, ты видимо что-то перепутал.
И что по твоему это значит?
Где ты видишь место, где вебпак добавляет в твой бандл подгрузку своих библиотек, а не тех, которые ты сам указал при сборке как динамические модули?
Уже напился, придурок? Разницу между импортом библиотеки и генерацией скрипта по загрузке библиотеки не видишь?
Че такое rte? Типо реал тайм экзекушн? Конечно да, но причем тут "у вебпака есть еще рантайм на клиенте"?
если хочешь чтобы тебя дрочили вопросами по БД и sql, и скорее всего, задачками по алгоритмам - пиши фулстак.
как восстанавливаться будешь после такого?
Ты даже не джун
Закажи на фрилансе разработку простейшего сервера, отдающего данные в нужном формате. Или сделай сам, лол
props.setState(this.props.counter + 1)
props.setState(this.props.counter + 1)
<Parent><Children setState={this.setState} counter={counter} /></Parent>
Инстанс Parent это this, на 4 строке общее древо компонентов.
RTE - это Runtime Environment. Именно то, что и называется пантаймом когда под рантаймом подразумевают "что" а не "когда"
Например, окружение браузера и ноды и апи которые они предосиавляют - это рантайм.
Рантацм это то, без чего твой код не работает.
У вебпака тоже есть рантайм, который он встраивает в твой код.
Чел, бэкенд это гигантская сфера, по сравнению в которой фрон - это баловство в песочнице. То, что ты поднял сервачок на ноде, сделал строчку в базе или аутентификацию по ютуб ролику не делант тнбя бэком даже близко.
ебать чувак ты думаешь я ради пет проекта так заморачиваться буду? а rps вообще от меня зависит или от хостинга?
>Это словосочетание само по себе уже стало мемом. Пиши, что реакто-макака, но есть немного опыта с нодой.
Ладно спасибо. Просто вот мне показалось как-то тупо пользоваться файрбесом вместо бека, поэтому заинтересовал вопрос. Надеюсь, не зря
>Просто вот мне показалось как-то тупо пользоваться файрбесом вместо бека, поэтому заинтересовал вопрос.
Каждый инструмент под свою задачу. Иногда чистый фронт без базы это ОК, иногда в качестве бэкэнда хватит какого-то firebase/DynamoDB на AWS, а иногда нужен нетфликс из сотни слабосвязанных горизонтально масштабируемых сервисов.
>а rps вообще от меня зависит или от хостинга?
И от того и от другого. На небольших проектов мало кто будет заморачиваться с оптимизацией, скорее всего просто закинут ядер и гигабайтов оперативы на хост, а вот на больших, когда подобное закидывание будет стоить овердохуя денег отдается больший приоритет оптимизациям.
Однозначно не зря. Небольшое понимание бэка очень полезно, и стоит указать это в резюме. Вполне возможно, что ты попадёшь в команду, где придётся немного писать на ноде. Просто это ещё не делает тебя фуллстеком.
Чисто по своему опыту, я бы порекомендовал сфокусироваться пока на фронте, и когда будешь чувствовать себя уверенно (и это будет подкрепленно твоими успехами в реальным проектах), начинать смотреть в сторону бэка.
Пишу тут аппликуху на реакте, но вёрстку не знаю. Писал тупо на дефолтных хтмл контролах без css.
Накатил бутстрап, с полтычка сразу все заебись красиво стало, можно даже людям показывать.
Бутстрап помогает делать фронт тем, кто настолько тупой, что не может верстать сам, типа как я.
Или же это норм тема и его используют в коммерческих SPA?
Чет за 2 года фронта на реакте ниразу их не видел в проектах, все в сагах ебашат логику и все. Максимум там что-то общее в отдельную функцию выносят.
Используют, но свою тему или компоненты пишут на основе бутстрапа\материал.
Бутстрап обычно для повышенной скорости верстки приделывают.
Сейчас намного чаще в ходу Material UI, Ant Design и Chakra UI
>Вы в работе вообще используете классы?
yes
>Чет за 2 года фронта на реакте ниразу их не видел в проектах, все в сагах ебашат логику и все. Максимум там что-то общее в отдельную функцию выносят.
Если твое понятие классов за 2 года работы ограничилось только классовыми компонентами в реакте, то у меня для тебя плохие нвоости
Ну так и есть, только классовые компоненты тоже нигде не используются уже. Работаю в банке.
Какие у тебя проекты?
Это ты типа выебнуться решил или чё? Работаю в IT отделе росгвардии, так тчо можешь свой ебанк засунуть куда подальше.
Причем тут выебнуться. Хочу узнать на каких проектах есть потребность писать свои классы, потому что у меня это не используется.
>Хочу узнать на каких проектах есть потребность писать свои классы, потому что у меня это не используется.
В банк по блату вкатился?
>классовые компоненты тоже нигде не используются уже
Ты скозал? ErrorBoundary как первое, что пришло в голову. Кстати, а ты знал, что js это не обязательно реакт? Например, ты можешь ты можешь свои компоненты создать на ванильном жс через классы и только через них. И, учитывая твои высеры, они будут работать быстрее чем твой говнокод с сотнями ререндеров на реакте.
>Работаю в банке.
>Какие у тебя проекты?
А я работаю в телекоме на что это вообще влияет? Очевидно, что ты в своем банке только формы шлепал никак не разиваясь.
Ставлю тебе класс.
Ты импортируешь css файл как js.
Используй божественный tailwind и css-purge
Конечно, это даже основа фукци анального программирования.
Аноны, которые работают или считают у них довольно чистый код, подскажите советом.
Пишу сайт для лаборатории. Сделал отдельный компонент для шаблонных текстов ( это где сверху заголовок, внизу паста, мой 3 пик) и туда подавать в пропсы текст. Но это получается мне придется засирать текстом мой главный компонент App.
Плюс, надо как-то весь текст распарсить. В данном случае тогда лучше избежать компонентного подхода?
Хотя я тут подумал, можно для каждого текста свой компонент создать, где там текст уже будет оформленный и его погружать в темплейт. Вроде норм идея?
>Сделал отдельный компонент для шаблонных текстов ( это где сверху заголовок, внизу паста, мой 3 пик) и туда подавать в пропсы текст. Но это получается мне придется засирать текстом мой главный компонент App.
Что ты блять несешь? Откуда у тебя этот текст вообще берётся?
>то ты блять несешь? Откуда у тебя этот текст вообще берётся?
Наверное неправильно выразился, не шаблонный текст, а они в одном стиле все оформлены, оранжевая шапка с заголовком, внизу текст на бежевом фоне, как на моём 3 пике.
Текст я переписываю с 1 и 2 пиков
Куда ты его переписываешь? Создавай компонент, получающий текст для заголовка и children в пропсах. Потом для каждой страницы создавай компонент, который заполняет шаблонный компонент, и экспортируй его. App у тебя будет эти компоненты пропукивать через роутер, на передавай никакх пропсов в них.
let odin = io.of("/odin")
let dva = io.of("/dva")
И потом можно
odin.on(...)
dva.on(...)
Но по факту оно пишет, что у io нет метода of. Его реально там нет, я проверял. И как быть нахуй? Мне с нуля новую инстанцию сокета делать, под каждый неймспейс?
Реакт необязательно SPA, но свой серверный рендер реактокомпонентов тебе придётся пердолить самому, особенно если сервачок не на ноде. Или добавь в своей стэк сервачок на NextJS, там как раз хелловорлдный блог в примерах.
Ну или свяжись со мной в телеге https://t.me/gabengar могу я фронт попердолить.
Спасибо, да это не коммерция, я как бы учусь и делаю типа пет-проект. Бек у меня на Django. Читал, что можно базовый шаблон можно отдавать через бек сервер, собирая фронт вебпаком.
Но мне хочется сделать как 2 независимых приложения. Хз,правильно ли это. Но то что я понял, поверхностно пробежавшись по тутору реакта - это что он заточен под SPA. Думаю он для блога нахуй не нужен. Например страницу логина, профиля хотелось бы отдельно грузить.
Поможет ли мне здесь NextJS + React router dom?
>Но то что я понял, поверхностно пробежавшись по тутору реакта - это что он заточен под SPA. Думаю он для блога нахуй не нужен.
"Заточен" он может и под SPA, но его пихают и в одностраничники.
>Поможет ли мне здесь NextJS + React router dom?
Некстжс - отдельный сервер, со всеми вытекающими. Его киллерфича - он может билдить статику с данных из БД, а если у тебя совсем хайлоад - то делать это инкрементно в рантайме.
Тулинг в пхп: менеджер пакетов composer.
Тулинг в жс: менеджер пакетов npm (и ещё несколько), надстройка над языком typescript, бандлеры, препроцессоры css, минификаторы js и css, вырезатели неиспользуемых js и css, полифилы для js, hot-reload сервера и ещё 100500 видов хуйни.
О, моя шарага
Ты забыл упомянуть 10 шаблонизаторов у пыхи. Каждый новый - более лучше предыдущего.
> Текст я переписываю
Куда, прямо в жиэс файл?
Текст должен храниться в базе данных на сервере, компонент получает информацию с сервера, дёргая апишку.
> 10 шаблонизаторов у пыхи
Да это дерьмо для рачил. Все нормальные люди используют сам php как шаблонизатор, что делается в каждом популярном фреймворке.
Я уж молчу про то, что уже де-факто сервер давно ничего кроме жсонов не выдает и никакие шаблонизаторы там нахуй не нужны.
> Текст я переписываю с 1 и 2 пиков
Какую задачу тебе вообще поставили?
>>48508
> Пишу сайт для лаборатории
Что значит "сайт"? Его будут использовать как средство публикации новых статей? Или ты просто переписываешь содержание стенгазеты в статические страницы?
В первом случае требуется нормальная БД, где будут храниться тексты в каком-либо одинаковом формате и админка с авторизацией.
Во втором - просто переписываешь текст с бумажки в статические страницы, раз уж интерактивности не будет. В таком случае текст будет прямо в хтмл потому что с вероятностью 99% никто этот "сайт" больше никогда трогать не будет
Блядь лол, так и join нету. Вообще нихуя нету, половины функционала нет нахуй. А что случилось-то блять? Это я ебанутый и нихуя не понимаю, или у них действительно все переделано/отвалилось нахуй?
Кто-нибудь может прямо сейчас проверить, работает ли клиентская часть socket.io? Просто две строчки кода.
Так, с неймспейсами разобрался, действительно все переделано, как будто до этого хуево работало. Как join то теперь делать, нихуя не понятно.
Ай ладно все я разобрался. Просто охуенно каловая документация, которая путает пользователя. Надо было не тратить время на чтение этого говна, а сразу api смотреть.
Делаю запрос в бд, но результат застрял внутри колбэка, консоль логом выводится нормально только внутри колбека, ретёрн возвращает КУДА ОН БЛЯДЬ ВОЗВРАЩАЕТ
извините
>Я уж молчу про то, что уже де-факто сервер давно ничего кроме жсонов не выдает
Ну да, серваки сгрузили мозгоёбскую работу по превращению контекста запроса в хтмл, и внезапно большая часть проблем с тулингом отпала. Но виноват конечно же оверенжинеред фронт.
> Как из коллбэка вернуть что-нибудь в глобальное пространство?
Promise
> КУДА ОН БЛЯДЬ ВОЗВРАЩАЕТ
В коллбек. С вероятностью 99% потребителю коллбека абсолютно похуй че ты там в нем возвращаешь. Его дело лишь вызвать твой коллбек и передать в него результат.
Да
>>48629
Задачу поставили просто создать сайт для лаборатории где будет возможность добавлять новые публикации, добавить админку, также менять язык сайта. Я ведь по идее смогу потом спокойно подключить через нод жс какую-нибудь БД к реакту без проблем, но этим раньше не занимался
Я пока в jsx переписываю, а потом для раздела подумаю как добавить бд. Вопрос был просто в оформлении, как грамотно сделать, ну в общем-то я думаю нормально всё оформил.
1. Есть компонент куда текст вставлять 2. Есть компонент где этот текст отформатирован. 3. Просто засовываю его
а в индекс js просто маршрутизацию запихнул.
Мне просто хочется понять как в реальных проектах оформляют или это не сильно важно, на работе объяснят че как делать
кек
У меня есть панель одна, у меня есть панель другая.
Как функцией из компонента одной панели, поменять статы другой панели?
Создавать в родителе панелек стейты и парелелльно скидывать хендлеры звучит как говно.
На ванильномс жсе это было бы проще потому что можно было бы напрямую менять статы. Ну или можно было бы использовать отдельный объект-класс-хранилище ивентов, медиатор короч.
Есть идеи-лайвхаки как это провернуть?
Ой да похуй даже ковырять это говно не хочется, отбой.
Аноны, могли бы вы мне пояснить как читать такие записи в API? Точнее, ту часть с квадратными скобками [, options].
Что она значит? Что это необязательный параметр? Почему запятая внутри скобок?
Они значат, что это необязательный параметр.
Запятая внутри скобок, потому что она тоже необязательна, если необязательный параметр не передан.
Понял, спасибо большое
Нужна еще spotify, youtube premium и netflix. Без этих подписок сохранятся не будет.
Какого хуя ты ошибку не вернул в reject?
Кидать throw в коллбеке - бессмысленная и очень хуевая затея.
> Задачу поставили просто создать сайт для лаборатории где будет возможность добавлять новые публикации, добавить админку
Ну тогда ты и должен был с админки и начать.
Продумать, какую БД использовать и в каком формате хранить тексты.
А добавлять их потом в самом конце через созданную админку.
Чё ты несешь, наркоман?
>контекс
Тупое говно тупого говна, она не решает проблему общения между 2 независимыми компонентами, ты сетаешь глобальную переменную, но не можешь поменять ее функционально потому что она read only блеать. Ебануться реактокалеки придумывают костыльные костыли и еще статьи прям выпысивают на максимально убогую хуйню с 0.0001% юзабили потенциалом.
>пропс дрилинг
>Создавать в родителе панелек стейты и парелелльно скидывать хендлеры звучит как говно.
хуилинг
Я не знаток этих ваших патернов. но даже я вижу что реакт убогая пирамидка и мне кажется что даже в 90ых такой патерн не обосал бы только ленивый, ведь это противоречит принципам ООП независиомость, модульность, агностичность, реюзабельность , скалируемостьвообще. да-да я видел что жс запихывают часто к функциональным языкам(кек), уж случаем не из-за ебучих фрееймворков
Вот помню писал приложуху на нете, просто охуенно, можно было после любого отгула и запоя прийти, тыкнуть в любой модуль из дохуища и по зависимостям спокойно понять что он делает. А с реактором насаживание парочки функции заставляет мою голову болеть.
>ведь это противоречит принципам ООП
Так сразу бы и сказал, что ты из этих. Тебе только ангуляр жрать.
>контекс
>но не можешь поменять
можешь
ООП это не про реакт, там функциональный подход продвигается с дрочем на иммутабельность и чистые функции.
Хочешь ближе к шарпу - попробуй ангуляр.
Как можно функционально поменять?
>Вот помню писал приложуху на нете, просто охуенно, можно было после любого отгула и запоя прийти, тыкнуть в любой модуль из дохуища и по зависимостям спокойно понять что он делает. А с реактором насаживание парочки функции заставляет мою голову болеть.
Процедурный фанат побочных эффектов вкатился в тред. Продолжай дальше писать for (int i = 0; i < N; ++i), свитер. Ты не понимаешь что всякие редаксы нужны для one-way data flow, когда все мутации стейта централизованно выполняются в отдельном модуле-редьюсере, а все твои компоненты занимают только рендерингом и ничем больше. Ты заебёшься понимать, что произошло когда какой-то компонент в твоей иерархии стриггерил ивэнт, который поменял стейт в трёх других компонентах, которые в свою очередь поменяли стейт в ещё десяти других компонентах и вся эта каша из побочек ещё 10 циклов устаканивается, а потом у тебя на UI не то, что нужно отобразилось и ты лезешь в свой императивный параша-код понимать что произошло, а потом ты вообще увольняешься нахуй потому что сложнее туду листа стейт не получается у тебя сменеджить.
Я слышал ангуляр треш похлеще реакта, так что я выбираю меньшее из зол, да простит меня Гервант из Ривенделла.
>>48879
Спасибо за решение.
>>48896
Ты меня раскусил, я люблю свитера, это можно конечно в пасту, но с реальностью это мало отношения имеет.
Патерны и тесты и все очень легко понимается, если красиво раскидано-заархитеткурено.
>Патерны и тесты и все очень легко понимается, если красиво раскидано-заархитеткурено.
Ну так покажи мне как у тебя код организован, что всё понятно и охуенно и я скажу, что хуже ещё не видел.
Ты так про все можешь сказать, я тоже могу много чего сказать, но как говорят - пиздеть не мешки ворочать.
Время покажет уже показало) что из парадигм круче\востребованее\удобнее.
>Material UI, Ant Design и Chakra UI
Посмотрел Material UI и Chakra UI. Заебись, мне нравится.
Фронт движется в сторону библиотек UI-компонентов.
Впервые люди дошли до этой идеи с бутстрапом, но он предлагает уровень организации компонентов лишь на уровне CSS.
Современные же фреймворки предоставляют компоненты на таком же уровне абстракции, как в мобильной разработке. У компонентов может быть своя собственная встроенная логика и скрытая реализация html и css.
Например, не просто таблица, а таблица сразу с сортировкой по столбцам, при этом ты не реализуешь логику сортировки, она содержится в компоненте.
Охуенно, хуле.
> Создавать в родителе панелек стейты и парелелльно скидывать хендлеры звучит как говно.
Ну тип да, так и надо, вон на ихнем сайте буквально это написано.
> На ванильномс жсе это было бы проще потому что можно было бы напрямую менять статы.
А потом искать какого хуя оно непредсказуемо меняется и гадать а нахуя тогда нужен реакт, если у тебя всё равно всё императивно.
> Ну или можно было бы использовать отдельный объект-класс-хранилище ивентов, медиатор короч.
Ты только что стейт менеджер.
Спасибо за твои 5 копеек в копилке.
>он предлагает уровень организации компонентов лишь на уровне CSS
Аккордионы, модалки, тултипы, тосты по твоему реализуются только через CSS? Bootstrap уже давно полноценный фреймворк, как с js так и с css.
>Аккордионы, модалки, тултипы, тосты
Для всего этого длстаилчно только css. Половиеа из тобрй перечисьенного вообще нативные элементы браузера.
>Для всего этого длстаилчно только css.
Не достаточно.
>Половиеа из тобрй перечисьенного вообще нативные элементы браузера.
Нативным можно назвать только модальное окно, всего остального нет. Тултип, встроенный в браузер появляется за пределами DOM, поэтому не считается.
>Если я залью так проект в портфолио надо мной не будут ржать потом?
Будут.
Вообще, зависит от того, куда ты хочешь податься. Если на галеру формошлепить - никто до ошибок докапываться не будет, а вот на серьезных проектах могут предъявить.
>Тултип
element[tootltip-message]:hover::after {
content: attr(tooltip-message); position: absolute;
}
Так эти либы - костыли для заднеприводных. Поставил ты такой свой материал юай, а бизнес-логика требует, чтобы кнопка чуть тихо пердела при нажатии. И компонент на материале моментально превращается в месиво пропсов и костылей.
Аккордеон это и есть спойле, мань.
https://html5css.ru/howto/howto_js_accordion.php
https://webref.ru/layout/pseudo-class-checked/accordion
Все эти примеры по ссылкам тривиально реализуются через details.
>Все эти примеры по ссылкам тривиально реализуются через details
Ну реализуй мне со стилями и анимированным переходом тогда. Хотя бы самый минимум. Учитывая, что это тривиально, за пару минут управишься.
>Няшные анимации не являются функциональным требованием.
Ещё как является, так как плавные переходы - одна из основ UX.
Какого хуя не выдает ошибку, если в поле 1 символ?
Там же в правилах длинна минимум 2 должна быть!
В шары ебешься? Там два символа.
>Material UI
Как называется эта болезнь? Это обычный select. Эта хуйня высрала 45 дочерних компонентов и еще по 12 на каждый элемент списка.
Вот после такой хуйни вкладка браузера и отжирает 2 гига памяти.
Ты уверен, что от прокидывания рефов у тебя память отжирается? А так это обычный компонентный подход.
А в чем геммор? 2 раза копипаст нажать?
>Ты уверен, что от прокидывания рефов у тебя память отжирается?
Нет блять, высрать 2 сотни компонентов - это бесплатно по памяти.
>А так это обычный компонентный подход.
Это говнокод какой-то ебаный, полный игнор встроенных возможностей браузера.
Ради идеального пиксельного соответствия гайдлайнам ебаноидов из гугла построили целый манямирок из 200 компонентов, чтобы отрендерить сраный селект. Страшно представить, че у них там в компонентах посложнее происходит.
> Нет блять, высрать 2 сотни компонентов - это бесплатно по памяти.
Это тебе реакт дев тулз показывает кучу компонентов. На деле большая часть их - всякие HOCи и прочие врапперы, которые в DOM ничего не добавляют. Так что оверхеда с них не больше, чем со всяких вызовов функций с замыканиями.
>Это говнокод какой-то ебаный, полный игнор встроенных возможностей браузера.
Ты хоть пробовал встроенный селект использовать за пределами хэлловорлда, знаток?
>Ты хоть пробовал встроенный селект использовать за пределами хэлловорлда, знаток?
Ну охуеть теперь, как же мы без 200 компонентов на селект жили-то все это время.
Ковыряю эту муйню и дико ору с того, что она состоит из костылей чуть менее, чем полностью.
В половине этих говнокомпонентов используется id, а в половине name, лол. Когда как в каждом должно быть и то и другое, как в обычных контролах браузера.
Но в mui тому же Select нельзя задать атрибут id, а Autocomplete нельзя задать name (инпуту нельзя имя задать, это пушка нахуй).
В одних компонентах в качестве target нормальные HTML объекты, в других какие-то костыли вида {hui: pizda, sosi: loh}.
Такое чувство, что каждый компонент делал отдельный индус, предварительно объебенившись боярой.
Нахуй этот миюай, внатуре будто в компании сяоми делали, пробую чакру.
На мало того: поверх ещё предлагается стилизацию компонента вынести из отдельного файла и заинлайнить прямо в код логики рендеринга компонента. Со мной что-то не так или это теперь норма? Сам я пока пишу на Angular/Vue, где есть строгое разделение между этими ответственностями, но в идеале хотел бы писать на Реакте, потому что модно. Но каждый раз когда смотрю на "правильный" код файла Реакт-компонента, то у меня глаза разбегаются. Я даже слабо представляю как инструментами статического анализа можно было бы заставить людей писать поддерживаемый Реакт код условного большого проекта.
Вуедебил, успокойся.
Философия реакта в разделении на компоненты. Это же логично: логика, отображение, стили компонента должны находится в одном месте, в одном файле вообще идеально
const exampleFunction = async (arg1, arg2) => {
return arg1+arg2;
}
...
await exampleFunction(...args);
Если вы вдруг видите, как вам кто-то показывает код, в котором он await'ит что-то перед ретурном из async функции, имейте ввиду, что перед вами тупой долбоёб, понятия не имеющий как устроены промисы.
Блять, что лучше ооп, фп или процедурное программирование. Ну и вопросы тут задают. Попробуй ооп подход, но имей ввиду, что есл пойдешь потом во фронт, то там твое ооп никому не нужно, все будет на функциях.
У тебя у эл-ов массива есть индекс, его и заюзай
Чел ты рофлишь? Я смотрел код из вполне авторитетного источника и там было такое. Там была обёртка для функции экспресса, ну которая (req,res,next)
Нет, не рофлю.
Попробуй обяснить в чем разница между твоим кодом и вот этим
async function promisObertka(func, ...args) {
return Promise.resolve(func(...args))
}
А после ответить, зачем ты await'ишь результирующий промис в async-функции.
Ну вот тебе запрос к бд через евейт в трай кеч блоке. Это дефолт тупо
Какое отношение это имеет к предыдущим кускам кодам и в частности ктвоему изначальному.ты совсем не понимаешь разницы?
Я попросил тебя ответить на вопрос - зачем ты в своем коде авейтнул результирующий промис. С какой целью? ты можешь это объяснить? Или все же признаешь что не понимаешь почему ты это делаешь?
То, что на твои скриншотах ни один промис не является результирующим тебя не смущает?
Вот только там ретурна нету, так что ты обосрался. Так же обосрался с синтаксисом асника, а заодно не понимаешь, как работает Promise.resolve() и зачем его используют.
Вот за этим и сделали тайпскрипт. В ванильном жиэсе хуй поймёшь что у тебя в переменных содержится, ни автокомплита, нихуя
> в котором он await'ит что-то перед ретурном из async функции, имейте ввиду, что перед вами тупой долбоёб, понятия не имеющий как устроены промисы.
Да что ты говоришь? Если написать await перед неасинхронной функцией, то программа хотя бы упадет с ошибкой. Это дополнительный контроль типа возвращаемого значения, дебс. На случай, если вызываемый метод перестал быть асинхронным.
> Если написать await перед неасинхронной функцией, то программа хотя бы упадет с ошибкой
Спешие видеть, еще один тупой долбоёб. На этот раз не знающий, как на самом деле работает await.
Ты так и не указал версию браузера.
Не сообщит. Никаких проблем с типами там нет.
Хуя тут малолетки-долбоебы высераются про подходы к разработке о которых нихуя не знают. Сомневаюсь, что если поймать тебя на улице ты хотя бы расшифруешь аббревиатуру tdd
Свидетель TDD подал голос. Пиздуй тесты на геттеры и сеттеры писать, а то ПМ отпиздит за не 100% покрытие.
>у меня 4 года опыта фулкеком, я в душе не ебу че они несут про вебпак.
>4 года опыта фулкеком
bitrix+jquery-макака, ты?
Лол причем тут тесты на геттеры и сеттеры. Я все правильно написал, ты не шаришь нихуя, малолетка.
Не, классический веб стек- реакт, нода и т.д.. Но в вебпаке почти не шарю, максимум могу настройки какогонить лоадера поправить. Хотя недавно с помощью вебпука 5 разбивал монолит на микрофронты, но один хуй, если меня попросить засплитить какието чанки, разбить на бандлы и добавить разные конфиги, то я полезу в доку, т.к. хуй его знает как это делается
Значит делаем вывод, что итт одни маньки гуглят доки и стаковерфлоу за других(безруких) манек и кидают нагугленное в тред, корча из себя гуру
https://vertically-challenged.github.io/react_weather/
Как раком до Китая.
>Нет SSR
>html lang="en"
>You need to enable JavaScript to run this app. При этом все остальное приложение на русском
>пик 1
>пик 2 then then который then'ом погоняет
>табличная верстка
>время в шапке только на момент загрузки
>нет тайскрипта
>каким-то хуем ипортируется react в каждый .tsx файл и не используется при этом
>png иконки в base64
вердикт: еще пол года подрочишь документацию и сможешь закатываться.
>используется create-react-app
>нет конфига под форматирование
>20 кб проебаны на бесполезный axios
>api ключ хранится прямо в репозитории
Из положительного:
1) Для каждого компонента есть изолированные стили в отдельном файле. Использовал бы css модули было бы вообще заебись
2) Настроен линтер
Вердикт: минимум год до джуна
Тащемта, изначально было пол года, но потом увидел create-react-app и поменял мнение.
быстрофикс
>максимум могу настройки какогонить лоадера поправить
Как будто знания, что из себя представляет лоадер не достаточно, что бы считать себя хотя бы минимально шарящим в вебпаке.
добавь горизонтальный скролл к слайдеру
Спасибо большое.
а можно ли как-то тут синтаксис сократить без создания новой переменной?
if (tvoyamamka.hidden) { tvoyamamka.hidden = false }
Чтобы проверить, что оно скрыто.
Такое делается полным новичком за 3-5 подпивасных дней, ты вообще вкурсе что от джуна требуется?
Что?
С преакта
Программирование оно об упрощении разработки всего и вся, а не о написании колес и рытья под капотом.
Любой вопрос о том как собрать банл, поставит ьверсию, зинклюдить лоадер - гуглиться за 5 минут.
Даже представить себе не могу какие такие вы боевые задачи решаете используя самые потаенные и обскурные фичи вебпака.
не писал свой парсер - не мужик
не писал свою базу - не мужик
не писал свой пакет менеджер - не мужик
не сосал у лида - не мужик
Знал гит на уровне pull commit push checkout.
В первый рабочий день попросили поправить коммиты и исправить их авторство. За часик научился гиту.
Не парься особо, выучи основные команды, а остальное по надобности уже в работе быстренько посмотришь и подучишь.
>Даже представить себе не могу какие такие вы боевые задачи решаете используя самые потаенные и обскурные фичи вебпака.
Всё, что касается аутпута вебпака, очень обскурно и потаённо, что там даже гуглить заебёшься. Я вот например наскотылил себе свг спрайтшит, но он получается одним файлом с кучей символов, что не айс для долговременной поддержки. Плюс если захочется прикрутить какие-нибудь темовариации иконок, то ебанёшься их синхронизировать.
Наткнулся на поделие жидбрейнсов, которое вроде как бы позволит свг хранить как файлы в сырцах и упаковывать их в спрайтшит при билде:
https://github.com/JetBrains/svg-sprite-loader
Но там какие-то непонятки с пятым вебпаком, плюс главный разработчик умир:
https://github.com/JetBrains/svg-sprite-loader/issues/470#issuecomment-1055373543
Хотелось бы ещё CSS-модули подрубать в свгшные класснеймы, но это получается нужно писать свой лоадер и парсить xml регуляр очками, что то ещё извращение.
И такие истории постоянно всплывают, когда нужно отойти от стандартного конфига. А если слишком каштомно напердолишь свой конфиг, то потом заебёшься его мигрировать на следующую мажорную версию вебпака.
Ну и в докере всё это дело запускать - отдельный квест.
Докеропроблемы.
Вообще стоит вникать в верстку сейчас? Сам js после питона нормально зашел вроде, может бутстрапа будет достаточно?
Нет, забей.
Уважаемые знатоки как это работает.
btw, как в роутере из экспресса реализовать универсальный роут с рендером какого-то шаблона из вью с переменными из бд. К примеру, это будут страницы пользователей, открытые данные которых будут грузиться с шаблона вьюджиэс. Но такие страницы должны будут иметь свой собственный URL. Тогда как слушать такие роуты одним router.get('/???', middleware)?
Блять ты в роутере можешь параметры передавать, а потом в компоненте их читать. Вот тебе и миллион страниц.
Тащемта добавление nginx, это пара строк кода. А докер знать надо обязательно. Когда лид тебе скажет собери и залей образ в наш реджистри т.к. cicd не работает/отвалился/еще пилится, ты жидко пукнув даже залогиниться в реджистри не сможешь.
То есть, я создаю роут, который слушает все GETы, внутри него делаю логику проверки GETов (их получу из объекта req) - есть ли в бд id == url, и потом рендерю страницу с пользовательскими данными.
В принципе норм.
Но, значит, что страница, построенная аяксом - это по своему происхождению не тоже самое, что страница, полученная через GET запрос?
чувак, ты чё не можешь загуглить что такое параметры и ещё на будущее что такое query string? это отдельные концепции, не надо сову тянуть на глобус
мимо
Я понимаю, что ты тут как рыба в воде, но я не разбираюсь.
>загугли параметры
Параметры функции? Или чего? Нади то, не знаю что. Извини, если грубо, просто жопа горит.
>То есть, я создаю роут, который слушает все GETы, внутри него делаю логику проверки GETов (их получу из объекта req) - есть ли в бд id == url, и потом рендерю страницу с пользовательскими данными.
В контексте SPA роутер получает урл, компонент вытаскивает из него нужные параметры через хук, перекладывает их в запрос на сервер, получает ответ от сервера и датой из ответа наполняет своё состояние.
>Но, значит, что страница, построенная аяксом - это по своему происхождению не тоже самое, что страница, полученная через GET запрос?
Конечно, в этом вся ссуть клиентского рендера.
Но все равно спасибо
Спасибо
cra для безруких долбоебов, которые не могут настроить вебпук под свои нужды и не способны в элементарную архитектуру приложухи
cra маньки, от вас воняет дилетантством
Это хороший отдебаженный инструмент который гадится для 99% случаев. Если переписанный с какой-нибудь статьи костыльный конфиг вебпака добавляет тебе самооценки, то дерзай.
Двачую. Я тоже увидел, что тут один анон всегда спорит, что кря не нужен. И почитал комментарии, там большинство утверждает, что кря писали крутые челики и типа ничего плохо в его использовании нет
Где ты там почитал комментарии? На странице в фейсбуке? Пейсбук запилил CRA для своих нужд и продвигает плохие практики, типа отсутствия границы между девелоперскими и продакшн зависимостями, что вредит к понимаю разработки в целом и менеджера пакетов в частности. Пейсбуку на это похуй, в нём пердолики-олимпиадники работают, так что разберутся. А вкатуну это чистый вред.
> Тащемта добавление nginx, это пара строк кода
Я про это и говорю. В чем смысл пихать 1 строчку в докерфайл для задачи "отдать файл bundle.js"? Показать, какой ты даун?
В бекенде докер используют, потому что иначе твой высер просто не запустить из-за хуевой горы специфических зависимостей, ставить которые себе на машину никто не будет.
>отсутствия границы между девелоперскими и продакшн зависимостями, что вредит к понимаю разработки
Не вредит, ты просто слабоумный
>менеджера пакетов
Какая вообще разница где там пакеты блять лежат? Мы пишем реакт приложение которое будет деплоится на хостинг, и он всегда private, его никогда никогда не будет устанавливать себе в проект
const register = (req, res) => res.send("register user")
В чем косяк?
Запрос так выглядит
http://localhost:5000/api/v1/auth/register.
А так я post запрос в рауте прописывал.
>>50766
Там пишут из-за ошибки в фронте. Но фронт я еще не подключал. В постмане тестирую только
ещё может быть импорт экспорт неправильный?
О боже мой, у программиста опять ничего не работает, вот никогда такого не было и вот опять!
Нахуй не нужен джуну
Когда ты собираешься вкатываться? Ты ведь уже сюда скидывал пачку проектов на оценку.
Прям в server.js
Get запросы отправляет а все post пишет 404.
Притом в консоли браузера почему-то post запросы как get определяет.
GET http://localhost:5000/ddd 404 (Not Found)
https://devblogs.microsoft.com/typescript/announcing-typescript-4-7-beta/#new-file-extensions
Выглядит мертво как-то. И чего серч бар не ебанул?
функции конструкторы мы вызываем так
let obj = new Constructor(arg1, arg2)
где Constructor - уже определенная функция, либо function declaration либо function expression.
Далее, в учебнике говорится, что если кусок кода создает объект, то его можно обернуть в функцию таким образом:
let obj = new function() {
// code here
}
У меня вопрос. Почему синтаксис именно такой? Ведь по идее, мы создаем function expression, который нужно вызвать, тогда бы логичнее было бы вот так
let obj = new (function() {/ code here /})()
Обращаю ваше внимание на скобки вызова в конце выражения.
Я что-то недопонимаю, помогите пожалуйста. По идее же после new должна вызываться уже определенная функция, а как предлагает Кантор, функция просто создается в момент как function expression и она передается в new, что по мне не очень правильно, ведь когда делаем new Constructor(arg1, arg2) мы как бы вызываем эту функцию, а обертка на это не похожа. Простите за сумбур и помогите!
это скобки для аргументов
>Так не пойдет, тут получается new Constructor() - тут присутствует вызов функции.
это отдельная конструкция к вызову функции отношения не имеющая
>Т.е. это отдельный частный случай, то бишь исключение?
это не исключение это отедльная штука
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/Function
Непонятно что тебе непонятно.
Эта конструкция (создание объекта) читается целиком
new ClassName(1, "привет",...); - вызов конструктора с параметрами
new ClassName; - вызов без параметров. В жс нет перегрузки поэтому параметры undefined
Все как везде
Конструктор и есть функция, точнее метод.
>>50684
>там большинство утверждает, что кря писали крутые челики и типа ничего плохо в его использовании нет
>Это хороший
2к зависимостей для готового конфига вебпака. Пиздец, какие же вкатуны дегенераты. История с leftPad и node-ipc ничему не учит. Особенно забавляют высеры про "крутых челиков", которые по факту являются рандомными вкатунами никак не связанными с командой, которая пилит сам реакт
>гадится для 99% случаев
Гадится только для 1% случаев, когда тебе надо запилить демку или проверить гипотезу. А нет, уже не годится, для этого уже намного целесообразнее использовать vite.
Прочитал, так где причина, по которой надо все файлы переименовывать? Или ты только в штаны срать умеешь? .mjs и .mts были еще с 2017
>.mjs и .mts были еще с 2017
Не пизди, тайпсрипт только в этом году начал активно пилить интеграцию в ESM, то что там отдельные поехи в 2017 уже себе переименовывали - абсолютно однохуйственно.
Не съезжай с темы. По какой причине мне придется переименовывать все файлы в проекте? Или засчитываем тебе обсер?
>отдельные поехи в 2017 уже себе переименовывали - абсолютно однохуйственно.
Че ты несешь? Расширение .mjs обозначено в спецификации es-модулей внутри node.js. И да, оно появилось как раз в 2017. mts тоже появился примерно в том же периоде.
https://github.com/nodejs/node-eps/blob/master/002-es-modules.md
Потому что у тебя гарантированно не заработает код простым переключением type в корневом package.json на кодовой базе сложнее хэлловорлда.
Плюс отвалятся тесты, так как тестовые фреймворки не могут в ESM от слова совсем. Они не могли в него даже когда он был всего-лишь пуком бабеля.
>>51177
>Че ты несешь? Расширение .mjs обозначено в спецификации es-модулей внутри node.js.
И чё, от того что его добавили в спецификацию в 2017, означает, что добавление расширений - не ебанутый мув? А модульная система после ESM тоже будет префиксы с вариациями к существующим cjs/mjs/cts/mts добавлять? Что там насчёт jsx/tsx? Дохуя реактокода есть, который был написан не некоем подобии ESM но с рекваирами для динамического импорта, так что и здесь нужны модульные префиксы.
Ну-ка напиши мне псевдокод, как ты собираешь все жс файлы (тайпскрипт инклюдед) проекта в хэш-таблицу где ключ - отностительный путь к файлу от корня проекта. До нодовского ESM и после.
>Потому что у тебя гарантированно не заработает код простым переключением type в корневом package.json на кодовой базе сложнее хэлловорлда.
>Плюс отвалятся тесты, так как тестовые фреймворки не могут в ESM от слова совсем. Они не могли в него даже когда он был всего-лишь пуком бабеля.
Так причем тут переименование файлов то, дебс?
Прежде чем нырнешь с головой в v8, рекомендую ознакомиться с реализацией попроще, даже если она неполная. Возьми https://github.com/nginx/njs к примеру.
proxy: {
'/api': {
target: 'http://localhost:3000',
pathRewrite: { '^/api': '' },
},
Что блять за /api? Как я должен понять, что это за свойство в контексте прокси? С одиночным вариантом просто указываешь нужный URL без передачи объекта, а в случае множественных URL тогда как? Объясните, плз.
В глаза долбишься? Буквально первая ссылка в гугле.
https://www.google.com/search?q=webpack+cors
Сколько нужно настройщиков вебпака чтобы прочитать доки?
Через css-переменные, или через самодельную костыльную магию внутри css-in-js. Ну и олдовый вариантс навешиванием класса на <body> или <html> тоже никуда не ушел.
Сейчас работаю, пишу на Рякте.
Какую версию изучать: хайповую 3ю или со 2 начать, чтобы легаси понимать?
В 3 бойлерплейта совсем мало, сойдешь с ума после реакта
Знающие/фуллстаки, как быстрее вьехать в перечисленные фреймворки и сформулируйте разницу парадигм/паттернов разработочки вышеперечисленного бека и фронта на react/vuejs.
>сформулируйте разницу парадигм/паттернов разработочки вышеперечисленного бека и фронта на react/vuejs.
Клиент-рендер позволяет реализовывать каштомизированный интерфейс, большая часть даты для которого фактически отдаётся бэком из кэша. А через вэбсокеты так и вообще позволяет общаться с браузерным клиентом. Хуй ты такую архитектуру провернёшь чистым серверным рендером.
1) Дешевая и гибкая модульность. У тебя js компонент может быть полностью независимым модулем, который самостоятельно забирает данные с бека, ты можешь его подключить в любое место интерфейса. Например модуль погоды. Для бекенда этого модуля у тебя будет отдельный тонкий контроллер с независимой логикой, которую ты можешь засунуть очевидным образом в независимую транзакцию. В случае классического серверного рендеринга в реализации подобной модульности у тебя вплывут недостатки. Жирные контроллеры с кучей сервисов-модулей. Ты должен решить как мержить все эти данные, чтобы когда у тебя изменится структура данных в модуле, в сотне контроллеров и шаблонов не пришлось переделывать. Много данных которые передаются в шаблон независимо от того отобрадается модуль в данный момент или нет, а это значит лишние запросы к БД. Js же модуль может данные из нескольких мест получить в разное время, в зависимости от условий, ты будешь иметь дело с изолированной простой логикой в каждом запросе.
2) При клиент рендеринге модель поведения хранится на фонтенде., у тебя нет нужды хранить на бекенде состояние интерфейса - показывать модуль погоды или нет, например. На бекенде только бизнес логика. Упрощается реализация stateless бекенда. При классическом серверном рендеринге, начинают выкручивать себе мозги, решая хранить ли это состояние в URL или в сессии (забив на stateless) или чаше всего реализуют какую-то js модель на фронтенде. Опять же для сложных случаях придется обеспечивать модульность этой модели на фронтенде. Можно было сразу с этого начинать, с SPA.
3) Легкий переход на микросервисы для SPA. Это очевидно.
Насколько это сложно реализовать и что почитать? Сам не программист, но в школке что-то тыкал в паскале и сам джаваскрипт немного трогал.
https://loldodgegame.com/skillshot/
Перехватываешь фетч с результатом игры, сохраняешь его в джейсон, а там его как угодно воротишь.
как-то сделал моб. приложение с TCP сокетом на серверной части.
и недавно захотел сделать веб версию этого приложения. уже запилил фронт часть, и дойдя до бэка, меня ждало разочарование, что веб поддерживает онли WS.
так вот, можно ли как-то через жс коннектиться к tcp? а-то переписывать сервак как-то не очень хочется
Только прослойку писать на сервере, которая будет трансформировать ws для сокета и обратно.
function f() {
console.log(this);
}
f();
function decorated(func) {
return function () {
setTimeout(func, 1000);
};
}
let g = decorated(f);
g();
первый аутпут логично дает андефайнед в стрикт моде. Но второй вызов, дает мне window. Все дело в том, что при вызове функции func в setTimeout идет this от window.setTimeout. Моя логика верная?
Так, погоди, я не так понял. Вот есть функция:
function f() {
console.log(this);
}
Ее вызов в стрикт режиме даст андефайнед.
Но если я сделаю так:
setTimeout(f, 100);
Я увижу window. Почему это так?
ух дристануо, сам-то понял?
Отрой стандарт и прочитай, там черным по белому написано.
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
Почему я должен писать события, допустим, @click в кавычках будто это просто строка?
Что за хуйня, как вы этим пользуетесь?
реактомакака
Про fetch тоже молчу. Я не могу просто написать функцию fetch() в <script> и вызывать её на @click, потому что появляется неведомая ошибка, которая крашит нахуй приложение.
Ты какую-то херню написал. Чем кавычки хуже фигурных скобок? Cинтаксис вуя в шаблонах является валидным html. Ты можешь vuejs c "живой" разметкой работать
хуево, конечно, ну ладно
>не могу получить доступ к event инпута прям из строки @change
Чивоблять.вебм
>@change="something($event)"
>должен писать события, допустим, @click в кавычках
Чивоблять2.вебм
>@change=method
>The HTML standard does not require quotes around attribute values.
>However, W3C recommends quotes in HTML, and demands quotes for stricter document types like XHTML.
Поправляйся скорее, братан, и переходи на нормальные туториалы.
> @change="something($event)"
Нихуя (см. пик)
> Чивоблять2.вебм
Прав, сорян, я долбоеб.
> Поправляйся скорее, братан, и переходи на нормальные туториалы.
Читаю офф. доку по 3 вью.
>не могу получить доступ к event
>Cannot read properties of undefined
>reading 'log'
>доступ к event
>log
Все-таки поправляйся.
Ты ведь в курсе, что обработчиками событий должны быть функции? Синтаксис объявления функций помнишь?
Вангую, что он и с фетчем точно также проебался. Неведомая ошибка у него, вообще охуеть.
Работать должно, но лично я бы так писать не стал, слишком многословно.
data сделать стрелкой, асинк аваит вместо тхен в фетч, делитДата заинлайнить, задание со зведочкой - зделоть через композишн апи, будет еще короче
То, что в вебшторме поддерживается из коробки в одну кнопку, тут или вообще блять не поддерживается или с колоссальным пердолингом.
Банальный пример: выбор шрифта. Где блять селект из установленных в системе шрифтов?
И так везде нахуй. Перемещаться по последним edit location'ам невозможно, только к самому последнему.
При изменении навигации стрелок на CamelCase, они работают только в редакторе, но не в полях редактора типа инпута поиска или этого обосраного окна с настройками.
Поиск говно, все говно.
А еще, этот кал умудряется быть медленнее вебшторма даже при открытии простых файлов типа логов.
Число фейлов этого ублюдства просто не поддается подсчету. Будто вернулся на NetBeans в 2007 год.
А что ты хотел от майкрософт, дружок? У них единственная цель существования - дальнейшая экспансия компании, на удобства пользователей им по-е-бать, нет просто для них такой вещи в принципе
Ну мне они подписку до октября продлили. Хотя я почти год на пиратском шторме сидел, созрел для покупки.
>Почему я должен я не могу получить доступ к event инпута прям из строки @change?
>реактомакака
Как же ты себе насрал в трусы. Это ты в реакте не можешь доступ к ивенту нормальным логичным способом получить, вместо этого тебе реакт выплевывает в твои коллбеки синтетеические эвенты.
Кал. Энтерпрайз тир для рякта и вуя сейчас онли вебпак
Что-нибудь, связанное с редактированием большого количества полей. Например создай табличку в БД на ~20 столбцов и сделай гуй для её редактирования. Ну и простой бэк на ноде или на чем хочешь.
Я посмотрел, там вроде фетч никакой не отправляется, да и игра в оффлайне тоже работает, так что эти результаты никуда не отправляются как я понимаю
в localstorage тоже не вижу, в Indexed db вроде тоже ничего не открывается, можешь глянуть?
Нет, сам ковыряйся. Сомневаюсь, что она фетчи не отправляет, так как лидерборды без них - никак. А чтобы фетч отправить, надо данные как-то сохрнаить.
Сколько нужно времени для вката? Знаю хтмл, ксс сносно. Сеичас на рсскул прохожу курс жс и понимаю что без гугла могу писать только простые функции. Без душноты ответы ок.
https://learn.javascript.ru/
https://developer.mozilla.org/ru/docs/Web/JavaScript
можно зарегаться на киберфоруме или стековерфлоу(но надо уметь в англ)
Зависит от того, как ты работаешь с датами с сервером. Но в любом счёте тебе придётся отдельный компонент писать для этого "инпута". И отдельный компонент для отображения дат. И отдельный модуль для работы с датами.
Я датами исключительно как ISO-строками с таймзонами оперирую и это сразу срубает жирный пласт логики для сериализации между редукс-стором/клиентом/сервером/бд.
>>52840
HTMLFormElement.reset()
Допустим есть div с фиксированными параметрами,и он пустой или есть дефолтное значение.
По ходу выполнения там что то изменяется.И что бы можно было сбросить до дефолта
>Допустим есть div с фиксированными параметрами,и он пустой или есть дефолтное значение.
Ты там высрал див заместо инпута и даже не знаешь, какое у него должно быть дефолтное значение? В таких костылях нет никаких бест практис, дефолтное значение определяется как писателю компонента взбредёт. Можешь хоть ошибку кидать для этого и обрабатывать её.
throw new Error("reset")
})
А судьи ли? Я вот например нихуя о них не знаю, на основании чего они имеют право кого-то судить в этом мире. Ты знаешь?
> А что ты хотел от майкрософт, дружок?
Так какого хуя это дерьмо форсят все, кому не лень? Я даже слышал, что его в компаниях используют.
Кучи положительных отзывов.
У же меня возникло стойкое ощущение, что этим людям или платят за рекламу этого кала или они просто скрипт-кидди, которые дальше хелловорда нечего не программировали.
Бесплатно лучше ничего нет. Правда в чем проблема оплачивать сотрудникам вебшторм это вопрос, ведь зарплаты-то у людей не по 20-30к
Ну так найди этот <p> и textContent сделай равным 0. В чем проблема?
Откуда в oninput-е оказывается переменная age с актуальными данными? Пытался нагуглить, но ничего не нашел. Причем оно работает только при инлайне. Если определять для формы oninput в отдельном JS-блоке, то начинает ругаться, что переменной age не определено.
<form name="myForm" oninput="console.log(age.value);">
<input type="number" name="age" value="10">
</form>
И как я понял, любой готовый набор ui-компонентов используется ТОЛЬКО в случае, если нужно быстро накидать proof of concept ну или когда на дизайн вообще похуй и изменять его не планируется.
Во всех остальных случаях начинается лютый пердолинг, при КАСТОМИЗАЦИИ всей этой хуйни.
Стула получается только 2:
1) Быстро кидать проект с дефолтным невырвиглазным дизайном с помощью готовых стилизованных компонентов фреймворка
2) Писать ui-компоненты самотоятельно с нуля.
То есть, как должна выглядеть разработка интерфейса во втором случае:
- дизайнер рисует дизайн
- далее создается библиотека ui-компонентов
- и только потом их используют.
То есть блять, разница в том, что дизайн не просто перегоняется в условный css-файлик или еще какую хуйню, а создаются КОМПОНЕНТЫ для кнопок, инпутов, таблиц, и прочей хуйни. Использование аттрибута className в коде за пределами ui-компонентов должно быть сведено к минимуму.
Так?
Вариантов все еще три и все они используются одновременно
https://developer.mozilla.org/en-US/docs/Web/API/Document/forms#named_form_access
При инлайне работает, потому что там существует контекст формы с таким инпутом.
Боюсь кодить потому что кажется не справлюсь с задачей, однако все равно справляюсь. И это повторяется перед каждой новой задачей.
вкатун
У меня помимо этого есть страх, что я переоценю свои возможности и сделаю 70% задачи, застопорившись где-то сильно
все решения всех проблем уже есть в интернете + можно попросить помощи здесь, в тг, на работе
чего бояться можно? тебе 18 лет? хуею бля
в чатах телеграма
Git modules.
Ну в общем скрипт работает, только если его запускать в консоли браузера. Я пробовал делать как в этой статье, но он просто не подрубается. Можешь объяснить что нет пожалуста? :(
Ты забыл сказать, под какой браузер расширение. Потом гуглишь документацию для этого браузера и там он должен предоставить расширению способ узнать, загрузилась ли страница или нет.
Вот где бы почитать про это. Про document.formName.elements я знаю, но вот инфы о том, как это становится доступно в инлайне напрямую - чет нигде не нахожу.
Все работает без всяких инлайнов дурачок.
<form id="form">
<input type="" name="huy" value="pizda">
</form>
<script type="text/javascript">
let form = document.getElementById("form");
form.huy.addEventListener("input", ()=>{
alert(form.huy.value);
})
</script>
Это копия, сохраненная 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.