Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2345096 У сервера нет ДОМовских заёбов с контекстом методов, так что классы на ноде намного лучше заходят. Плюс версия ноды постояная в контексте кода, так что не надо ебаться с разношёрстной поддержкой классов между средами. Классы надо использовать тогда, когда тебе нужно очевидные инстансы со своей логикой создавать. Симптом инстансов - когда у тебя функции в модуле пропукивают между собой референс на один и тот же объект и дёргают его поля. Это прямо каноничная сигнатура метода класса. В принципе можно не заморачиваться с классами/фунциями и всё хуярить на процедурках, а модули конвертировать в классы только при появлении симптома.
Сап, аноны, на связи горе-вкатывальщик. Решил разобрать чужой код, и столкнулся с одной проблемой, при вызове факториал 10 получается 3628800, т.е. выполняется result * 9 хотя по условию i <= 10. Почему так?
Кароче 4 гига оперативки не хватает на нормальное функционирование ютуба + вскода. Хотя мне винда и по 8 гигов выгружает. Хз на линуксе хватило бы или нет
Сап. Подскажите плз дауну. Вот у меня есть список постов и на каждый пост можно ответить, типа как на двоще. Каждый пост - это компонент вьюжс. Сосотоит из поста и формы постинга, которая показывается, если переменная в этом компоненте тру. Переменная меняется при нажатии на кнопку ответить. Форма в каждом компоненте, потому что я хочу чтоб форма под постом показывалась. Но, как сделать так чтобы одновременно только одна форма была открыта? То есть, если я открываю форму в одном компоненте, то она закрывается в другом?
>>2345215 >Форма в каждом компоненте, потому что я хочу чтоб форма под постом показывалась
Вьюдауны еще не научились динамически менять локацию ноды.
Ахуительные истории короче. Им изобретали фреймворки, потому что ручками обновлять дом это слишком тяжело и большой риск допустить деоптимизации. По итогу они пихают по форме в каждый комментарий. Только выиграли.
>>2345228 >По итогу они пихают по форме в каждый комментарий. Только выиграли А ты уверен, что там форма всегда рендерится, фуфел? Наверное, по твоему мнению через жиквару через строки вставлять намного удобнее
>>2345235 >Наверное, по твоему мнению через жиквару через строки вставлять намного удобнее Вьюдаун не палится. На ванилле можно спокойно перекидывать любой элемент в доме, с сохранением референса на этот элемент.
>>2345228 Ну так она разве рендерится, если переменная не тру? Или я чет не понимаю? Я ещё планировал метод отправки формы этой в компоненте поста прописать. Это типа тоже выйдет, что я один и тот же метод n раз напишу? И так не надо делать? Но вроде логично типа. >>2345227 А, ну попробую мб. Я прост думал, сделать чтоб компонент типа эмиттил в родительский компонент какую-то команду, чтоб все формы позакрывались у компонентов постов, но чет неосилил пока.
>>2345240 >Ну так она разве рендерится, если переменная не тру? Какая нахуй разница тру или не тру. У тебя в каждом компоненте рендерится НОВАЯ форма. Новый дом узел. Каждый раз. На 100 комментариев ты создаешь 100 нод формы.
Сап, программисты. Есть слайдер и к нему 2 инпута с именами from и to. В инпуте можно менять значения, но нужно сделать валидацию через yup. В принципе я сделал, но остаётся проблема в том, что у меня ошибка общая, а надо, чтобы она относилась именно к тому инпуту, где ошибка и произошла. Также юзаю formik со всем этим делом. Код на пикче, функция validate вызывается на onBlur инпута. Я вообще хуй знает как это сделать.
>>2345245 Ну так и чё я не понимаю? Что значит "новая"? Я нажимаю на кнопку, появляется элемент с формой. Не нажимаю - не появляется. Чем эта форма будет отличаться от той, что будет динамически вставлена? Один хрен одновременно на странице будет одна форма (ну если я сейчас пофикшу это). Когда кнопка не нажата в верстке показывается <--v-if--> вместо элемента формы, то есть её же нет типа.
>>2345250 Ну я вообще жс не изучал особо, прост сайтик свой делаю. Я не понимаю, в чем разница между теми штуками у тебя на пике. Но лан, подумаю, как сделать чтоб одна форма была. Прост мне показалось логичным что всё, что связано с этим компонентом, будет внутри этого компонента. У меня же каждый комментарий это как отдельный блог типа (не как на даче, а типа как в ВК там или на Ютубе)
>>2345237 Что, если ему потом понадобится менять динамически контент этого элемента в зависимости от условий? Императивно у каждого элемента менять пропы? Хватит дурачком прикидываться.
>>2345237 >Через какие нахуй строки, долбоёб Через которые ты контент на странице меняешь, попущ. >Уверен. Иди и ты проверь, теперь. Ты обосрался, долбоебина. Не рендрится от слова совсем, ни в реакте, ни во вью, ни в ангуляре
>>2345261 Ты после того как пообедаешь посуду всю выбрасываешь, а перед новой трапезой новую покупаешь? Это же по твоему логично должно быть - еда же каждый раз новая. Нет разве?
>>2345245 >На 100 комментариев ты создаешь 100 нод формы. Ты говна навернул, иди гитхаб открой и посмотри как рендеринг во вью работает, хватит срать в штанишки. >>2345250 А ты не понимаешь разницы между вставкой/перемещением элемента в дереве и заменой уже существующего, веб макака?
>>2345272 >Что, если ему потом понадобится менять динамически контент этого элемента в зависимости от условий? Императивно у каждого элемента менять пропы? Хватит дурачком прикидываться. Если бы да кабы. У этих плавающих форм очень слабая привязка к каким-либо элементам в списке, в который они засовываются. А уж в контексте имиджборды связки вообще нет, так как даже ответы - всего-лишь строчные ссылки. Так что хуй знает про какие пропы ты тут затираешь.
>>2345276 Ты тупоё добоёб. Ни вью, ни реакт, ни ангуляр не перемещают форму по дереву. Они создатут сто форм на сто комментариев. И будут тебе их показывать и скрывать. Но это будут сто разных блядь форм. Ты понимаешь это или нет?
>>2345290 Ну то есть я правильно понимаю, что если ты пишешь у какого-то элемента v-if, то этот элемент энивей есть, просто не показывается? Даже если в коде страницы его нет, то он где-то там сидит и занимет память? Я рил не знаю.
>>2345292 Если он не занимает там где-то память (не закеширован), после того как был отрендерен хотя бы раз, то все еще хуже. Ты будешь создавать форму заново КАЖДЫЙ раз. С тем же успехом можешь заново ререндерить всю страницу на каждое движение мыши, что в этом плохого?
>>2345296 Ну прям там одно поле с кнопкой дохуя памяти занимают? Просто ты говоришь, как я понимаю, что даже если кнопка ответа не нажата, то вью энивей для каждого поста займет память для формы? Ну типа думаю не страшно новую форму нарисовать каждый раз, когда ты отвечаешь на пост. Но если он рисует форму для вообще всех постов на странице, на которые ты и не собирался отвечать, то тогда да, не очень наверное.
>>2345280 >Они создатут сто форм на сто комментариев. Они создают 100 форм только если ты написал в коде, что надо создать 100 форм. Если ты напишешь создать одну форму к активной карточке поста, то он создаст одну форму.
Ух епта, ну я сделал, оно работает! Ну конечно наверное не круто.
Я сделал как мне тут один анон советовал: в родительском компоненте есть переменная commentingPostId, которая передается в каждый компонент поста. В компоненте поста сравнивается id поста с переданным commentingPostId, если совпадает, то показывается форма. При нажатии на кнопку ответить, срабатывает метод, который эмитит id поста. В родительском элементе при эмите срабатывает метод, который устанавливает commentingPostId на тот id, который ему заэмитил компонент.
>>2345328 В том, что это костыльное подобие плавающей формы. Тащемта её можно "по-настоящему" реализовать и во фреймворках, но для этого придётся создавать свою систему оверлея или пихать императивный код с рефами в компонент. С отдельным стором кстати намного проще, так как императивщину можно спрятать за тханком и реф хранить в полуглобальном состоянии.
>>2345342 Не ну я знаю, что это такое, просто подумал, что наверное не круто хранить типа в общем хранилище информацию, относящуюся только к одной странице. Или норм? наверное да, надо было так сделать, лел.
подскажите пожалуйста есть массив ['a', 'ab', 'abc', 'babc'] в нем требуется для строки 'abcd' найти элемент, который больше всего входит в указанную строку с начала строки ('abc') как это сделать?
>>2345353 >как это сделать? Прочитать оппост. >Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю».
>>2345543 Так. ну этот чел на видосе говорит обратное. Если дисплей инишл выставить, то выдаст именно инлайновым. Или получается у дисплея по дефолту инишл это инлайн, и дисплей всё в инлайн пытается перевести? ясн https://youtu.be/N8tFrMZp_wA?t=114
Я если честно не понимаю, если у дисплея по дефолту всё инлайновое, тогда что говорит диву быть по дефолту дисплей блок? Разве это не бразуер задаёт настройки?
И есть кнопка сабмит <button type="submit" class="button" button id="button">Submit</button>
Данные Array показываются прям на этой же странице (можно на другой, не суть важно). Т.е. у меня над <!DOCTYPE html> висит
<?php print_r($_POST); ?> Так вот, нужно чтобы по нажатию кнопки форма не сразу отправлялась (срабатывала) а например 7 секунд задержка была. Уже пробую 10 метод со стаковерфлов и ничего не срабатывает. Как можно сделать задержку?
На ней попробовал решение 6-10 из стаковер - не работаеют. Кнопки подставляю как у них в примерах. У тебя в примерах тоже даже твои айдишники подставлял. Наверное я рукожоп какой-то и в упор чего-то не вижу.
>>2345692 >Кнопки подставляю как у них в примерах. У тебя в примерах тоже даже твои айдишники подставлял. Наверное я рукожоп какой-то и в упор чего-то не вижу. это что такое? >type="submit"
>>2345692 > У тебя в примерах тоже даже твои айдишники подставлял. Наверное я рукожоп какой-то и в упор чего-то не вижу. Ну так кидай полностью весь код, что ты подставил. мимо
>>2345092 (OP) Так в чём актуальность замыкания в 2022? Нахуй это на собесах спрашивают? Что бы что? Что бы узнать понимает ли человек, что лет в скобочках не видно за скобочками? Так спрашивали бы сразу про области видимости. Или я чего-то не понимаю?
Каждый собес спрашивают про тесты, но я за последнии 2 года их ниразу не писал, просто потому что никто на это бюджет не выделяет. При этом отдел тестирования постоянно перегружен и не успевает.
>>2345526 по какому дефолту, в спеке написано, что блочный, значит браузер так его и должен отображать и прописывает это в дефолтных стилях. То что у пропсы значение inline не значит ничего.
>>2345910 Так это чистый ритуализм. Считай TDD - коммунизм позднего совка. Никто в него не верит и не практикует, но если ты не хочешь быть изгоем-опущем, то ты должен говорить о важности тестов и какое же заебатое это TDD. Да и кабанчикам в принципе похуй на тесты, им проще загонять разработчиков на сверхурочные после деплоя в пятницу через раз, чем продлевать и усложнять процесс всей разработ очки.
Какие значения лучше использовать для сброса переменных? Читал, что строки лучше сбрасывать в "" а не null, потому что v8 там лучше работает и не пакует\распаковывает значения туда-сюда. А что делать с массивами, объектами и другими типами?
>>2345942 Ну типо у тебя есть какая-то формочка с строками, чекбоксами и т.д. и кнопка очистить форму, какие значения полей лучше выставлять после клика на очистку формы?
Есть ряд элементов. Нужно проверить, что у какого-либо из них есть нужный класс. Нашёл все элементы через querySelectorAll и превртил результат в массив. После попробовал это:
Привет, подкиньте пожалуйста интересных вопросов на Frontend интервью, что-то аналогичное следующим: - Как реализовать "тёмную тему" на выбранном фреймворке (Angular, React, Vue). - Как отследить открытие веб-приложения в новой вкладке и автоматически запретить выполнение кода в предыдущей. - Как отправлять HTTP запрос не на каждый key stroke, а только через N миллисекунд после ввода последнего символа.
>>2346301 "Добавляет новый атрибут или изменяет значение существующего атрибута у выбранного элемента." так toggle же всегда для тем использовался. во-вторых, как ты отслеживаешь другие разделы сайта?
Как нпм заставить видеть глобально установленные пакеты? У меня сетап на 10м шиндошсе, в котором я сижу под пользовательской учёткой, а консоль запускаю из под рута (сервер иначе не запускается). Поставил недавно ярн и мне консоль возращает `bash: yarn: command no found`.
Зайки. Выбирал выбирал язык программирования. выбрал js и фронт. Но фронт мне не нраица. Сложно потом будет на бек перейти или вообще в геймдев, мобильную разработку уйти?
Мне нужна поддержка старого говна, типо ie и там полифилов подтягивается слишком много. Хочу 2 версии клиента собрать и подключать по необходимости.
Как в одном конфиге вебпака сделать так, что бы генерировалась 2 бандла с разными настройками бабеля? Или придется 2 разных конфига делать и по очереди выполнять?
>>2346630 Создай отдельный энтрипонит для говна, обмазанного полифилами и пихай его с аттрибутом nomodule в страницу. А основной бандл с type="module". Но там нужно больше пердолиться, скорее всего два конфига собирать придётся, так как нужно будет транспилировать слишком свежее говно в node_modules тоже. Тут есть общее описание, как это реализовывать: https://philipwalton.com/articles/deploying-es2015-code-in-production-today/ Это очень старый гайд, так что не рекомендую ему следовать буквально. Плюс все плагины для вебпака, которые якобы могли это дело автоматизировать, не обновлялись года 2 минимум.
>>2346667 >А бабель мне гарантирует что весь код точно будет переведен на старый стандарт? Нет. >как он реализует динамический импорт? Никак. Динамический импорт реализуется средствами вебпака или вита. Диинамический импорт нестандартных зависимостей (напр. css) реализуется через соответствующий лоадер и/или плагин.
>>2346667 >как он реализует динамический импорт? Через добавление <script src> на страницу и навешивание на события load и error resolve и reject параметры промиса. Можно поменять, если есть необходимость.
>>2346630 >Как в одном конфиге вебпака сделать так, что бы генерировалась 2 бандла с разными настройками бабеля? >Или придется 2 разных конфига делать и по очереди выполнять? this. //webpack.config.js module.exports = [config1, config2]
>>2346741 Так у меня разные цсс модули. у меня 2 разные цсс модуля и они не импортят друг у друга. там где я их вызываю по всей видимости вызываются 2 вот этих цсс модуля ( так как прописаны импорты в модуле компонентов) В общем надо просто следить за наименованиями.
>>2346799 ты че бредишь, сука? Какой рантайм вебпак на клиенте? То что он тебе сгенерировал код по подгрузке модуля не значит, что он у тебя вебкап работает в рантайме.
>>2346844 А как насчёт того, что инкапсуляция стилей и нормальный шаблонизатор есть в Angular, Vue, Svelte, а в React нет? Что ты скажешь по этому поводу? А? А? А?
>>2346828 >А почему в Реакте нету инкапсуляции стилей? Ну поставь scoped jsx, будет тебе инкапсуляция как в вуе. >А когда в реакте появится HTML шаблонизатор? Как только вуй сможет в нативное мобильное прилоежние
>>2346499 А зачем выбрал, если не нравится... Да, бек сложнее, но там не такой разброс по технологиям, несколько актуальных стеков, общие алгоритмы, СУБД, со знаниями которых можно потом переехать хоть в блокчейн. Смысл учить фронт и переучиваться на бек, если можно сразу бек?
>>2346827 >То что он тебе сгенерировал код по подгрузке модуля не значит, что он у тебя вебкап работает в рантайме. >То, что ты вставил код реакта в бандл не означает, что у тебя реакт работает в рантайме Сам понял что высрал?
>>2346850 >инкапсуляция стилей В чём отличе от css-модулей? >нормальный шаблонизатор Дефайн "нормальный". Из нормальных шаблонизаторов на память приходит только pug, так как это единственный шаблонизатор, который упрощает чтение хтмл простыней, а не усложняет. Но он как бы умир, да и работал тольно на нодовских серверах.
>>2346879 >охуеват от количества бойлерплейта в этом вашем реакте >Блеа, мне надо было всего-то в стор добавить В реакте нет стора, ты видимо что-то перепутал.
>>2346876 И что по твоему это значит? Где ты видишь место, где вебпак добавляет в твой бандл подгрузку своих библиотек, а не тех, которые ты сам указал при сборке как динамические модули?
>>2346963 RTE - это Runtime Environment. Именно то, что и называется пантаймом когда под рантаймом подразумевают "что" а не "когда" Например, окружение браузера и ноды и апи которые они предосиавляют - это рантайм. Рантацм это то, без чего твой код не работает.
У вебпака тоже есть рантайм, который он встраивает в твой код.
>>2346976 Чел, бэкенд это гигантская сфера, по сравнению в которой фрон - это баловство в песочнице. То, что ты поднял сервачок на ноде, сделал строчку в базе или аутентификацию по ютуб ролику не делант тнбя бэком даже близко.
>>2347517 >Это словосочетание само по себе уже стало мемом. Пиши, что реакто-макака, но есть немного опыта с нодой. Ладно спасибо. Просто вот мне показалось как-то тупо пользоваться файрбесом вместо бека, поэтому заинтересовал вопрос. Надеюсь, не зря
>>2347530 >Просто вот мне показалось как-то тупо пользоваться файрбесом вместо бека, поэтому заинтересовал вопрос. Каждый инструмент под свою задачу. Иногда чистый фронт без базы это ОК, иногда в качестве бэкэнда хватит какого-то firebase/DynamoDB на AWS, а иногда нужен нетфликс из сотни слабосвязанных горизонтально масштабируемых сервисов.
>>2347509 >а rps вообще от меня зависит или от хостинга? И от того и от другого. На небольших проектов мало кто будет заморачиваться с оптимизацией, скорее всего просто закинут ядер и гигабайтов оперативы на хост, а вот на больших, когда подобное закидывание будет стоить овердохуя денег отдается больший приоритет оптимизациям.
>>2347530 Однозначно не зря. Небольшое понимание бэка очень полезно, и стоит указать это в резюме. Вполне возможно, что ты попадёшь в команду, где придётся немного писать на ноде. Просто это ещё не делает тебя фуллстеком.
Чисто по своему опыту, я бы порекомендовал сфокусироваться пока на фронте, и когда будешь чувствовать себя уверенно (и это будет подкрепленно твоими успехами в реальным проектах), начинать смотреть в сторону бэка.
Бутстрап для рачил? Пишу тут аппликуху на реакте, но вёрстку не знаю. Писал тупо на дефолтных хтмл контролах без css. Накатил бутстрап, с полтычка сразу все заебись красиво стало, можно даже людям показывать. Бутстрап помогает делать фронт тем, кто настолько тупой, что не может верстать сам, типа как я. Или же это норм тема и его используют в коммерческих SPA?
Вы в работе вообще используете классы? Чет за 2 года фронта на реакте ниразу их не видел в проектах, все в сагах ебашат логику и все. Максимум там что-то общее в отдельную функцию выносят.
>>2347883 >Вы в работе вообще используете классы? yes >Чет за 2 года фронта на реакте ниразу их не видел в проектах, все в сагах ебашат логику и все. Максимум там что-то общее в отдельную функцию выносят. Если твое понятие классов за 2 года работы ограничилось только классовыми компонентами в реакте, то у меня для тебя плохие нвоости
>>2347963 >классовые компоненты тоже нигде не используются уже Ты скозал? ErrorBoundary как первое, что пришло в голову. Кстати, а ты знал, что js это не обязательно реакт? Например, ты можешь ты можешь свои компоненты создать на ванильном жс через классы и только через них. И, учитывая твои высеры, они будут работать быстрее чем твой говнокод с сотнями ререндеров на реакте. >Работаю в банке. >Какие у тебя проекты? А я работаю в телекоме на что это вообще влияет? Очевидно, что ты в своем банке только формы шлепал никак не разиваясь.
>>2345092 (OP) Аноны, которые работают или считают у них довольно чистый код, подскажите советом.
Пишу сайт для лаборатории. Сделал отдельный компонент для шаблонных текстов ( это где сверху заголовок, внизу паста, мой 3 пик) и туда подавать в пропсы текст. Но это получается мне придется засирать текстом мой главный компонент App. Плюс, надо как-то весь текст распарсить. В данном случае тогда лучше избежать компонентного подхода?
>>2348508 Хотя я тут подумал, можно для каждого текста свой компонент создать, где там текст уже будет оформленный и его погружать в темплейт. Вроде норм идея?
>>2348508 >Сделал отдельный компонент для шаблонных текстов ( это где сверху заголовок, внизу паста, мой 3 пик) и туда подавать в пропсы текст. Но это получается мне придется засирать текстом мой главный компонент App. Что ты блять несешь? Откуда у тебя этот текст вообще берётся?
>>2348514 >то ты блять несешь? Откуда у тебя этот текст вообще берётся? Наверное неправильно выразился, не шаблонный текст, а они в одном стиле все оформлены, оранжевая шапка с заголовком, внизу текст на бежевом фоне, как на моём 3 пике. Текст я переписываю с 1 и 2 пиков
>>2348515 Куда ты его переписываешь? Создавай компонент, получающий текст для заголовка и children в пропсах. Потом для каждой страницы создавай компонент, который заполняет шаблонный компонент, и экспортируй его. App у тебя будет эти компоненты пропукивать через роутер, на передавай никакх пропсов в них.
Как переключаться между неймспейсами в socket io? У них в доках написано, что вот так: let odin = io.of("/odin") let dva = io.of("/dva") И потом можно odin.on(...) dva.on(...) Но по факту оно пишет, что у io нет метода of. Его реально там нет, я проверял. И как быть нахуй? Мне с нуля новую инстанцию сокета делать, под каждый неймспейс?
Пишу бекенд (блог). Хочу попробовать реакт, правильно ли я понимаю, что реакт это обязательно будет SPA? Просто я думаю для блога SPA это лишняя хуйня. Тогда его нужно с чем то комбинировать
>>2348547 Реакт необязательно SPA, но свой серверный рендер реактокомпонентов тебе придётся пердолить самому, особенно если сервачок не на ноде. Или добавь в своей стэк сервачок на NextJS, там как раз хелловорлдный блог в примерах. Ну или свяжись со мной в телеге https://t.me/gabengar могу я фронт попердолить.
>>2348568 Спасибо, да это не коммерция, я как бы учусь и делаю типа пет-проект. Бек у меня на Django. Читал, что можно базовый шаблон можно отдавать через бек сервер, собирая фронт вебпаком. Но мне хочется сделать как 2 независимых приложения. Хз,правильно ли это. Но то что я понял, поверхностно пробежавшись по тутору реакта - это что он заточен под SPA. Думаю он для блога нахуй не нужен. Например страницу логина, профиля хотелось бы отдельно грузить. Поможет ли мне здесь NextJS + React router dom?
>>2348575 >Но то что я понял, поверхностно пробежавшись по тутору реакта - это что он заточен под SPA. Думаю он для блога нахуй не нужен. "Заточен" он может и под SPA, но его пихают и в одностраничники. >Поможет ли мне здесь NextJS + React router dom? Некстжс - отдельный сервер, со всеми вытекающими. Его киллерфича - он может билдить статику с данных из БД, а если у тебя совсем хайлоад - то делать это инкрементно в рантайме.
Сколько же в жиэс всякого тулинга, пиздец просто... Тулинг в пхп: менеджер пакетов composer. Тулинг в жс: менеджер пакетов npm (и ещё несколько), надстройка над языком typescript, бандлеры, препроцессоры css, минификаторы js и css, вырезатели неиспользуемых js и css, полифилы для js, hot-reload сервера и ещё 100500 видов хуйни.
>>2348601 > 10 шаблонизаторов у пыхи Да это дерьмо для рачил. Все нормальные люди используют сам php как шаблонизатор, что делается в каждом популярном фреймворке. Я уж молчу про то, что уже де-факто сервер давно ничего кроме жсонов не выдает и никакие шаблонизаторы там нахуй не нужны.
>>2348515 > Текст я переписываю с 1 и 2 пиков Какую задачу тебе вообще поставили? >>2348508 > Пишу сайт для лаборатории Что значит "сайт"? Его будут использовать как средство публикации новых статей? Или ты просто переписываешь содержание стенгазеты в статические страницы? В первом случае требуется нормальная БД, где будут храниться тексты в каком-либо одинаковом формате и админка с авторизацией. Во втором - просто переписываешь текст с бумажки в статические страницы, раз уж интерактивности не будет. В таком случае текст будет прямо в хтмл потому что с вероятностью 99% никто этот "сайт" больше никогда трогать не будет
>>2348543 Блядь лол, так и join нету. Вообще нихуя нету, половины функционала нет нахуй. А что случилось-то блять? Это я ебанутый и нихуя не понимаю, или у них действительно все переделано/отвалилось нахуй? Кто-нибудь может прямо сейчас проверить, работает ли клиентская часть socket.io? Просто две строчки кода.
>>2348633 Так, с неймспейсами разобрался, действительно все переделано, как будто до этого хуево работало. Как join то теперь делать, нихуя не понятно.
>>2348638 Ай ладно все я разобрался. Просто охуенно каловая документация, которая путает пользователя. Надо было не тратить время на чтение этого говна, а сразу api смотреть.
Как из коллбэка вернуть что-нибудь в глобальное пространство?
Делаю запрос в бд, но результат застрял внутри колбэка, консоль логом выводится нормально только внутри колбека, ретёрн возвращает КУДА ОН БЛЯДЬ ВОЗВРАЩАЕТ
>>2348606 >Я уж молчу про то, что уже де-факто сервер давно ничего кроме жсонов не выдает Ну да, серваки сгрузили мозгоёбскую работу по превращению контекста запроса в хтмл, и внезапно большая часть проблем с тулингом отпала. Но виноват конечно же оверенжинеред фронт.
>>2348698 > Как из коллбэка вернуть что-нибудь в глобальное пространство? Promise > КУДА ОН БЛЯДЬ ВОЗВРАЩАЕТ В коллбек. С вероятностью 99% потребителю коллбека абсолютно похуй че ты там в нем возвращаешь. Его дело лишь вызвать твой коллбек и передать в него результат.
>>2348603 Да >>2348629 Задачу поставили просто создать сайт для лаборатории где будет возможность добавлять новые публикации, добавить админку, также менять язык сайта. Я ведь по идее смогу потом спокойно подключить через нод жс какую-нибудь БД к реакту без проблем, но этим раньше не занимался Я пока в jsx переписываю, а потом для раздела подумаю как добавить бд. Вопрос был просто в оформлении, как грамотно сделать, ну в общем-то я думаю нормально всё оформил. 1. Есть компонент куда текст вставлять 2. Есть компонент где этот текст отформатирован. 3. Просто засовываю его
а в индекс js просто маршрутизацию запихнул.
Мне просто хочется понять как в реальных проектах оформляют или это не сильно важно, на работе объяснят че как делать
У меня есть панель одна, у меня есть панель другая.
Как функцией из компонента одной панели, поменять статы другой панели?
Создавать в родителе панелек стейты и парелелльно скидывать хендлеры звучит как говно. На ванильномс жсе это было бы проще потому что можно было бы напрямую менять статы. Ну или можно было бы использовать отдельный объект-класс-хранилище ивентов, медиатор короч. Есть идеи-лайвхаки как это провернуть?
Аноны, могли бы вы мне пояснить как читать такие записи в API? Точнее, ту часть с квадратными скобками [, options]. Что она значит? Что это необязательный параметр? Почему запятая внутри скобок?
>>2348837 Они значат, что это необязательный параметр. Запятая внутри скобок, потому что она тоже необязательна, если необязательный параметр не передан.
>>2348793 > Задачу поставили просто создать сайт для лаборатории где будет возможность добавлять новые публикации, добавить админку Ну тогда ты и должен был с админки и начать. Продумать, какую БД использовать и в каком формате хранить тексты.
А добавлять их потом в самом конце через созданную админку.
>>2348831 >контекс Тупое говно тупого говна, она не решает проблему общения между 2 независимыми компонентами, ты сетаешь глобальную переменную, но не можешь поменять ее функционально потому что она read only блеать. Ебануться реактокалеки придумывают костыльные костыли и еще статьи прям выпысивают на максимально убогую хуйню с 0.0001% юзабили потенциалом.
>пропс дрилинг >Создавать в родителе панелек стейты и парелелльно скидывать хендлеры звучит как говно. хуилинг
Я не знаток этих ваших патернов. но даже я вижу что реакт убогая пирамидка и мне кажется что даже в 90ых такой патерн не обосал бы только ленивый, ведь это противоречит принципам ООП независиомость, модульность, агностичность, реюзабельность , скалируемостьвообще. да-да я видел что жс запихывают часто к функциональным языкам(кек), уж случаем не из-за ебучих фрееймворков
Вот помню писал приложуху на нете, просто охуенно, можно было после любого отгула и запоя прийти, тыкнуть в любой модуль из дохуища и по зависимостям спокойно понять что он делает. А с реактором насаживание парочки функции заставляет мою голову болеть.
>>2348862 >Вот помню писал приложуху на нете, просто охуенно, можно было после любого отгула и запоя прийти, тыкнуть в любой модуль из дохуища и по зависимостям спокойно понять что он делает. А с реактором насаживание парочки функции заставляет мою голову болеть. Процедурный фанат побочных эффектов вкатился в тред. Продолжай дальше писать for (int i = 0; i < N; ++i), свитер. Ты не понимаешь что всякие редаксы нужны для one-way data flow, когда все мутации стейта централизованно выполняются в отдельном модуле-редьюсере, а все твои компоненты занимают только рендерингом и ничем больше. Ты заебёшься понимать, что произошло когда какой-то компонент в твоей иерархии стриггерил ивэнт, который поменял стейт в трёх других компонентах, которые в свою очередь поменяли стейт в ещё десяти других компонентах и вся эта каша из побочек ещё 10 циклов устаканивается, а потом у тебя на UI не то, что нужно отобразилось и ты лезешь в свой императивный параша-код понимать что произошло, а потом ты вообще увольняешься нахуй потому что сложнее туду листа стейт не получается у тебя сменеджить.
>>2348896 Ты меня раскусил, я люблю свитера, это можно конечно в пасту, но с реальностью это мало отношения имеет. Патерны и тесты и все очень легко понимается, если красиво раскидано-заархитеткурено.
>>2348913 >Патерны и тесты и все очень легко понимается, если красиво раскидано-заархитеткурено. Ну так покажи мне как у тебя код организован, что всё понятно и охуенно и я скажу, что хуже ещё не видел.
>>2348919 Ты так про все можешь сказать, я тоже могу много чего сказать, но как говорят - пиздеть не мешки ворочать. Время покажет уже показало) что из парадигм круче\востребованее\удобнее.
>>2347932 >Material UI, Ant Design и Chakra UI Посмотрел Material UI и Chakra UI. Заебись, мне нравится. Фронт движется в сторону библиотек UI-компонентов. Впервые люди дошли до этой идеи с бутстрапом, но он предлагает уровень организации компонентов лишь на уровне CSS. Современные же фреймворки предоставляют компоненты на таком же уровне абстракции, как в мобильной разработке. У компонентов может быть своя собственная встроенная логика и скрытая реализация html и css. Например, не просто таблица, а таблица сразу с сортировкой по столбцам, при этом ты не реализуешь логику сортировки, она содержится в компоненте. Охуенно, хуле.
>>2348820 > Создавать в родителе панелек стейты и парелелльно скидывать хендлеры звучит как говно. Ну тип да, так и надо, вон на ихнем сайте буквально это написано. > На ванильномс жсе это было бы проще потому что можно было бы напрямую менять статы. А потом искать какого хуя оно непредсказуемо меняется и гадать а нахуя тогда нужен реакт, если у тебя всё равно всё императивно. > Ну или можно было бы использовать отдельный объект-класс-хранилище ивентов, медиатор короч. Ты только что стейт менеджер.
>>2348924 >он предлагает уровень организации компонентов лишь на уровне CSS Аккордионы, модалки, тултипы, тосты по твоему реализуются только через CSS? Bootstrap уже давно полноценный фреймворк, как с js так и с css.
Бля пацы, запилил короче своими силами учебный проект. Но в консоли просто пздц творится. Что самое смешное, приложение работает как и задумано. Но состояние консоли удручает. Если я залью так проект в портфолио надо мной не будут ржать потом?
>>2348989 >Для всего этого длстаилчно только css. Не достаточно. >Половиеа из тобрй перечисьенного вообще нативные элементы браузера. Нативным можно назвать только модальное окно, всего остального нет. Тултип, встроенный в браузер появляется за пределами DOM, поэтому не считается.
>>2348995 >Если я залью так проект в портфолио надо мной не будут ржать потом? Будут. Вообще, зависит от того, куда ты хочешь податься. Если на галеру формошлепить - никто до ошибок докапываться не будет, а вот на серьезных проектах могут предъявить.
>>2348924 Так эти либы - костыли для заднеприводных. Поставил ты такой свой материал юай, а бизнес-логика требует, чтобы кнопка чуть тихо пердела при нажатии. И компонент на материале моментально превращается в месиво пропсов и костылей.
>>2349020 >details это потвоему что такое? Спойлер с минимальной возможностью нормальной стилизации. Аккордеон ты как из него сделаешь? >>2349021 Попробуй у границы окна вызвать такой тултип
<details> не подходит для мокрых писечек, так как он переключает наполнение контента через display, а это значит никаких тебе няшных анимаций открытия/закрытия.
>>2349046 >Все эти примеры по ссылкам тривиально реализуются через details Ну реализуй мне со стилями и анимированным переходом тогда. Хотя бы самый минимум. Учитывая, что это тривиально, за пару минут управишься.
>Material UI Как называется эта болезнь? Это обычный select. Эта хуйня высрала 45 дочерних компонентов и еще по 12 на каждый элемент списка. Вот после такой хуйни вкладка браузера и отжирает 2 гига памяти.
>>2349624 >Ты уверен, что от прокидывания рефов у тебя память отжирается? Нет блять, высрать 2 сотни компонентов - это бесплатно по памяти. >А так это обычный компонентный подход. Это говнокод какой-то ебаный, полный игнор встроенных возможностей браузера. Ради идеального пиксельного соответствия гайдлайнам ебаноидов из гугла построили целый манямирок из 200 компонентов, чтобы отрендерить сраный селект. Страшно представить, че у них там в компонентах посложнее происходит.
>>2349628 > Нет блять, высрать 2 сотни компонентов - это бесплатно по памяти. Это тебе реакт дев тулз показывает кучу компонентов. На деле большая часть их - всякие HOCи и прочие врапперы, которые в DOM ничего не добавляют. Так что оверхеда с них не больше, чем со всяких вызовов функций с замыканиями. >Это говнокод какой-то ебаный, полный игнор встроенных возможностей браузера. Ты хоть пробовал встроенный селект использовать за пределами хэлловорлда, знаток?
>>2349629 >Ты хоть пробовал встроенный селект использовать за пределами хэлловорлда, знаток? Ну охуеть теперь, как же мы без 200 компонентов на селект жили-то все это время.
Ковыряю эту муйню и дико ору с того, что она состоит из костылей чуть менее, чем полностью. В половине этих говнокомпонентов используется id, а в половине name, лол. Когда как в каждом должно быть и то и другое, как в обычных контролах браузера. Но в mui тому же Select нельзя задать атрибут id, а Autocomplete нельзя задать name (инпуту нельзя имя задать, это пушка нахуй). В одних компонентах в качестве target нормальные HTML объекты, в других какие-то костыли вида {hui: pizda, sosi: loh}. Такое чувство, что каждый компонент делал отдельный индус, предварительно объебенившись боярой.
Пиздец залупа костыльная, триллион компонентов, какая-то аналоговнетная хуйня в таргетах, падает с нихуя без сигнализации ошибок. Нахуй этот миюай, внатуре будто в компании сяоми делали, пробую чакру.
Привет, хотел спросить по поводу Реакта: мне одному кажется, что идея смешивать разметку (представление) и логику в одном месте (на примере JSX) это не очень хорошая идея? По сути у Реакта, получается, нет HTML-шаблонизатора и ты сам руками как бы пишешь синтаксическое дерево HTML-элементов у себя в коде, а сам JSX это тончайший слой сахара над вызовом встроенных JavaScript функций. На мало того: поверх ещё предлагается стилизацию компонента вынести из отдельного файла и заинлайнить прямо в код логики рендеринга компонента. Со мной что-то не так или это теперь норма? Сам я пока пишу на Angular/Vue, где есть строгое разделение между этими ответственностями, но в идеале хотел бы писать на Реакте, потому что модно. Но каждый раз когда смотрю на "правильный" код файла Реакт-компонента, то у меня глаза разбегаются. Я даже слабо представляю как инструментами статического анализа можно было бы заставить людей писать поддерживаемый Реакт код условного большого проекта.
Помогите, пожалуйста. Допустим у меня есть промис, в колбеке которого лежит функция, которая принимает в себя некоторые аргументы. Как мне при вызове этого промиса передать эти аргументы во внутреннюю функцию?
>>2349668 Философия реакта в разделении на компоненты. Это же логично: логика, отображение, стили компонента должны находится в одном месте, в одном файле вообще идеально
>>2349718 Если вы вдруг видите, как вам кто-то показывает код, в котором он await'ит что-то перед ретурном из async функции, имейте ввиду, что перед вами тупой долбоёб, понятия не имеющий как устроены промисы.
>>2345096 Блять, что лучше ооп, фп или процедурное программирование. Ну и вопросы тут задают. Попробуй ооп подход, но имей ввиду, что есл пойдешь потом во фронт, то там твое ооп никому не нужно, все будет на функциях.
>>2349827 Чел ты рофлишь? Я смотрел код из вполне авторитетного источника и там было такое. Там была обёртка для функции экспресса, ну которая (req,res,next)
>>2349863 Какое отношение это имеет к предыдущим кускам кодам и в частности ктвоему изначальному.ты совсем не понимаешь разницы?
Я попросил тебя ответить на вопрос - зачем ты в своем коде авейтнул результирующий промис. С какой целью? ты можешь это объяснить? Или все же признаешь что не понимаешь почему ты это делаешь?
>>2349827 Вот только там ретурна нету, так что ты обосрался. Так же обосрался с синтаксисом асника, а заодно не понимаешь, как работает Promise.resolve() и зачем его используют.
>>2349827 > в котором он await'ит что-то перед ретурном из async функции, имейте ввиду, что перед вами тупой долбоёб, понятия не имеющий как устроены промисы. Да что ты говоришь? Если написать await перед неасинхронной функцией, то программа хотя бы упадет с ошибкой. Это дополнительный контроль типа возвращаемого значения, дебс. На случай, если вызываемый метод перестал быть асинхронным.
>>2345933 Хуя тут малолетки-долбоебы высераются про подходы к разработке о которых нихуя не знают. Сомневаюсь, что если поймать тебя на улице ты хотя бы расшифруешь аббревиатуру tdd
>>2349982 Не, классический веб стек- реакт, нода и т.д.. Но в вебпаке почти не шарю, максимум могу настройки какогонить лоадера поправить. Хотя недавно с помощью вебпука 5 разбивал монолит на микрофронты, но один хуй, если меня попросить засплитить какието чанки, разбить на бандлы и добавить разные конфиги, то я полезу в доку, т.к. хуй его знает как это делается
>>2350010 Конечно ты всё правильно написал, ты же свидетель. Это все остальные неправильное TDD практикуют, настоящее TDD просто ещё не практиковали. >>2350017 В доку ты в любом случае полезешь, так как интерфейс конфига меняется между большими версиями.
>>2350040 Значит делаем вывод, что итт одни маньки гуглят доки и стаковерфлоу за других(безруких) манек и кидают нагугленное в тред, корча из себя гуру
>>2350104 >Нет 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) Настроен линтер Вердикт: минимум год до джуна
>>2350017 >максимум могу настройки какогонить лоадера поправить Как будто знания, что из себя представляет лоадер не достаточно, что бы считать себя хотя бы минимально шарящим в вебпаке.
>>2350058 Нихуя как у неосилятора вебпака бомбит. >>2350097 В одиночку как раз не научишься, это же софт для командной разработки, большинство фич тебе покажется оверинжинерингом в контексте соло разработки.
Как при добавлении элемента в DOM и сразу последующем без таймаута добавлении класса этому элементу заставить его проигрывать анимацию из CSS? Через промис пробовал, не хочет.
if (document.getElementBId('tvoyamamka').hidden==true) document.getElementById('tvoyamamka').hidden = false а можно ли как-то тут синтаксис сократить без создания новой переменной?
Зачем вебпак когда есть ванлайнеры, вы что, дураки? Программирование оно об упрощении разработки всего и вся, а не о написании колес и рытья под капотом. Любой вопрос о том как собрать банл, поставит ьверсию, зинклюдить лоадер - гуглиться за 5 минут. Даже представить себе не могу какие такие вы боевые задачи решаете используя самые потаенные и обскурные фичи вебпака. не писал свой парсер - не мужик не писал свою базу - не мужик не писал свой пакет менеджер - не мужик не сосал у лида - не мужик
>>2350349 Знал гит на уровне pull commit push checkout. В первый рабочий день попросили поправить коммиты и исправить их авторство. За часик научился гиту. Не парься особо, выучи основные команды, а остальное по надобности уже в работе быстренько посмотришь и подучишь.
>>2350361 >Даже представить себе не могу какие такие вы боевые задачи решаете используя самые потаенные и обскурные фичи вебпака. Всё, что касается аутпута вебпака, очень обскурно и потаённо, что там даже гуглить заебёшься. Я вот например наскотылил себе свг спрайтшит, но он получается одним файлом с кучей символов, что не айс для долговременной поддержки. Плюс если захочется прикрутить какие-нибудь темовариации иконок, то ебанёшься их синхронизировать. Наткнулся на поделие жидбрейнсов, которое вроде как бы позволит свг хранить как файлы в сырцах и упаковывать их в спрайтшит при билде: https://github.com/JetBrains/svg-sprite-loader Но там какие-то непонятки с пятым вебпаком, плюс главный разработчик умир: https://github.com/JetBrains/svg-sprite-loader/issues/470#issuecomment-1055373543 Хотелось бы ещё CSS-модули подрубать в свгшные класснеймы, но это получается нужно писать свой лоадер и парсить xml регуляр очками, что то ещё извращение. И такие истории постоянно всплывают, когда нужно отойти от стандартного конфига. А если слишком каштомно напердолишь свой конфиг, то потом заебёшься его мигрировать на следующую мажорную версию вебпака. Ну и в докере всё это дело запускать - отдельный квест.
Кто-нибудь может объяснить, как работает ВК. Как при условии того, что это сингл пейдж апликейшн, при переходе на разные подстраницы (мессенджер, новости и тд) менется адресная строка и догружается контент в блок без перезагрузки страницы (тут понятно - history.pushState() + XMLHttpRequest()), но при этом при открытии этого адреса в новой вкладке происходит рендер той же страницы, но у нас в истории уже нет путей из пушстейта, тогда значит, что этот путь лежит где-то в роутах и в респонсе просто рендерится основной костяк + внутренний сменяемый блок. Я могу понять, если там написано 5-10 роутов на каждую подстраницу, но таким же способом рендерятся личные страницы юзеров, видосы и картинки. То есть у них должен быть какой-то специальный универсальный GET роут, ибо я не верю, что у них миллиард разных роутов.
Уважаемые знатоки как это работает.
btw, как в роутере из экспресса реализовать универсальный роут с рендером какого-то шаблона из вью с переменными из бд. К примеру, это будут страницы пользователей, открытые данные которых будут грузиться с шаблона вьюджиэс. Но такие страницы должны будут иметь свой собственный URL. Тогда как слушать такие роуты одним router.get('/???', middleware)?
>>2350310 Тащемта добавление nginx, это пара строк кода. А докер знать надо обязательно. Когда лид тебе скажет собери и залей образ в наш реджистри т.к. cicd не работает/отвалился/еще пилится, ты жидко пукнув даже залогиниться в реджистри не сможешь.
То есть, я создаю роут, который слушает все GETы, внутри него делаю логику проверки GETов (их получу из объекта req) - есть ли в бд id == url, и потом рендерю страницу с пользовательскими данными.
В принципе норм.
Но, значит, что страница, построенная аяксом - это по своему происхождению не тоже самое, что страница, полученная через GET запрос?
>>2350498 чувак, ты чё не можешь загуглить что такое параметры и ещё на будущее что такое query string? это отдельные концепции, не надо сову тянуть на глобус мимо
>>2350498 >То есть, я создаю роут, который слушает все GETы, внутри него делаю логику проверки GETов (их получу из объекта req) - есть ли в бд id == url, и потом рендерю страницу с пользовательскими данными. В контексте SPA роутер получает урл, компонент вытаскивает из него нужные параметры через хук, перекладывает их в запрос на сервер, получает ответ от сервера и датой из ответа наполняет своё состояние.
>Но, значит, что страница, построенная аяксом - это по своему происхождению не тоже самое, что страница, полученная через GET запрос? Конечно, в этом вся ссуть клиентского рендера.
>>2350595 Это хороший отдебаженный инструмент который гадится для 99% случаев. Если переписанный с какой-нибудь статьи костыльный конфиг вебпака добавляет тебе самооценки, то дерзай.
>>2350662 Двачую. Я тоже увидел, что тут один анон всегда спорит, что кря не нужен. И почитал комментарии, там большинство утверждает, что кря писали крутые челики и типа ничего плохо в его использовании нет
>>2350684 Где ты там почитал комментарии? На странице в фейсбуке? Пейсбук запилил CRA для своих нужд и продвигает плохие практики, типа отсутствия границы между девелоперскими и продакшн зависимостями, что вредит к понимаю разработки в целом и менеджера пакетов в частности. Пейсбуку на это похуй, в нём пердолики-олимпиадники работают, так что разберутся. А вкатуну это чистый вред.
>>2350464 > Тащемта добавление nginx, это пара строк кода Я про это и говорю. В чем смысл пихать 1 строчку в докерфайл для задачи "отдать файл bundle.js"? Показать, какой ты даун? В бекенде докер используют, потому что иначе твой высер просто не запустить из-за хуевой горы специфических зависимостей, ставить которые себе на машину никто не будет.
>>2350703 >отсутствия границы между девелоперскими и продакшн зависимостями, что вредит к понимаю разработки Не вредит, ты просто слабоумный >менеджера пакетов Какая вообще разница где там пакеты блять лежат? Мы пишем реакт приложение которое будет деплоится на хостинг, и он всегда private, его никогда никогда не будет устанавливать себе в проект
Друзья помогите плиз с нодой. Вот пик 1 - сервер. Когда перехожу на localhost:5000 то получаю ответ Welcome. Но если пробую перейти на localhost:5000/api/v1/auth/register то получаю ошибку 404. Раут register на втором пике прописан. А функция register простая. const register = (req, res) => res.send("register user")
Get запросы отправляет а все post пишет 404. Притом в консоли браузера почему-то post запросы как get определяет. GET http://localhost:5000/ddd 404 (Not Found)
Помогите беззубому крестьянину. Делаю туду-лист с поддержкой md. Использую markdown-it. На вход даю текст: '# text' -> получаю <h1>text</h1>. Как теперь обратно превратить <h1>text</h1> --> '# text'. Раньше вроде все через md.render() работало как в одну сторону, так и в другую.
Ребята, подскажите пожалуйста. Проходу учебник Кантора, и мне не очень понятен следующий момент:
функции конструкторы мы вызываем так
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) мы как бы вызываем эту функцию, а обертка на это не похожа. Простите за сумбур и помогите!
>>2351079 Непонятно что тебе непонятно. Эта конструкция (создание объекта) читается целиком new ClassName(1, "привет",...); - вызов конструктора с параметрами new ClassName; - вызов без параметров. В жс нет перегрузки поэтому параметры undefined Все как везде
>>2350662 >>2350684 >там большинство утверждает, что кря писали крутые челики и типа ничего плохо в его использовании нет >Это хороший 2к зависимостей для готового конфига вебпака. Пиздец, какие же вкатуны дегенераты. История с leftPad и node-ipc ничему не учит. Особенно забавляют высеры про "крутых челиков", которые по факту являются рандомными вкатунами никак не связанными с командой, которая пилит сам реакт >гадится для 99% случаев Гадится только для 1% случаев, когда тебе надо запилить демку или проверить гипотезу. А нет, уже не годится, для этого уже намного целесообразнее использовать vite.
>>2351166 >.mjs и .mts были еще с 2017 Не пизди, тайпсрипт только в этом году начал активно пилить интеграцию в ESM, то что там отдельные поехи в 2017 уже себе переименовывали - абсолютно однохуйственно.
>>2351170 >отдельные поехи в 2017 уже себе переименовывали - абсолютно однохуйственно. Че ты несешь? Расширение .mjs обозначено в спецификации es-модулей внутри node.js. И да, оно появилось как раз в 2017. mts тоже появился примерно в том же периоде. https://github.com/nodejs/node-eps/blob/master/002-es-modules.md
>>2351173 Потому что у тебя гарантированно не заработает код простым переключением type в корневом package.json на кодовой базе сложнее хэлловорлда. Плюс отвалятся тесты, так как тестовые фреймворки не могут в ESM от слова совсем. Они не могли в него даже когда он был всего-лишь пуком бабеля. >>2351177 >Че ты несешь? Расширение .mjs обозначено в спецификации es-модулей внутри node.js. И чё, от того что его добавили в спецификацию в 2017, означает, что добавление расширений - не ебанутый мув? А модульная система после ESM тоже будет префиксы с вариациями к существующим cjs/mjs/cts/mts добавлять? Что там насчёт jsx/tsx? Дохуя реактокода есть, который был написан не некоем подобии ESM но с рекваирами для динамического импорта, так что и здесь нужны модульные префиксы. Ну-ка напиши мне псевдокод, как ты собираешь все жс файлы (тайпскрипт инклюдед) проекта в хэш-таблицу где ключ - отностительный путь к файлу от корня проекта. До нодовского ESM и после.
>>2351189 >Потому что у тебя гарантированно не заработает код простым переключением type в корневом package.json на кодовой базе сложнее хэлловорлда. >Плюс отвалятся тесты, так как тестовые фреймворки не могут в ESM от слова совсем. Они не могли в него даже когда он был всего-лишь пуком бабеля. Так причем тут переименование файлов то, дебс?
>>2351263 Прежде чем нырнешь с головой в v8, рекомендую ознакомиться с реализацией попроще, даже если она неполная. Возьми https://github.com/nginx/njs к примеру.
Есть здесь гуру Вебпака? Помогите разобраться. Как решить ебучую проблему с CORS в дев-режиме? Я так понял, через proxy. Но мне нужно проксировать сразу несколько сайтов, а не один URL. В доках указано:
Что блять за /api? Как я должен понять, что это за свойство в контексте прокси? С одиночным вариантом просто указываешь нужный URL без передачи объекта, а в случае множественных URL тогда как? Объясните, плз.
>>2351492 Через css-переменные, или через самодельную костыльную магию внутри css-in-js. Ну и олдовый вариантс навешиванием класса на <body> или <html> тоже никуда не ушел.
Имея дело с бекенд разработкой на пайтоне/пхп, разрабатывая всякое по ООП/MVC/другим паттернам, смотришь на react/vuejs и слегонца хреново вьезжаешь почему так. Знающие/фуллстаки, как быстрее вьехать в перечисленные фреймворки и сформулируйте разницу парадигм/паттернов разработочки вышеперечисленного бека и фронта на react/vuejs.
>>2351653 >сформулируйте разницу парадигм/паттернов разработочки вышеперечисленного бека и фронта на react/vuejs. Клиент-рендер позволяет реализовывать каштомизированный интерфейс, большая часть даты для которого фактически отдаётся бэком из кэша. А через вэбсокеты так и вообще позволяет общаться с браузерным клиентом. Хуй ты такую архитектуру провернёшь чистым серверным рендером.
>>2351653 1) Дешевая и гибкая модульность. У тебя js компонент может быть полностью независимым модулем, который самостоятельно забирает данные с бека, ты можешь его подключить в любое место интерфейса. Например модуль погоды. Для бекенда этого модуля у тебя будет отдельный тонкий контроллер с независимой логикой, которую ты можешь засунуть очевидным образом в независимую транзакцию. В случае классического серверного рендеринга в реализации подобной модульности у тебя вплывут недостатки. Жирные контроллеры с кучей сервисов-модулей. Ты должен решить как мержить все эти данные, чтобы когда у тебя изменится структура данных в модуле, в сотне контроллеров и шаблонов не пришлось переделывать. Много данных которые передаются в шаблон независимо от того отобрадается модуль в данный момент или нет, а это значит лишние запросы к БД. Js же модуль может данные из нескольких мест получить в разное время, в зависимости от условий, ты будешь иметь дело с изолированной простой логикой в каждом запросе.
2) При клиент рендеринге модель поведения хранится на фонтенде., у тебя нет нужды хранить на бекенде состояние интерфейса - показывать модуль погоды или нет, например. На бекенде только бизнес логика. Упрощается реализация stateless бекенда. При классическом серверном рендеринге, начинают выкручивать себе мозги, решая хранить ли это состояние в URL или в сессии (забив на stateless) или чаше всего реализуют какую-то js модель на фронтенде. Опять же для сложных случаях придется обеспечивать модульность этой модели на фронтенде. Можно было сразу с этого начинать, с SPA.
3) Легкий переход на микросервисы для SPA. Это очевидно.
Сап аноны, можете подсказать, хочу с браузерной игрушки выгружать результаты (пикрил) чтобы они после каждой игры записывались в эксель или в какой-то массив, сохранялись в общем как-то. Насколько это сложно реализовать и что почитать? Сам не программист, но в школке что-то тыкал в паскале и сам джаваскрипт немного трогал. https://loldodgegame.com/skillshot/
>>2345092 (OP) как-то сделал моб. приложение с TCP сокетом на серверной части. и недавно захотел сделать веб версию этого приложения. уже запилил фронт часть, и дойдя до бэка, меня ждало разочарование, что веб поддерживает онли WS. так вот, можно ли как-то через жс коннектиться к tcp? а-то переписывать сервак как-то не очень хочется
Подтвердите, я все правильно понял? Есть кусок кода
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. Моя логика верная?
Почему во vue как-то всё всрато и неинтуитивно? Почему я должен я не могу получить доступ к event инпута прям из строки @change? Почему я должен писать события, допустим, @click в кавычках будто это просто строка? Что за хуйня, как вы этим пользуетесь?
>>2352406 Про fetch тоже молчу. Я не могу просто написать функцию fetch() в <script> и вызывать её на @click, потому что появляется неведомая ошибка, которая крашит нахуй приложение.
>>2352406 Ты какую-то херню написал. Чем кавычки хуже фигурных скобок? Cинтаксис вуя в шаблонах является валидным html. Ты можешь vuejs c "живой" разметкой работать
>>2352406 >не могу получить доступ к 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.
Поправляйся скорее, братан, и переходи на нормальные туториалы.
>>2352443 Работать должно, но лично я бы так писать не стал, слишком многословно. data сделать стрелкой, асинк аваит вместо тхен в фетч, делитДата заинлайнить, задание со зведочкой - зделоть через композишн апи, будет еще короче
Какой же вскод высер мерзкого обблеванного бомжа, я просто хуею... То, что в вебшторме поддерживается из коробки в одну кнопку, тут или вообще блять не поддерживается или с колоссальным пердолингом. Банальный пример: выбор шрифта. Где блять селект из установленных в системе шрифтов? И так везде нахуй. Перемещаться по последним edit location'ам невозможно, только к самому последнему. При изменении навигации стрелок на CamelCase, они работают только в редакторе, но не в полях редактора типа инпута поиска или этого обосраного окна с настройками. Поиск говно, все говно. А еще, этот кал умудряется быть медленнее вебшторма даже при открытии простых файлов типа логов. Число фейлов этого ублюдства просто не поддается подсчету. Будто вернулся на NetBeans в 2007 год.
>>2352589 А что ты хотел от майкрософт, дружок? У них единственная цель существования - дальнейшая экспансия компании, на удобства пользователей им по-е-бать, нет просто для них такой вещи в принципе
>>2352406 >Почему я должен я не могу получить доступ к event инпута прям из строки @change? >реактомакака Как же ты себе насрал в трусы. Это ты в реакте не можешь доступ к ивенту нормальным логичным способом получить, вместо этого тебе реакт выплевывает в твои коллбеки синтетеические эвенты.
>>2352581 Что-нибудь, связанное с редактированием большого количества полей. Например создай табличку в БД на ~20 столбцов и сделай гуй для её редактирования. Ну и простой бэк на ноде или на чем хочешь.
>>2351816 Я посмотрел, там вроде фетч никакой не отправляется, да и игра в оффлайне тоже работает, так что эти результаты никуда не отправляются как я понимаю
>>2352811 Нет, сам ковыряйся. Сомневаюсь, что она фетчи не отправляет, так как лидерборды без них - никак. А чтобы фетч отправить, надо данные как-то сохрнаить.
>>2345092 (OP) Сколько нужно времени для вката? Знаю хтмл, ксс сносно. Сеичас на рсскул прохожу курс жс и понимаю что без гугла могу писать только простые функции. Без душноты ответы ок.
>>2352821 Зависит от того, как ты работаешь с датами с сервером. Но в любом счёте тебе придётся отдельный компонент писать для этого "инпута". И отдельный компонент для отображения дат. И отдельный модуль для работы с датами. Я датами исключительно как ISO-строками с таймзонами оперирую и это сразу срубает жирный пласт логики для сериализации между редукс-стором/клиентом/сервером/бд. >>2352840 HTMLFormElement.reset()
>>2352904 Допустим есть div с фиксированными параметрами,и он пустой или есть дефолтное значение. По ходу выполнения там что то изменяется.И что бы можно было сбросить до дефолта
>>2352908 >Допустим есть div с фиксированными параметрами,и он пустой или есть дефолтное значение. Ты там высрал див заместо инпута и даже не знаешь, какое у него должно быть дефолтное значение? В таких костылях нет никаких бест практис, дефолтное значение определяется как писателю компонента взбредёт. Можешь хоть ошибку кидать для этого и обрабатывать её.
Как называется психическая болезнь, когда ты пытаешься досконально изучить какую-то технологию или что-либо, сидишь и дрочишь его дебри, которые никто даже не знает, но если не изучишь это будешь чувствовать что знания неполноценны и поверхностны. Борюсь с этим уже второй год.
>>2352656 > А что ты хотел от майкрософт, дружок? Так какого хуя это дерьмо форсят все, кому не лень? Я даже слышал, что его в компаниях используют. Кучи положительных отзывов. У же меня возникло стойкое ощущение, что этим людям или платят за рекламу этого кала или они просто скрипт-кидди, которые дальше хелловорда нечего не программировали.
Привет двачик. Пытаюсь вкатыватсья в жс, хочу написать расширение, которое, допустим, скрывает на странице все теги <img>. Набрасал такой код, но он не работает... Помогите пожалуйста
Поясните позязя, как оно работает. Откуда в oninput-е оказывается переменная age с актуальными данными? Пытался нагуглить, но ничего не нашел. Причем оно работает только при инлайне. Если определять для формы oninput в отдельном JS-блоке, то начинает ругаться, что переменной age не определено.
Итак, попробовал bootstrap, material ui, chakra ui. И как я понял, любой готовый набор ui-компонентов используется ТОЛЬКО в случае, если нужно быстро накидать proof of concept ну или когда на дизайн вообще похуй и изменять его не планируется.
Во всех остальных случаях начинается лютый пердолинг, при КАСТОМИЗАЦИИ всей этой хуйни.
Стула получается только 2: 1) Быстро кидать проект с дефолтным невырвиглазным дизайном с помощью готовых стилизованных компонентов фреймворка 2) Писать ui-компоненты самотоятельно с нуля.
То есть, как должна выглядеть разработка интерфейса во втором случае: - дизайнер рисует дизайн - далее создается библиотека ui-компонентов - и только потом их используют.
То есть блять, разница в том, что дизайн не просто перегоняется в условный css-файлик или еще какую хуйню, а создаются КОМПОНЕНТЫ для кнопок, инпутов, таблиц, и прочей хуйни. Использование аттрибута className в коде за пределами ui-компонентов должно быть сведено к минимуму. Так?
Анончики помогите с гитом плиз. Короче в своем приложении пилил фронт и там есть гит файл где делал коммиты. Потом начал пилить бэк и там свой отдельный гит файл завел и папку client с фронтом добавил в gitignore. Теперь хочу бэк с фронтом соединить но как сделать чтобы два гит репозитория не конфликтовали? Просто убрать client из gitignore и продолжать комитить только в одном репозитории игнорируя фронтовский?
Аноны, есть сеймы? Боюсь кодить потому что кажется не справлюсь с задачей, однако все равно справляюсь. И это повторяется перед каждой новой задачей. вкатун
>>2353539 Ну в общем скрипт работает, только если его запускать в консоли браузера. Я пробовал делать как в этой статье, но он просто не подрубается. Можешь объяснить что нет пожалуста? :(
>>2353833 Ты забыл сказать, под какой браузер расширение. Потом гуглишь документацию для этого браузера и там он должен предоставить расширению способ узнать, загрузилась ли страница или нет.
>>2353658 Вот где бы почитать про это. Про document.formName.elements я знаю, но вот инфы о том, как это становится доступно в инлайне напрямую - чет нигде не нахожу.
>>2353915 Все работает без всяких инлайнов дурачок. <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>