24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
>>2280052 Да мне тестовое дали, сделать эту самую панель. Что такое Erp я примерно понимаю, а вот как эта самая панель должна выглядеть и что там должно быть, я ваще хз
>>2280052 Да мне тестовое дали, сделать эту самую панель. Что такое Erp я примерно понимаю, а вот как эта самая панель должна выглядеть и что там должно быть, я ваще хз
Какой язык или технологию можно начать учить вторым после ЖСа? В данный момент работаю фронтендщиком, но хочется еще больше знаний, какого-то нормального языка, может быть с ООП. У меня пока варианта три, это нода, но язык там очевидно тот же самый, просто смежная технология, это питон для бека, или дотнет для бека (он там вообще есть?). Еще есть опыт работы с React Native, но с нативной мобильной разработкой ни разу не связывался, не знаю пока интересно ли мне это будет вообще или нет, в принципе можно и джаву. В общем ищу что-то интересное для себя на первое время, но и с возможной перспективой в дальнейшем.
>>2280212 Этим же вопросом задавался недавно. Но решил, что лучше жс выдрочить назубок, чем скакать по языкам, поверхностно их изучая. Так что для себя решил изучать жс дальше и глубже
>>2280221 Ну жс я и так изучаю по мере работы, так что от него я никуда не денусь, я после работы хочется еще чего-то, потому что учить жс уже до блевоты немного после 8-11 часов долбёжки по задачам. А хочется еще другой язык попробовать, чтобы не закрываться в своём жс мирке
>>2280212 Если просто из праздного интереса, то вряд ли уйдешь дальше хеллоуворлда, но можешь попробовать кложу или руби, первый даст тебе преставление, что такое реальный современный ФП язык, второй даст представление об ООП и красивом лаконичном коде. А так я бы на твоем месте выбрал цель, для чего ты учишь и что хочешь делать кроме фронта, и потом уже язык выпирал.
>>2280238 Шмель, ну сейчас без ТСа никто уж и не пишет, говоря жс я автоматически подразумевал ТС в том числе.
>>2280243 Да в том в том и дело, что в случае с экзотическими языками, я может в чем-то и разберусь, а вот дальше никуда не уплыву. Наверное в данный момент цель - начать немного разбираться в бекенде попутно изучая еще что-то кроме жс.
>>2280244 Вот это реально too СЛОЖНА, опять же сами по себе плюсы не сказать что сильно востребованы, если ты только не сенъер с 60 лет опыта
>>2280251 > У меня знакомый из фронта переехал на флаттер, кайфует, говорит нет этой размазни из десятка технологий, сидишь углубляешься во что-то одно. Так он на дарте
>>2280211 Да, на фронта. Не, там задание больше техническое, вернее оно только техническое. Бек с которого данные по запросу брать там предоставляется, про дизайн вообще ни слова(имею ввиду что и как должно выглядеть) но мне же как-то его нужно организовать н? Например там написано "послать запрос "сюда" оттуда придут данные "те" эти данные нужно ебнуть а таблицу. Или на дизайн вообще не будут смотреть даже если это хуйня из под ногтя?
>>2280249 Так тебе востребованность или "знания" нужны? Изучай жаву тогда, ковырятели жаваподелий всегда будут нужны. Или какой-нибудь ГО, но там для полного углубления придётся письку отрезать.
Если я буду смотреть видосы димыча про бэкенду на нод жс, то я стану таки жамаскрипт жуниором фронтендером? А то без знаний бэкенда я не могу слепить себе игрушченый бэк для моего фронта.
А что полезнее смотреть самурайские видосы Димыча про реакт и смотреть сейчас идущий бэкенд или положить хуй и самому доку читать и клепать криво руками как получится? Димыч говорит, что у него в сотнях видео по реакту и в бэкенде такие фундаментальные вещи, которые никто и нигде больше не рассказывает.
>>2280374 > Но свое полная хрень Не пизди. Даже если сделал говно, все равно на душе приятно, что сделано твоими руками. Еще приятнее от мысли, что каких-то месяц-два назад ты и это говно не смог бы написать.
>>2280374 >Когда пишешь свое, то есть интерес. А у меня нету. Меня преследует мысль, что я обкакаюсь и сделаю обязательно плохо, что надо сначала опытного кого-то посмотреть как он это делает.
Друзья нужна помощь. По нажатии на кнопку "добавить товар в корзину" я в колбеке создаю новый html элемент и добавляю его в список. Так вот этот товар/новый элемент <li нужно удалить при необходимости. Но навесить вне функции я обработчик на новый элемент не могу, так как весь код уже считан. У меня есть два варианта как решить эту проблему, но я знаю, что есть человеческое решение проблемы. Кстати гугл, стек и прочие молчат, лол.
>>2280425 Смысл тайпскрипта в том, чтобы добавлять типы во время разработки для уменьшения количества ошибок и для большего удобства, я к примеру сейчас вообще не могу писать на обычном жсе, это просто моча говна без типов, просто ебанный хаос. В рантайме никакого ТСа нет, он существует только на этапе разработки
>>2280416 да лучше уж питон чем пыха)) а так тут анончики меня флаттером заинтриговали, я давно ищу что-то годное под мобилку. ибо как мне кажется за этим будущее (мое)
Я вернулся со свои вопросом снова.Стоило обновить страницу и стили снова полетели .Я не понимаю почему они перебивают друг друга в реакте.Они ж в разных модулях
>>2280506 У тебя там innerHTML, getAttribute(), setAttribute() и конкатенация строк заместо интерполяции. Учи интерфейсы ДОМа, чтобы не быть жиквериком.
В общем, есть 12 элементов по 2 строки каждый и массив из почти тысячи массивов, в каждом из которых так же по 2 строки. Вот эти 2 строки и 12 элементов нужно сравнить с 2 строками из тысячи+ массивов и выполнить функцию при двойном совпадении
Сейчас я делаю так:
forEach для этих 12 элементов, беру из каждого элемента 1 и 2 строку (они находятся в разных блоках) и прохожу циклом for по тысяче массивов, проверяя в if 1 строка === строка под индексом 0 && 2 строка === строка под индексом 1.
Это работает, но это пиздец как медленно. А между тем, количество массивов будет только расти. Надо полагать я делаю что-то не правильно. Учитывая, что в 1к+ массивов первые строки часто повторяются, а вторые как правило нет. Но для true обе должны совпадать строкам из 12 элементов.
Можно ли сделать быстрее или только базу данных использовать?
В моем проекте уже используется IndexedDB, были мысли на время условной "сессии" выгружать этот большой массив в базу и по индексу быстро искать, а потом либо удалять его, либо дополнять новыми данными, которые хранятся в файле Юзерскрипта. Но звучит это как костыль.
>>2280534 >В общем, есть 12 элементов по 2 строки каждый Мапа/словарь ты хотел сказать? >и массив из почти тысячи массивов, в каждом из которых так же по 2 строки Тоже звучит как мапа/словарь. >forEach для этих 12 элементов, беру из каждого элемента 1 и 2 строку (они находятся в разных блоках) и прохожу циклом for по тысяче массивов, проверяя в if 1 строка === строка под индексом 0 && 2 строка === строка под индексом 1. Да ты же ебанутый, если тебе нужно найти подмножество, то итерация всегда должна идти против большего множества. >Учитывая, что в 1к+ массивов первые строки часто повторяются, а вторые как правило нет. Но для true обе должны совпадать строкам из 12 элементов. Судя по описанию ты сравниваешь заголовки/параметры хттп запроса. Ну так блять и храни их в Headers/URLSearchParams, в них куча идиоматичных методов встроено для всевозможных итераций и сравнений. >В моем проекте уже используется IndexedDB, были мысли на время условной "сессии" выгружать этот большой массив в базу и по индексу быстро искать, а потом либо удалять его, либо дополнять новыми данными, которые хранятся в файле Юзерскрипта. Но звучит это как костыль. Какая блять база банных? Ты в простые структуры данных не можешь, а хочешь натянуть БД.
>>2280539 Ну вообще я уже натянул БД, только для других целей.
>Мапа/словарь Что ты имеешь ввиду? У меня натурально 12 элементов на странице, в каждом еще по 2 элемента, в которых по 1 строке. И массив в файле из 1к+ массивов [Строка 1, Строка 2]. Первая строка часто повторяется как на странице, так и в массивах, но во второй хранится URL. В общем, первых строк совпадающих будет гарантированно много, а вот УРЛов одинаковых как правило всего несколько. Но мне нужно только двойное совпадение 2 строк на странице с массивами в файле, чтобы выполнить действия над элементом на странице.
>итерация всегда должна идти против большего множества В смысле, сперва проходить циклом по 1к+ массивов, а потом для каждого искать совпадения в элементах (другом массиве), а не наоборот? Но что это принципиально меняет? Кроме возможности раньше найти совпадения и выполнить действия. Это же ускорит процесс только время от времени, когда совпадения не в конце файла. Разве нет?
Я же сразу обозначил, что нуб. Учусь на боевых так сказать, исключительно для себя.
>>2280546 >явное разделение на ключ/значение Ну по сути да, нужно сопоставить ключи и значения, если есть двойное совпадение, выбрать соответствующий элемент на стр. Ключей может штук 10, а значения это разные УРЛ
>мап и словарей Пока хз че это. Буду курить мануалы. Я сперва подумал про Array.map(), который же по сути тоже цикл. Я так бегло почитал пока, это разве не тоже самое? У меня же в цикле получается if проверяет соответствие по индексам массивов 0 и 1, считай те же Ключ/Значение.
Как бы логика подсказывает, что кроме циклов то ниче и не сделаешь, ведь проверять надо все, если только не менять структуру хранения, по типу как Индексы в БД, но придется типа разделять массивы на условные категории, чтобы искать только в них. В принципе, это можно сделать в коде 1 раз за сессию, не меняя сами массивы. Или это хуйня?
>по жирному массиву один раз, а не 12 Но ведь в обратном случае получается те же 12 раз на каждую итерацию жирного массива. От перемены мест слагаемых.. как говорится. Или я туплю?
Ну вот с фор оф это может и обретает смысл. Но опять же, совпадение может быть не одно и в любом из 12 элементов, но все они не могут совпадать 100%, а значит все равно нужно пройти весь массив данных.
А что если преобразовать пары в строку с разделителем и сравнивать по 1 строке, а не по 2? Мне же в любом случае нужно точное совпадение. Это будет быстрее? Логика подсказывает разницы нет.
>>2280553 >У меня же в цикле получается if проверяет соответствие по индексам массивов 0 и 1, считай те же Ключ/Значение. Так я и говорю, что твои данные в виде мапы представлены. Вот только в отличие от чистых массивов у мапы есть идиоматические методы get(), set(), has(), тогда как для массива нужно городить конструкции с референсом по индексу или деструктурировать на каждый пук. Хотя если тебе в результате нужно больше одного значения на ключ, то мапа на подойдёт. >Но ведь в обратном случае получается те же 12 раз на каждую итерацию жирного массива. От перемены мест слагаемых.. как говорится. Или я туплю? 12 раз по каждому элементу массива не одно и то же, что 12 раз по всему массиву. >А что если преобразовать пары в строку с разделителем и сравнивать по 1 строке, а не по 2? Мне же в любом случае нужно точное совпадение. Это будет быстрее? Логика подсказывает разницы нет. Сомневаюсь, что это будет лучше, так как тебе или придётся новый массив из этих строк создавать, или создавать по строке на каждом шаге. Но как минимум можешь поменять порядок проверки, чтобы сперва сравнивалось по значению, так как они более редкие. И если не совпадает значение, то ключ не имеет смысла сравнивать.
>>2280553 >>2280556 Позвольте вклиниться в ваш благородный разговор. Сам являюсь начинающим, поэтому не судите строго. Мне кажется такой вот план был бы норм: 1. Перегнать список из 1к массивов в хэш-мапу (и сохранить куда-нибудь, чтобы каждый раз не гонять) 2. Используя ту же хеш-функцию хешать по очереди каждый из 12 проверяемых массивов и проверять наличие такого хэша в хэш-мапе.
В результате будем иметь православную сложность О(1).
На всякий случай, если кому интересно, я таки обновил комп для разработки:
Из i7 2600k 16gb 1333mhz ssd 500mb До i9 12900k 32gb 4000mhz ssd 500mb
Проект в среднем раньше обновлялся от 15 до 40 секунд, теперь 1-4 секунды Стартовал проект раньше примерно за 30сек-1.5 минуты, теперь окло 10-15 секунд Бек билдился и стартовал примерно 2 минуты, теперь около 20 секунд. Раньше потреблялось 15.9гб из 16, теперь около 18 и есть запас на всё остальное.
Это просто к вопросу о том, какой комп может быть нужен для перекрашивания кнопок, и насколько может всё стать быстрее при апгрейде, у меня теперь неиронично даже работа намного быстрее стала выполнятся, потому что раньше что-то крашнется на беке, тебе нужно все рестартить, и пока всё это запускается отвлечешься на что нибудь, и ужи трижды забудешь нахуй о том, что вообще там что-то делал. Потом еще обновлю ссд на м2, тоже сравню скорость, задавайте ответы.
>>2280578 Так ты просто поридж с клиповым мышлением. Плюс такие "удобства" ведут к нечитаемым сырцам, так как ты привыкнешь на дебаг каждого пука весь стэк поднимать, вместо того, чтобы хотя бы базовый анализ проводить.
>>2280889 Чево нахуй? >Плюс такие "удобства" ведут к нечитаемым сырцам Ты сам понял, что спизданул? Перечитай мой пост еще раз, шиз
Вообще наверное никто так не разбирается в ненужности разных дорогих штук, как нищуки, которые никогда этого себе не купят, очень похоже на твой случай.
Да, я вместо того, чтобы запускать и обновлять билд в 10 раз быстрее должен делать базовый анализ. Очень полезный совет, жаль я его до покупки не услышал, какая-то рандомная шиза стекломойного долбоёба
>>2280902 Нихуя пориджа припекло, пиздуй перезапускать стэк, стэк сам не перезапустится. Не забудь ещё М2 поставить, будешь заодно винду постоянно (и быстро) перезапускать. >Вообще наверное никто так не разбирается в ненужности разных дорогих штук, как нищуки, которые никогда этого себе не купят, очень похоже на твой случай. Ещё себя сразу в богачи записал, охуеть просто. У тебя типичное оправдание потреблядской покупки, вон даже таймеры замерил и запостил в этом треде, хотя для этого есть отдельная доска (и конечно же ни слова о запускаемом стэке). >Да, я вместо того, чтобы запускать и обновлять билд в 10 раз быстрее должен делать базовый анализ. Очень полезный совет, жаль я его до покупки не услышал, какая-то рандомная шиза стекломойного долбоёба Что и требовалось доказать, ты уже свой пост забыл, в котором говорилось про дебаг проблем, в котором ты же и плакался, что дебажить забываешь, так как за 2 минуты у тебя ужё всё вылетает из головы.
>>2280899 Берешь обе строки из массива, конкатенируешь, кидаешь в хэш-функцию. Кешельме бешельме - готов хэш для мапы. Или можешь не пихать в ф-цию а сразу юзать получившуюся строку в качестве хеша. Или можешь массив застрингифаить в JSON и использовать то что получилось в качестве хеша.
Короче, хэш можешь готовить как угодно на свой вкус, это не шибко принципиально (в случае массива из 2х строк).
>>2280962 >Берешь обе строки из массива, конкатенируешь, кидаешь в хэш-функцию. В большем массиве нет гарантии уникальности конкантенации обоих элементов. >Или можешь массив застрингифаить в JSON и использовать то что получилось в качестве хеша. Ну да, просто ебани строчный литерал в несколько мегабайт, так все проблемы решишь. >Короче, хэш можешь готовить как угодно на свой вкус, это не шибко принципиально (в случае массива из 2х строк). Готовить ты его можешь как угодно, вот только без уникальных индексов в датасете будешь бибу сосать со своими хэшами.
>>2280556 >у мапы есть идиоматические методы get(), set(), has() Как я понял эти методы для более сложной обработки данных, чем простое сравнение 2 строк. А то получается так, что мне сперва надо перебрать весь массив и создать Мапу (допустим это можно сделать 1 раз за сеанс), а потом опять же перебирать всю эту мапу каждый раз, как тот же массив, для поиска совпадений. В чем здесь получается профит по сравнению с тем, что есть:
// это строки if (url === Links[1] && tag === Links[0])
>сперва сравнивалось по значению Как видишь, у меня изначально так и сделано.
Или в Map, при переборке по условному Key1 в ключах Tag, все остальные ключи не итерируются обработчиком вообще?
>12 раз не одно и то же Вот тут можно поподробней? Что-то я не въеду в фундамент. Ведь с точки зрения математики - 1000 строк по 12 раз каждая будет тоже самое, что 12 раз по 1000
Нет, я понимаю, что в некоторых ситуациях результат можно раньше получить в 1 случае, но мне в любом случае будет необходимо дождаться прохода по всему массиву, потому что совпадение может быть в конце. И в моем случае, если совпадение 1 элемента будет условно в 995 массиве, то результат я получу раньше, чем в твоем, и уже выполню с ним действия, чем буду ждать пока по каждому массиву итератор пройдется 12 раз.
Ты ток не подумай, что это доеб. Я реально хочу понять как делать правильно, а не чтоб работало.
>>2280576 >хеш-функцию Ну я видимо больше новичок, чем ты. Не знаком с этими методами. Но как я примерно представляю, это что-то типа уникального числового идентификатора, в котором будет зашифрована строка?
Звучит разумно, но как то громоздко что-ли для такой с виду простой задачи.
Так то при условии всего около 10 уникальных тегов, не проще 1 раз за сеанс создавать отдельные массивы на каждый тег из общего массива и дальше проходить только по нужным при совпадении тега (ключа)? Большой массив то не меняется на протяжении сеанса, динамические только эти 12 элементов.
>>2280995 >В большем массиве нет гарантии уникальности конкантенации обоих элементов. Да и пофигу. При создании мапы дубли просто уберутся. >Ну да, просто ебани строчный литерал в несколько мегабайт, так все проблемы решишь. Я в душе не ебу что у него за строки. Если длинные - то, ясен хрен, мозги надо включить и почикать их хэшем. Если короткие - то можно и не ебаться. >Готовить ты его можешь как угодно, вот только без уникальных индексов в датасете будешь бибу сосать со своими хэшами. В чем будет заключаться суть сасания? Не улавливаю.
>>2281002 Хэш функция делает из любой залупы уникальный идентификатор "разумной" длины. Например, скармливаешь ей iso-образ на 10Гб и она превращает его в набор из, допустим, 64 символов: asdkfjaslkdjfaosie334304skdjf. Наверняка ты сталкивался на торрентах со всякими sha256, md5 и прочими. Вот это они, хэш функции. Можешь загуглить подробнее в яндексах я разрешаю.
Тебе нужно уяснить одну простую концепцию, которая отличает массивы от объектов (или хэш-мап): - Проверить наличие элемента в массиве можно ТОЛЬКО перебором. И это долго. - Проверить наличие элемента в объекте (мапе) можно МГНОВЕННО. Если знаешь его ключ. Типа ты не перебираешь все элементы и сравниваешь, а просто проверяешь: of (obj[любое дерьмо]) { значит элемент в объекте есть } Ключами в данном случае и работают вычисленные хэши.
// заполняем мапу (потом сохраняешь ее куда-нибудь, чтобы снова не ебаться) как угодно проходя по массиву твойМассивМассивовГдеИскать.forEach( e => { const хэшТекущегоМассива = hash(e); типаМапа[хэшТекущегоМассива] = e; }); // И все собсна!
>>2281002 >Как я понял эти методы для более сложной обработки данных, чем простое сравнение 2 строк. С таким редукционизмом можно любую проблему описать как сравнение строк. И ты сравниваешь 2 массива, которые очень заёбисто сравнивать из всех непримитивных типов. То, что ты там строки сравниваешь внутри них - вторично. >а потом опять же перебирать всю эту мапу каждый раз, как тот же массив, для поиска совпадений Мапа не перебирается "как массив", она перебирается как хэштаблица. И в отличие от базовых объектов, в пустой мапе нет встроенных ключей, наследованных от конструкторов. >Ведь с точки зрения математики - 1000 строк по 12 раз каждая будет тоже самое, что 12 раз по 1000 Причём здесь математика? Мы в треде про программирование, если что. >Большой массив то не меняется на протяжении сеанса, динамические только эти 12 элементов. Так это ещё хуже, так как в худшем случае ты будешь пробегать 12 раз по массиву при изменении этих элементов. >>2281016 >Я в душе не ебу что у него за строки. Если длинные - то, ясен хрен, мозги надо включить и почикать их хэшем. Если короткие - то можно и не ебаться. Вторая строка - урл. И там непонятно, имеет ли индекс пары значение или нет.
>>2281052 >Вторая строка - урл. И там непонятно, имеет ли индекс пары значение или нет. Ты додумываешь условия задачи, так можно рассуждать бесконечно. В исходном условии - дан массив из двух строк. Требуется проверить наличие такого массива в другом (баааальшом) массиве таких массивов. Все остальное - детали, которые будут влиять на нюансы, но не на суть решения.
>>2281052 >Мапа не перебирается "как массив" Значит как раз то, что мне нужно. Спасиб за объяснение, буду изучать подробно.
>в худшем случае Не, там как раз при каждом переходе на след страницу надо пробегать 12 раз. Поэтому я и запарился на счет скорости. Тем более, что массив может раздуться до нескольких тыс массивов. Там щас как бы всего чуть больше сотни массивов и в консоли я уже вижу 1680 итераций. Дальше то пиздец будет явно.
>>2281060 >додумываешь Не, он прав, я это описывал. В массивах по 2 строки - короткий текст[0] и ссылка[1].
Но я согласен, что сути не меняет. Задача то избежать повторной итерации всего массива.
Аноны, читаю про геттеры и сеттеры класса в JS и не понимаю, как работают префиксы _. Вот пример.
class User { constructor(name) { // вызывает сеттер this.name = name; } get name() { return this._name; } set name(value) { this._name = value; //префикс } } let user = new User("Иван");
Код будет работать, так как там есть префиксы. Но если их убрать, например:
this.name = value;
Получим ошибку:
RangeError: Maximum call stack size exceeded at User.set name [as name]
Но почему мы не можем писать сеттеры и геттеры без префиксов, если писали, что
>Защищённые свойства обычно начинаются с префикса _. >Это не синтаксис языка: есть хорошо известное соглашение между программистами, что такие свойства и методы не должны быть доступны извне. Тогда почему без префикса вызывается ошибка?
>>2281287 >>2281290 Типа проблема не в префиксе, а в том что name это сеттер, придумай другое имя. Вот это работает: class User { constructor(name) { // вызывает сеттер this.name = name; } get name() { return this.хуй; } set name(value) { this.хуй = value; } } let user = new User("Иван"); console.log(user.name)
>>2281287 можешь почитать про классы ещё, про оператор new, про ООП в js , а также data properties, accessor properties. Если будет name, то при создании объекта через new ты получишь бесконечную рекурсию, поэтому ошибка, ты привысил максимальное колличество функций, которые можно вызвать. Только я немного сам не понял, почему получается рекурсия, если при создании объекта присваивается имя, а гет и сет просто висят, они же не вызываются, видимо вызываются при вызове конструктора?
>>2281351 я нагуглил уже, пытался задать символ без переменной прям в объекте при инициализации, я так понял к такому символу нельзя уже никак обратиться >>2281350 да, сложн
>>2281287 Нету никакого "соглашения между программистами", это перекатуны с питона/жабы своё говно тащат в язык. Просто запомни, что в жаваскрипте нету никаких "приватных" членов и прочих хуёв и отталкивайся от этого.
>>2281709 Я и работаю на кабанчика, мань. Все у всех работает уже несколько лет как. Старый айфоны внезапно обновляются без твоего разрешения. Но ты, конечно, об этом не знаешь.
>>2281753 >Я и работаю на кабанчика, мань. О, типичный свидетель ООП, тюремный слэнг прилагается. >Старый айфоны внезапно обновляются без твоего разрешения. Да ещё и пиздобол.
>>2281826 Именно "готовиться" по этому списку, имхо, не очень. Он неплох для самопроверки - типа что ты можешь ответить по каждому вопросу. Но сами ответы не являются хорошим подготовительным материалом. Тут лучше почитать кантора и мдн.
Вот делаю я из redux reducer`а fetch запрос чтобы получить данные, но мне надо его делать только если пользователь залогинен(state этого хранится в другом redux reducer), где мне правильно реализовать эту логику? Попытался сделать if внутри useEffect, откуда вызывается extraReducer проводящий fetch запрос - нихуя не работает. мне прям внутри самого редюсера запрашивать инфу из другого редюсера и проверять ее? что то мне подсказывает что оно тогда не будет нихуя обновляться Гайды все по redux какие то слишком простые, в залупу не лезут, так что как такие вещи правильно делать я из них не узнал, поэтому надеюсь на вас
Двачик, на сколько хуевая практика передавать во внешние функции пришедшие по пропсам, функции изменения состояние(из useState'a)? Пример, есть компонент к которому в пропсах приходит функция отправки запросов к apiшке, в зависимости от результата запроса и приходящих данных нужно перерисовать компонент(или добавить что-то) соответственно в функцию эту передается функция изменения стейта. Это же говнокод шо пиздец, да? Собсно посоветуйте ченить почитать о архитектурных решениях в реакте, как грамотно распределить код бест практикс и подобное
>>2282222 Я не понимаю, вот вам не лень блять словами описывать, что код должен делать вместо песочницы и более простого описания. Все равно, что на собеседовании код маркером на доске писать.
>>2282260 Вопрос в первую очередь касается передачи "ChangeAutorizationStatus" во внешнюю функцию которая запрос делает и в результате успеха меняет стейт на true. Это же хуевая практика? И на сколько хуевая?
>>2282260 >словами лучше понимаю чем когда чужой код кидают Обосрешься с подливой на первом собесе где тебя попросят это сделать. Посмотри чужой код на гитхабе, почитай, собери у себя, поиграйся, посмотри как и что работает, после вопросов быть не должно. То что ты там под видосики пишешь - кол в вакууме.
>>2282268 Понимаю, но вот чужой код пока не научился читать нормально, теряюсь что где и куда передается. Вот если беру код и делаю зарисовки что откуда и куда тогда проще. А по вопросу моему что скажешь?
>>2282260 Сама по себе функция, которая отвечает за запрос, не должна быть сделана так, что она ожидает именно функцию изменения стейта в качестве аргумента. Она должна ожидать функцию вида (response) => void в качестве аргумента и всё. Будет эта функцию изменять стейт или нет - не важно.
То есть в теории ты можешь прокинуть сеттер стейта в качестве аргумента, если хочешь ответ с сервера сразу в стейт поставить, в этом ничего криминального нет. Главное, чтобы функция, которая делает запрос на сервер, была достаточно абстрактной, чтобы она не знала о том, откуда она вызывается, а коллбэк может быть любым.
На пальцах: const makeRequest = (successCallback) => axios.get('/checkAuth').then(response => successCallback(response.data))
//в компоненте можно хоть так хоть так её вызывать makeRequest(ChangeAuthorizationStatus) или makeRequest(res => ChangeAuthorizationStatus(res))
не называй функции с большой буквы, ёбаный рот, так только конструктор-функции называют
>>2282300 да вот в гугле чет толковых задач не нахожу, все хуйня какая-то по типу "сверстать форму с 3 кнопками при клике на каждую отдельный роут показывает разный текст и картинки" хотелось бы ченить по сложнее(не сильно я новенький во всем этом) аля, отправить запрос "сюда", принятые данные в таблицу с возможностью фильтрации. И подобное
>>2282053 >Вот делаю я из redux reducer`а fetch Мы вам перезвоним. Запросы делаются из middleware. Гугли redux-thunk. Из него есть доступ ко всему стейту.
>>2282336 включает, но он там как то подругому работает, типа они еще слой абстракции добавили по верх него мне интересно именно как делать fetch по условию(я уверен что я могу это сделать, мне интересно именно как нормальные люди его делают, чтобы не изобретать велосипед)
САп, аноны, у меня код перестал подсвечиваться, переменные раньше были фиолетовыми, функции желтым, а сейчас практически все белым текстом, в чем может быть проблема?
Когда создаю новый чистый проект и пишу код, функции и все остальное подсвечивается как и прежде. А в этом проекте цвета не отображаются, что за косяк?
>>2279665 (OP) Почему не совпадают внешний и внутренний консоль логи? Фактическому состоянию чекбокса соответствует внешний консоль лог. Почему внутренний пиздит?
Вопрос про контекст. Есть такая проблема, когда при передаче метода как аргумент функции теряется контекст, например: setTimeout(myObj.logInfo, 0) <- теряем контекст myObj, this становится Window(logInfo возвращает this) Решается либо через bind: bindLog = myObj.logInfo.bind(myObj) <- это понятно Но ещё решается так: setTimeout(() => myCat.logInfo(), 0) Почему тут помогает стрелочная, если она берёт контекст из окружения, здесь она откуда берёт контекст? Один чел написал, что "set timeout callback on its own closure", я понимаю что это значит, но где можно почитать про это поведение?
>>2279665 (OP) Как же бомбит, когда выходит какой-нибудь видос по JS или React и уже в первый день тысячи и десятки тысяч просмотров. Мне в такие моменты кажется, что если я у соседа-алкаша этажои ниже спрошу про JS и окажется что он тоже вкатывается, и племянник его.
>>2282635 Как вы вообще эти видосы ебаные смотрите, ни код скопировать нихуя, то что уместилось бы на одной страничке с пояснениями растягивается на полчаса экранного времени с ненужным пиздежом, это же неэффективно.
>>2282637 Зумерки могут каждые пять сек прерываться на просмотр инстаграмчиков тикточеков и прочей хуйни, пока бухтельщик бухтит на фоне. С чтением так не получается.
>>2282643 А потом идут сюда спрашивать как объявить переменную!. Надо записать скринкаст по объявлению переменной со смехуечками на час, стотыщ просмотров гарантированы
Читаю про прокси, символы и рефлекты там всякие. И это выглядит очень прекольно, но такое ощущение, что все эти преколы в основном позволяют писать непонятный код с неожиданными результатами типа всяких штук на том сайте с 99 бутылками пива. В настоящих программах это как-то используется? И если да, то нахуя?
>>2282922 Используется. В основном, в библиотечном коде. Чтобы для тебя либа или фреймворк выглядели как кнопка "сделать заебись", спрятав все подводные камни от глаз твоей хрупонькой душонки породив этим другие подводные камни, но для их разрешения можно просто прочитать доку либы, а не строить камнеобъезжательные велосипеды самому.
>>2283038 А что ты ожидаешь от них? Как и любые курсы - это в первую очередь наёб гоев на даллары. И после этих курсов тебя в яндекс всё равно не возьмут, так как у них есть бесконечный поток студентов, готовых за дошик работать. Но если ты совсем овощь, то и практикум сойдёт.
Народ, хочу из фронта стать фулстаком, если у кого-то был такой опыт перехода расскажите свою историю - что читали, учили, какие задачи на работе делали первое время. На работе есть возможность и бэк писать, но каждый раз охуеваю от этих доменов, сервисов, секвелайзов и тайп скрипта, сложно понять что вообще происходит.
>>2283057 Потому что == работает с приведением типов, если сравниваешь разные типы. Если хочешь нормальное сравнение, то есть === (и !==), он не приводит типы, так что все штуки в оппосте будут неравны.
>>2283061 Так она более простая, так как тебе интерпетатор автоматом строку в число проинтерпетирует и наоборот, тогда как со строгим равенством надо ебаться с приведением типов.
>>2283066 Да, очень простая операция. Просто запоминаешь как все типы преобразуются и ебаться вообще не надо. А если забыл, то сюрприз будет, ведь все любят сюрпризы.
>>2283066 >так как тебе интерпетатор автоматом строку в число проинтерпетирует и наоборот >как со строгим равенством надо ебаться с приведением типов Ебаться как раз не надо, когда нужно приводишь, когде не нужно не приводишь.
>>2283059 У тебя на фронте воркеров нет? Одна из разновидностей как раз сервис воркером называется. Лайтовая версия пердолинга с БД и обёртками над ней есть в виде IndexedDB. У него как раз вырвиглазное API, так что для комфортного использования им нужно сперва написать свою обёртку на промисах, то бишь сервис для работы с ним. Плюс воркеры тоже могут его дёргать, так что если сильно хочется, то типичные бэкопроблемы с кэшем, многопокпоком и очередями можно прямо на фронт завезти.
>>2283080 Ну ты и сравнил нормальный бэк где дохуище безнеслогикой с индексдб и обёрткой над ней, ну свой пет проект с бэком на firebase я могу и сейчас захуярить, поглядывая в доку
>>2283075 Более того, все айдишники, объявленные в разметке, автоматом добавляются как переменные в глобальный скоуп с ссылкой на элементы. Так что можно не заморачиваться со всякими методами итерации по ДОМу и просто вызывать условный `zalupa_input` когда надо.
>>2283085 >Ну ты и сравнил нормальный бэк где дохуище безнеслогикой Хочешь сказать у тебя на фронте даже бизнес-логики нет? Ты там шаблоны чтоли верстаешь? >ну свой пет проект с бэком на firebase я могу и сейчас захуярить, поглядывая в доку Но ведь не захуярил. Так что пока ты пиздобол-верстальщик.
Спалил баг жабскрипта в консольке: при наследовании класса, прототип объекта от унаследованного класса называется родителем класса, хотя у него даже конструктор ссылается на полученный от родительского класс
Есть асинхронный метод - анимация на канвасе. Нужно что бы он прекращался как только свойство менялось с false на true. Сейчас после каждого await стоит >if (this.isFinished) return; Как лучше это реализовать?
Подскажите как сделать, чтобы кнопка активировалась при вводе данных в инпут. Нашел вот такое решение: // элементы const in_1 = document.getElementById("input_1"); const in_2 = document.getElementById("input_2"); const btn = document.getElementById("btn");
// функция проверки и вкл/выкл кнопки const check = () => btn.disabled = in_1.value.length < 3 || in_2.value.length < 3;
// проверять при изменении инпутов in_1.addEventListener('input', check); in_2.addEventListener('input', check);
// проверить разок в самом начале check();
Но у меня формы с инпутами динамические, создаются после выполнения функции и у каджого инпута не может быть id, так как они одинаковые. Как это можно сделать по другому? пробовал вешать на каждый инпут onkeyup, но также не сработало.
пробовал написать вот такую функцию, вешать addEvent, но в консоли выдается ошибка TypeError: Cannot read properties of null (reading 'addEventListener')
function check () { if (inputCelsius.value.length < 0) { buttonCalculateAverage.removeAttribute('disabled') } else { console.log('нет') } }
Где посмотреть дефолтное поведение для всех ивентов? Ну типо что focus и blur происходят на onMouseDown, а сабмит формы именно на onKeyDown и т.д. А то приходится все это опытным путем выяснять, но хочется понять что там под капотом происходит, так сказать.
>>2283173 Во-первых, querySelectorAll('type-celsius') - точку забыл, у тебя тега type-celsius нет. Я и с классом таким элемента не нашел. Ты уверен, что длина этого псевдомассива может теоретически быть -1 или -2? Во-вторых, у тебя эта ошибка лезет даже когда фаренгейт делаешь.
>>2283165 Ну вот допустим я хотел узнать при каком ивенте возникает сабмит формы. На MDN я этого вообще не нашел, в описании onKeyDown ничего про это нету. Загуглить на всяких стаковерфлоу конечно можно, но не охото васянские решения читать, хочется понять как это работает, чтобы не споткнуться на каких-то нюансах.
>>2283166 Про какие именно спеки речь? Это типо еще от браузера отличаться может? Ну и хуйня...
>>2283215 Так а я именно про нажатие Enter. В каком ивенте мне надо делать preventDefault, чтобы форма не сабмитилась при нажатии Enter? Сейчас то я разобрался методом проб, но как в будущем искать дефолтное поведение ивентов и что они вызывают?
>>2283223 >В каком ивенте мне надо делать preventDefault, чтобы форма не сабмитилась при нажатии https://stackoverflow.com/questions/11235622/jquery-disable-form-submit-on-enter этого всего в спеках не опишешь чел. форма по дефолту сабмитится если юзер нажал enter в текстовом input'е. соответственно вешаешь обработчик на keypress и если enter . при этом надо проверить что это не textarea тк там enter это перевод строки.
Итак, чуть изменил, после ввода в инпут кнопка начала активироваться, но она активируется, даже если в инпуте нажать бекспейс и когда инпут снова пустой она не деактивируется
Как я понял здесь проблема в неправильно прописанном условии input.value != 0 так как это условие не работает, при любом нажатии клавиши функция запускается, а не при наличии цифр в инпут
Какие есть способы разделить стили при клике на кнопку, когда на нём срабатывает сразу active и focus? Мне стиль фокуса нужен только при наведении табом, при этом фокус срабатывает и просто при клике, мало того, работает фокус и после клика, пока ты на чём-то друго не фокуснёшься. focus-visible имеет очень маленькую поддержку кроссбраузерную
>>2283271 при клике у тебя срабатывает button:focus:active при просто фокусе только button:focus
button:focus:not(:active) - стили для фокуса без active напр. borderc-lor:green button:focus:active - стили для фокуса с active, напр. border-color:red
>>2283275 >button:focus:not(:active) - стили для фокуса без active напр. borderc-lor:green Нет, это так не работает, любой клик сразу же хуярит дополнительно еще и фокус стили
>при клике у тебя срабатывает button:focus:active >при просто фокусе только button:focus button:focus будет работать при любом из этих действий. Нот актив не работает, я не знаю почему
>>2283524 >Подмылся, у тебя если курсор уже наведён на элемент, то ты разницы не заметишь, но за старания спасибо Че? табом переключаешь - зеленый. мышкой кликаешь - красный. стили разные епт. >Опять же, если ты нажал на элемент, и убрал с него курсор, то он так и останется в состоянии active Не active, а focus, потому что прикинь кликая на кнопку ты переводишь фокус на нее. и когда увел мышь она останется в фокусе. но когда кликаешь стиля фокуса нет
>>2283525 Если б было так. Много где нужно умение писать юнит тесты, уметь в тайпскрипт, знать вебсокеты и вебворкеры, а тут нихуя не надо, реакт, редакс, и умение писать SPA, все. Гит, вебпак и нпм это вообще пиздец требование.
>>2283529 >Не active, а focus, потому что прикинь кликая на кнопку ты переводишь фокус на нее. и когда увел мышь она останется в фокусе. но когда кликаешь стиля фокуса нет Блядь, стиль от фокуса остается и после того, как ты кликнул по кнопке, а мне нужен стиль фокуса только для таба
>>2283555 >Если б было так. Много где нужно умение писать юнит тесты, уметь в тайпскрипт, знать вебсокеты и вебворкеры, а тут нихуя не надо, реакт, редакс, и умение писать SPA, все. Гит, вебпак и нпм это вообще пиздец требование. Да везде такие требования, ТС это уже давно стандарт, гиты вебкпаки и прочее говно уже даже за условие не считается, можешь и не знать, всё равно работать с этим будешь
>>2283573 >на mouseup какой-нибудь blur Я проблему уже решил, и потому и спрашивал, может кто знает какой-то крутой подход для этого, чтобы в пару строк и без костылей. Но вышло всё равно с костылями. >потому что кликом ты включаешь фокус, это логично Ну я об этом в изначальном посте писал, че ты блядь мне объясняешь
>>2283588 Изначально ты спрашивал про разделение стилей, и это легко сделать, а то что после клика остается фокус было уже другой частью вопроса и вот это решается "костылем" только непонятно почему ты это называешь костылем. Потому что это нормальное поведение а костыль это то что ты хочешь сделать.
>>2283926 гейммейкеры одни из самых верных слуг сатаны представьте сколько людей тратят туеву хучу времени на дроч бесполезной хуйни. прогресс дал людям долгую но пустую и бессмысленную жизнь которую они проводят за играми которые буквально называюся таймкиллерами, чтобы путь от пизды до могилки не казался таким скучненьким
Че пацаны, геймдев? Сижу тут играю в какую-то дрочильню в стиме пиксельную, она сейчас в топ 20 стима. Захожу в кредитсы, а она нахуй написана на электроне и ЖСе, топ 20 игра в стиме написана на ёбанном джаваскрипте.ИГРА. В ТОП 20 СТИМА. https://store.steampowered.com/app/1794680/Vampire_Survivors/
Бля, вот есть у меня из reactstrap <Input/> я его валидирую, если он не проходит то мне нужно повесить на Input проперти invalid, в ином случае valid. Так какой функцией вешается проперти на компонент? я понимаю что можно тупа бутстраповский класс повесить, но это как то не круто, как пропертиз то менять? в доках реакта не могу найти, нашел какой то setProps но я не понял из стандартной библиотеки он или нет
>>2283939 >Захожу в кредитсы, а она нахуй написана на электроне и ЖСе Я тебе даже больше скажу - клиент стима тоже написан на электроне и реакте (фейсбучном фреймворке ЖСа). Так что играя в это поделие ты как минимум два инстанса хрома открываешь. >топ 20 игра в стиме написана на ёбанном джаваскрипте. Электрон только запускает инстанс хрома, движок которого написан на крестах. Всё графно один хуй обрабатывается на видимокарте через крестовые/сишные либы. Может там придётся дёргать ноду, чтобы почитать/записать файл настроек в файловой системе. Заместо БД там скорее всего SQLite, который никакого отношения к ЖС не имеет. В итоге ЖС там исключительно для запуска html с канвасом, ну может ещё и либу для работы с канвасом запускает.
>>2284025 Ну понятно что оно работает на видеокарте, как и 3Д графика в браузерах, просто я все равно немного прихуел с такого поворота. Очевидно, что хром это не лучший игровой движок, не лучше ли игру на нормальном игровом движке запускать? По твоей логике любой стек для чего угодно можно использовать, ведь это всё равно в итоге компилится в бинарный код. Если уж приводить пример с десктоп ЖС, то наверное самый лучший пример это VSCODE.
>>2284046 >Очевидно, что хром это не лучший игровой движок, не лучше ли игру на нормальном игровом движке запускать? Дефайн "нормальный". Для пиксельного говна хуюнити не нужен.
Помогите пожалуйста. После того, как я делаю деплой своего react проекта на gh pages, проект ломается нахуй. В деплое то, он работает правильно. А вот если локально запускаю проект, то ни одно изображение не отображается. Изображения хранятся в папке public/images. Я так понял, папка public как будто целиком игнорится. Но если не делать деплой на ебаный gh pages, то все работает.
Привет, погромисты, как правильно устанавливается vue, ника кне пойму. устанавливаешь НПМ, прописываешь команду, вылазит выбор установка стандарта или свои настройки, дальше создается проект с вложенной папкой, которая имеет то название, которое указал.
Но нахрена мне эта папка, если все файлы нужны в основной папке без всяких App. Как используя команду "vue create" создается проект в основной папке, без создания дополнительной. Работаю в вебшторме.
>>2284181 Спасибо, нашел! А через вебшторм можно выбирать всякие тупескрипт и прочие? все, что можно выбрать при прописывании команды? сейчас попробовал через сам шторм, не увидел вариантов выбора
Повесил на div элемент onMouseDown(event) { event.preventDefault() }, чтобы при нажатии на него не сбрасывался фокус с элемента, который сейчас в фокусе. Запревентил ли я что-то еще кроме этого поведения и на что это могло повлиять?
>>2284513 Ну если ты активно будешь выдрачивать все их требования и активно навязывать свою кандидатуру, могут и взять. Так иногда людей в компании берут, даже если они с 3-4 раза только проходят, правда если ты так выдрочишься, то тебе может и не обязательно в яндекс идти. В сбер я думаю требования пониже могут быть, у них дохера всякой разработки есть, не везде наверное нужны сеньеры с 20 летним опытом
Можете популярно объяснить, почему на больших и сложных проектах юзают Ангуляр, а не тот же Реакт? В чём Реакт проигрывает Ангуляру? Интересно бы было послушать мнение тех, кто работал с обоими.
>>2284705 > на больших и сложных проектах юзают Ангуляр, а не тот же Реакт Не почему, используют Реакт, я собесился в одну компанию, где они раньше использовали ангуляр, и теперь переходят не реакт, на мой вопрос почему, ответили что-то в духе "пук-среньк", из чего я делаю вывод, что просто рыночек порешал. И тенденция сейчас такая, что реакт отвоёвывает всё больше пространства. Будет больше ангуляра, перекачусь в ангуляр, мне похуй, че вы мне сделаете?
>>2284705 Встречал по работе большие проекты на обоих фреймворках. Правда когда работал на Ангуляре был еще джуном и уже слабо помню, но его архитектура с сервисами и rxjs распологает писать объектно ориентированный код. Поэтому в него можно удачно вписать всякие стандартные паттерны и сложные архитектуры. Проект был реально большой, но даже я тогда довольно выстро в нем осваивался, благодаря солидной архитектуре и ооп.
На реакте же все на функциональных компонентах и бесконечных хуках, ну и менеджер состояний типо редакса имеет свои проблемы и скелится не то чтобы прям очень удобно. Но я не уверен, что проект максимально компетентно был сделан. Может можно и получше изъебнуться как-то с реактом. Зато для средних/маленьких проектов реакт как по мне подходит ГОРАЗДО лучше, чисто нахуярить на нем парочку страниц можно очень быстро. А переходят на него наверно чисто потому что реакт популярней=проще найти работника.
Но если бы мне пришлось на каком-нибудь гигантском проекте работать, я бы скорее предпочел ангуляр с нормальным лидом.
Сап, фронтаны, помогите с версткой. Уже два часа пытаюсь сделать так чтобы зеленая штука растягивалась по высоте содержимого, ни height, ни гугл не помогают. https://jsfiddle.net/2rjma0yw/
>>2284174 Открываешь в отладчике браузера вкладку Network, в ней жмешь таб "Img". В етой вкладке буду показаны все запросы к кортинкам, кортинки которые не удалось загрузить будут подсвечены красным. Щелкаеш на запрос, в информации о запросе будет полный путь до картинки по которому браузер попыталсе ее запросить. Смотриш етот путь, сравниваеш с тем где реально лежат файлы в твоей ветке которая деплоится на gh pages. Пытаешся понять причину несоответствия. Есть ли етот файл в ветке с gh pages, правильно ли к нему формируется урл из разметки и т.д.
>>2284705 У ангуляра было три года форы и он заходил как готовый фреймворк и использовал концепты, знакомые бекендерам, которых можно было переманивать.
Реакт появился позже и как библиотека визуализации, вокруг которой надо самому собирать приложение.
Со временем три года перестали быть значимым разрывом, плюс их преимущество сгладил переход AngularJS -> Angular 2. Реакт оброс сообществом, инфраструктурой и рецептами по написанию приложений любого уровня сложности.
В сухом остатке, реакт не требует особого интеллекта, можно посадить любую обезьяну и она особо не накосячит, а если накосячит то ето легко исправляется. Ангуляр имеет чуть менее пологую кривую обучения, при етом не предоставляя никаких плюшек которые бы ето оправдывали. Ето кмк сыграло ключевую роль в популярности.
Сап, фронты, скачал шаблон, но там файл yarn, а я использовал только npm в других проектах. Как заменить ярн на НПМ? Не знаю правильно ли вопрос задал. Прост файлы пекеджей не скачиваются через команду npm
Чет не пойму, товарищи. Есть ветки мастер, дев и taskBranch. Если мы ведем ветку с мастера на taskBranch. git checkout -b taskBranch То мы получаем все данные из мастера. После завершения таски пушу в ремоут. А теперь неясность. Как обновлять данные? Как понимаю просто в taskBranch низя запулить дев(а там все общие правки). Как быть? Нужно обновить taskBranch без пушинья всех коммитов из дева.
>>2285360 я понимаю, что var в цикле делает переменную глобальной, а let локальной. но я всё ещё не понимаю, почему если вар, то этот код логает 3 3 3, а через лет он логает 0 1 2 как и должен
>>2285370 так в любом случае функция лог вызывается после цикла, я не понимаю, она типа остаётся как стейт для каждого вызова? всё равно не понятно до конца >>2285371 Шизик.
>>2285374 Вызывается всегда после цикла но в случае с var она печатает глобальную переменную i у которой значение 3 а в случае в let печатает значение локальной для итерации переменной i, которое потом не меняется
>>2285334 Следовательно делаю правки в деве, а потом черри-пиком беру оттуда правки? Меня из-за истории не пидорнут?
>Команда git cherry-pick берёт изменения, вносимые одним коммитом, и пытается повторно применить их в виде нового коммита в текущей ветке. Ок, понял. Правки в деве, потом их в ветку.
>>2286021 Сам как считаешь, что более вероятно, что это css - ФОРМАЛИЗОВАННЫЙ DSL - работает рандомно, или что это ты необучаемая ленивая мартыха чтаешь документацию рандомно?
Долго еще будешь с магическим мышлением носиться и считать, что программы что-то делают случайно?
Объясните вкраце что изменилось важного в реакт роутере в6? Есть курс по реакт роутеру, но он по пятой версии. Я вроде чекал, из того что заметил теперь нужны роуты оборачивать в роутес. Только зачем? И компоненты передавать через свойства
Аноны я скуф пытающийся в реакт, погружаясь в хуки, редюсеры, эффекты, контексты, колбеки, возникает ощущение что я просто тону в этом. Выглядит все полезно конечно, но как то тяжеловато после базового жса.
Аноны, я прозрел. Сегодня впервые дописал коментом после переменной её тип и понял что пора переходить на ts, ибо так легче, прощайте замшелые типоненавистники и здравствуйте тайпскрипт братья!
>>2286235 Я не против, если ide сама будет определять типы, но пока она так не умеет, а я не хочу запариваться запоминанием что возвращает функция: строку или число, буду типизировать.
>>2279665 (OP) Привет! Кто-нибудь собирается пойти на профессию в htmlacademy? Могу помочь купить с приличной скидкой. Например, стандартная профа "Фронтенд-разработчик" будет стоить 99к, вместо 159к
Можно ли в реакте на прямую обращаться к дом элементам и менять их стили/атрибуты(document.getElementByID например)? или это ну очень хуевая практика и нужно искать обходные пути? Крч, если я так буду обращаться к эллементу это говнокод будет или приемлимо?
>>2286357 >Который по факту верстальщик бомжара. Там пиздец меня раздражает, что там по плану месяц изучают вёрстку реакт компонентов. Это же жопа какая-то. Если уж учить реакт, так полностью.
Щас даже 15-летние дети и даже быдлицы тёлки с айти колледжа учат реакт и не просто реакт, а с тайпскриптом. И редакс прикручивают, хоть он и не всегда нужен, но прикручивают. И работу находят за счет молодости, упругости или за счет пуси пасса.
И короче, вот они так хуячат. Да.
А хтмлакадемия за сотни нефти под 200к предлагают просто научить верстать Барбершоп и верстать просто реакт компоненты без тайпскрипта, без редакса, без нихуя.
>>2286422 >вёрстку реакт компонентов Там же вроде просто про Styled components рассказывают. А в курсе по реакту уже нормальный реакт, с тайпскриптом, юнит-тестами и т.д.
>>2286430 >хтмлакадемия за сотни нефти под 200к предлагают просто научить верстать Барбершоп Во-первых за 135к, во-вторых вон чел кинул вариант за 100к купить. 200к это хуйня из-под коня, там 2 года длительность, а в обычном формате 1 год. С тайпскриптом, тестами и редаксом это другая профессия, реакт разработчик, где учат верстке 1 месяц всего в начале, чтобы ты банально представлял, что такое дом. Там полный фарш, конечно, ну и даже это стоит 150к.
>>2286464 Ну по факту верстку можно и самостоятельно освоить или же там же купить асинхронную профессию фронта, она стоит как интенсив, но зато все модули и никто не подгоняет плюс можно выкинуть ненужное. Жалко год назад этого не было, я бы сразу 2 профы взял и в ус не дул.
>>2286478 Я искал, походу они всё устаревшее нахуй эти книги. Тут или по доке клепать или какие-то видеокурсы искать. Я на Udemy искал, там курсы по ноде какие-то рыхлые, даже если они длинной 60-70 часов, всё равно не покидает ощущение, что там Индус пройдется по самым базовым верхам, скипнет для упрощения все подводные камни и усложнения, и ты останешься с хуем к носу.
>>2286493 Очень сильно. Хуй найдешь работу. А зная один фреймворк, перекатиться на другой очень сложно, придется заново верстку и жс изучать, там же все по-другому.
>>2286506 Так я сам вкатыш, скоро начну бегать по собесам если хоть кто-то будет звать, конечно >>2286508 Ты уточняй у них, сильная ли это проблема. У меня коллега по курсам сидела реакт ковыряла, а ее на вью позицию позвали. И она говорит тип не страшно, знания все пригодились.
сап js-треду. сам в кодинге полный ноль (не кройте хуями, плз), кто-то может объяснить, возможно ли написать что-нибудь подобное для телеграма: https://habr.com/ru/post/439218/ если возможно, то сколько это времени и сил отнимет? возможно ли новичку такое сотворить?
>>2286512 >Нужен ли бэм Нет. Да и вообще у меня есть мнение, что если человек на полном серьезе может посмотреть на названия классов, написанные в бэм стиле и его первым вопросом не будет "что это за ебаное дерьмо, и как сделать по-человечески?", то у него явно легкая степень умственной отсталости.
>>2286802 Брать любой препроцессор и пользоваться его средствами для нестинга селекторов и модификаторов, уж не 2005 год на дворе, чтобы пытаться это все в названия классов запихнуть.
Короче копипастну в тред ща читаю eloquent javascript в главе с наследование столкнулся с таким кодом class Matrix { constructor(width, height, element = (x, y) => undefined) { this.width = width; this.height = height; this.content = [];
for (let y = 0; y < height; y++) { for (let x = 0; x < width; x++) { this.content[y width + x] = element(x, y); } } }
set(x, y, value) { super.set(x, y, value); if (x != y) { super.set(y, x, value); } } }
let matrix = new SymmetricMatrix(3, (x, y) => `${x},${y}`); console.log(matrix.get(2, 3)); console.log(matrix) Вопрос как тут работает вот этот код ? Что в нем происходит ?
constructor(size, element = (x, y) => undefined) { super(size, size, (x, y) => { if (x < y) return element(y, x); else return element(x, y); }); } понятно что мы наследуемся от класса Matrix но что происходит после super для меня загадка. И да - супер-класс генерит матрицу, наследуемый симметричную матрицу.
>>2286871 Нечитаемо Вот пиздец, ебаная макака, неужели это настолько тяжело - сделать возможность постинга кода хотя бы моноширинным текстом с сохранением отступов? Хуй с ней с подсветкой уже.
>>2286904 благодарю анон, именно что-то типа такой графики и надо было. Приду домой с работы и попробую разобраться
смутило так же описание кода, например вот это To ensure the matrix is symmetrical, the constructor wraps the element function to swap the coordinates for values below the diagonal. где там оборачивается функция и зачем ?
У кого-то было так, что компонент по маршруту не отрисовывается? Подключил React router (6), прописал роуты, прописал динамический параметр в path компонент в element, адрес в строке url прописывает, матч проходит, но сука не отрисовывает ничего.
Как сверстать такую хуевину? Срезать углы вроде можно легко, но проблема в том что тень должен быть не прямоугольным, а совпадать с этими срезанными углами как бы. И еще, как эту линую по контуру провести, хелпуйте.
>>2287180 >но проблема в том что тень должен быть не прямоугольным Я про box-shadow. Когда мы делаем border-radius, тень тоже под него подстраивается. Тут должно быть так же, тень подстраивается под срезанные углы.
>>2287062 Вызываю location в консоль. Плюс есть страница для несовпадающих маршрутов, через path=" * ". Location показывает путь и вообще все так, будто страница должна отрисоваться.
Версталы тут? Я могу писать какой угодно код для бэка, но даже небольшая толика работы с версткой разносит мне пердак. Итак, вопрос на миллион: как сделать адаптивный квадрат, который меняет свой размер по меньшей стороне родительского элемента? Без кульбита с padding-bottom, который работает только от ширины. Я уже ведро слёз пустил из-за того что не могу нормально сверстать адаптивную сетку с превьюшками с подписями, ебанный врот, неужели мне и тут рефами реакта обмазывать и считать жаваскриптом?
>>2287316 Тебе просто пердолинг на бэке совсем мозг съел. Зачем тебе блять попиксельно высчитывать размер квадрата, когда достаточно, чтобы его стороны были равны и он не вылазил за пределы родителя? Твоя проблема в том, что ты сразу какое-то генерик решение пытаешься хуйнуть, когда тебе надо карточку с брэйкпонтами сверстать.
>>2287317 > Зачем тебе блять попиксельно высчитывать размер квадрата Пчел, мне это как раз не надо. Я псевдокодом просто написал что хочу получить - вмещать сраный квадрат (и содержимое в его пределах) в не менее сраного родителя, который может быть хоть вертикально вытянутым, хоть горизонтально вытянутым.
Анон, а ты когда учил js, всегда понимал документации и прочие горы текста? Я просто сейчас начинаю читать и спать хочется и не понятно нихуя. Сейчас например надо такое прочесть, даже на русском, а хуй там, сразу мысли улетают https://tproger.ru/translations/javascript-this-keyword/
>>2287325 Звучит неплохо, но ведь value --local-card-size родителя нужно прописывать отдельно, правильно? Я не вижу здесь и не нахожу в гугле его автоматический расчет. И ещё переменные вроде вебвью не поддерживаются, а это важно.
>>2287335 Вот от этого. У меня таблица на матрешке из флексов, содержимое меняется кодом только при малых размерах главного родителя, в остальных случаях содержимое неизменно и его размеры должны меняться пропорционально размерам главного родителя. Короче, чтобы на девайсах с разным dpi была одна и та же верстка, пропорционально и плавно меняющая размеры при изменении размеров вьюпорта.
Капец. Вчера собеседовался на джуна в одной конторке. Сначала всё как обычно проходило, типа расскажите о себе и какой стек юзаете. Ну типичное начало. Потом эйчарка такая выдаёт: "Так как поток желающих на нашу вакансию огромный, предлагаю вам пройти iq тест при нас, чтобы сразу узнать чего вы на самом деле стоите. Минимальный балл на джуна 115".
Я напрягся, но не растерялся и согласился. Открыли мне сайт с прохождением на время там было 20 минут. Ну короче чё вы думаете, я набрал 106 баллов всего. Как итог - мы вам перезвоним.
>>2284705 У реакта нет DI, у ангуляра он есть. Без DI писать крупные проекты можно только основываясь на костылях. Также ангуляр это фреймворк, а не библиотека как реакт, что подразумевает следование принципам этого фреймворка, общую структуру и правила, в реакте каждый пляшет как он привык и хочет, общей дисциплины нет. Следовательно, если компания хочет быстро выкатывать фичи и при этом никак не влиять на выкатывание будущих, а также иметь меньшую зависимость от сотрудников которые в компании 2+ года, то она выбирает ангуляр. Если компании нужно выкатить чтото asap и ей похуй на всё остальное и будущее проекта в целом, то она выбирает реакт, либо если продукт компании быстро сверстанный на реакте выстрелил, то она тоже его выбирает, просто потому что это говно уже сложно переписать на ангуляр не потратив уйму времени и денег. В целом, если ты уверен в своем продукте, у тебя есть клиенты и ты не хочешь их потерять, то твой выбор это реакт. Если ты не уверен выстрелит или нет, у тебя неь клиентов, то твой выбор это реакт.
>>2287565 Хуя как фантазёра порвало, на ангуляр просто в своё время сектанты своих кабанчиков подбивали переходить, попутно рассказывая мифы про настоящее ООП. А евангелическое сектантство как раз в тырпрайзе заходит. Поэтому и получился в итоге тырпрайз-онли пласт легаси-говна на ангуляре, а не из-за DI.
>>2287577 Про какое легаси ты лепечешь, болезный? Я сейчас работаю на проекте, который писался на 8 ангуляре, сейчас перешли на 12. Код чист как слеза младенца, новые сотрудники в шоке от того как просто вкатиться на новый проект, и от того как легко имплементятся новые фичи. Почему так? Потому что архитектура построена грамотно, уже на всё есть подходящая группа сервисов, всё зависит от абстракций, а не деталей, как и положено в хорошем коде. В то время как ракто макака в поте рвёт волосы на жопе от незнания того, как он будет пробрасывать тысячу пропсов через тысячу компонентов, ангулярогосподин инжектит нужные сервисы и заканчивает писать тесты.
>>2287340 От ширины еще более главного родителя. А уже тот может или заполнить собой весь вьюпорт или же получить сбоку допблок, вёрстка адаптивная и просто так отталкиваться от вьюпорта не выйдет да и не хочу, хочу не зависеть от кривости мизинца правой ноги.
>>2287343 Возможно, но >Is there a better way which doesn't use CSS properties and calculations? Вебвью нужен.
В общем я понял, адаптивный квадрат сделать с простым наследованием размеров родителя то ещё веселье.
>>2287330 Я вкатун, увидел твой пост, интересно было смогу ли я прочесть статью по ссылке. Внатуре спать хочется. Я пока читал, ушел на 1 час вздремнуть. Только сейчас дочитал. Ну, неплохая статья. Я вкачуся, вот увидити.
>>2287557 Забей хуй. Если с порога такие неадекватные предложения, то на работе вообще был бы пиздец. Нахуй такое надо. Айкью тест может показать только одно - какой еблан человек, который предлагает пройти айкью тест.
>>2287557 Со временем научитесь на такие идиотские предложения отвечать в духе - невопрос, но сначала я должен убедиться, что ваш iq соответсвующий, так что давайте сначала вы.
>>2287557 Я как-то на собесе тест на логику проходил. Но он был настолько простым, что видимо был введен чтоб совсем даунов отсеивать. Про айкью на собесах первый раз вижу. Зачем вообще веб-макаке iq?
мне нужно, чтобы второй dispatch начинал выполняться после только после того как первый будет fullfield. через .then работает через раз(иногда getPlaylist присылает плейлисты с еще не удаленным плейлистом), понимаю, что надо как то через async await, но не понимаю как конкретно это реализовать
>>2288109 async и await это абстракция над then, проблема в том, что ответ на удаление не даёт гарантий на то что запрос плейлиста даст тебе актуальный результат. И этот запрос тебе нужно делать только при подключении, потом ты просто обновляешь стейт в соответствии с операциями добавления и удаления.
>>2288129 >я эту хуйню даже прочитать не могу А это потому что ебаная макака не может сюда добавить какой-нибудь аналог тега <pre>, так что макаба съела звездочки и сделала курсив.
Помогите разобраться со значением this в колбэк функциях обработчиков событий. Я совсем запутался.
У меня два затупа: 1. Почему в обычной анонимной cb функции this имеет значение объекта, на котором произошло событие? Ведь, по идее, ему неоткуда там взяться.
2. Почему при использовании стрелочной функции this имеет значение глобального объекта? Ведь, по идее, он должен хватать внешний контекст, т.е. тот this, который в функции addEventListener. А она, по идее, запускается с контекстом объекта btn.
>>2288306 Потому что у стрелочных функций нет this, они используют тот this, который у места где они вызваны, а ты это вызываешь там, где this это window.
Сеньоры, объясните, вы этот this вне классов всяких используете вообще? А то выглядит как пиздец и не совсем понятно нахуя.
>пишешь бэк >архитектишь бд >адаптируешь сложные алгоритмы используя комбинаторику >не можешь сверстать ничего сложнее кнопки с синим бэкграундом и транзишином при хавере Ебало имеджинировали?
>>2288306 Мне очень кратко донесли это одной фразой. При стрелочной функции контекст формируется во время объявления, при декларативном - во время вызова. Соответственно, контекст во время объявления стрелки нигде, т.к. кнопка не нажата, она просто объявлена и все, вот ее контекст и является глобальным. Первый же вариант формирует контекст именно когда ты вызываешь его. Если надо контекст в стрелке, делаешь bind
>>2288323 Да, это понятно, что у стрелок нету this и они берут его из внешнего окружения. Но я не понимаю, почему у нее во внешнем окружении this=window. Ведь она передается как колбэк в метод объекта - разве в этом случае ее внешнее окружение не будет методом, в которую она передается? А метод, вызываемый через . вроде как должен иметь this равным объекту слева от точки.
>>2288367 Да, конечно, можно все получить в объекте события. У меня вопрос возник на почве написания XMLHttpRequest-а.
Написал вот так: xhr.addEventListener('load', () => console.log(this.response));
И ждал, что в this будет xhr. А там вместо этого window! "Вот это поворот!"(с)
>>2288334 Чот так написано, что я ничего не понял X_X Поясните кто-нибудь тупому мне
>>2288451 Хм... А когда объявляешь анонимную ф-цию (любую) в параметрах вызова ф-ции, разве она не считается объявленной внутри этой функции?
>>2288460 >разве она не считается объявленной внутри этой функции? Э, вроде считается, но раз клик не произошел, все равно контекста кроме глобального нет.
>>2288460 >Чот так написано, что я ничего не понял Если передаёшь колебком обычную функцию в обработчик событий, то у неё контекст this = currentTarget, а у стрелки так не делается
>>2288481 Ага! Слушай, ну если так - то все встает на свои места! Т.е. когда я пишу объявление ф-ции в параметрах вызова, она "объявляется" снаружи вызова, а не внутри. Правильно понял?
Если так, то это прямо серьезно добавляет к моему пониманию "какого хрена происходит в JS"
>>2288482 Да, видишь, пишут, что походу она объявляется таки снаружи! Тогда понятно, что там будет window (т.к. оно и есть "наружа"). Буду теперь знать лол
>>2288495 Да, вроде почти допер. Непонятным осталось разве что одно - откуда этот this берется в обыной cb-функции. Просто bind-ится "под капотом" внутри метода?
Пук-среньк, здравствуйте. Определённое время думал насчёт it, куда идти, что делать. Остановился на вебе. Погуглил, почитал, что да как изучать, для чего нужно, все дела. Собственно, вопрос: Хватит ли 14-16 (на крайний случай 18) месяцев для "вката" и получения каких-нибудь копеек на правах джуниора при стабильном, но не слишком быстром обучении (ололо двух часов в день)? И, если можно, кто с чего начинал ознакомление с вебом, в каком порядке удобнее изучать документацию и так далее?
Не бейте вкатуна ссаными тряпками, пожалуйста или бейте, если поможете ответом.
Суп хакеры, нужно ли пушить соурсмапы, которые генерит тайпскрипт? Или они должны генериться на каждой машине самостоятельно? Типа как нод зависимости? Я просто для петпроджекта, т.е. в целом конечно похуй, но хочется узнать, как с ними нужно обращаться при пуше
>>2288794 Да забей хуй, это токсичные обрыганы, которые всем подряд такое пишут ЭТА НЕ ТВАЁ ТЕБЕ НЕ СТОИТ ЭТА НЕ ТВАЙЕЕ)))))000, шли нахуй таких долбоёбов, и можешь смело считать их матерей проститутками немоёвкатилсязагод
>>2288498 >какого хрена происходит в JS Какого хрена происходит в любом яп, ты хотел сказать. Везде агрументы вычисляются перед вызовом функции, в которую они переданы.
>>2288798 сейчас прохожу курсы и тут есть кандидаты совсем печальные и ниче им не мешает хотя б попробовать. ну и мне кажется с полного нуля я неплохо продвинулся, могу решать задачки с кодварс 5-6 уровня, простенький лендинг сверстать, разобрался с гитом. Еще пол годика в таком режиме поебашу и можно по собесам идти, куда нибудь макакой за 500$ благодарю за поддержку анончик.
Есть аноны, шарящие за монго? Скажите, почему данный пайплайн не работает, когда я его запускаю через ноду, и работает, когда я запускаю его через монго компас(десктопный интерфейс монго)
>>2288862 "Какого хрена..." - это я в широком смысле. Просто у меня часто в голове возникает именно этот вопрос в процессе обучения JS (когда я начинаю путаться вот в таких вещах). Другие ЯПы не учил, поэтому это не претензия именно к JS. Скорее претензия ко мне лол
>>2288975 А какие курсоделы не цыгане по-твоему? Любые это по факту продажа за небольшую сумму инфы структурированной, а большая часть денег платится именно за менторство.
Так, синьеры-помидоры. Кажется ваш жабаскрипт я понял и теперь мне нужен какой-нить пет проект, что бы хр-очки текли, а тимлиды падали в обморок от говно кода. Планирую покрутить вуе с тс, помогите охуительными идеями если у кого есть какой нить макет не понадобивщийся будет вообще каеф
>>2289078 Так, мой престарелый друг, давно бы пора понять, что если бы это и было возможно, то именно вы - пожилые мамины сычи из-за которых люди теперь считают что наличие софт-скилов и погромирование нечто малосовместимое и реализовали бы подобное, а не ныли как это вы мне перезвоните. >>2289103 Да я, Цукербергом мне не быть, производительность не улучшу, зато все трудяги Китая будут при работе. А то сидят тут выдумывают пок пок надо 2 и 2 сложить и на 2 умножить правильно, что бы погромистом стать.
>>2289128 > Так, мой престарелый друг, давно бы пора понять, что если бы это и было возможно, то именно вы - пожилые мамины сычи из-за которых люди теперь считают что наличие софт-скилов и погромирование нечто малосовместимое и реализовали бы подобное, а не ныли как это вы мне перезвоните. Чел, понятность текста - 3 из 10. Пришлось перечитывать и я не уверен, что понял смысл до конца. мимо
>>2289220 Только сейчас решился википедию открыть? Сочувствую. Умудряться тормозить в эпоху, когда не надо прикладывать никаких усилий для доступа к знаниям, это наверное тяжело.
Работаю 2/2 оператором станков с ЧПУ, в субботу воскресение если совпадает гуляю с женой, выходные в будни просто капчую, хочу заработать копеечку, а мб со временем перекатиться. Год назад полуркал редакторы текста, графики и звука, поработал на бирже копирайтеров и понял что это такое дно, что лучше уж капчевать Сейчас луркаю уже второй курс по программированию, но понимаю что чтобы стать программистом мне нужно будет года три работать за еду, а у меня жена и ипотека. Либо вкатываться, и после работы пиздовать на вторую работу, а я ее не нашел В принципе на жилье и еду денег хватает, а вот на приличный автомобиль и море каждый год нет, так что лишняя копеечка бы не помешала
Народ, а что вообще джуны делают и что от них ожидают? Ну вот учу я js и реакт месяца два, понятное дело полный хлебушек, через месяца 4 может и буду получше, но всё равно же нубяра. А так почитаю некоторых, так после нескольких месяцев в джуны попадают куда-то. Что они там делают-то?
И еще котаны вопрос. Как вы перескакиваете с разных библиотек/фреймворков/языков? Я вот с нуля начал учить JS, попутно дошел до реакта и одновременно смотрю реакт native, они же блядь разные в мелочах, хоть и похожие. Как вы всё это помните, тем более если разные языки вообще, а не просто реакт и реакт натив?
подскажите как такой фон на бутстрап делается? Там типа какие-то однотипные абстрактные фигуры. Можно ли вставлять фон при верстке на бутстрапе прямо в html, чтобы не создавать отдельный файл стилей ради одной картинки?
>>2289396 Понял, огромное спасибо. А так далается ли обычно или могут доебаться проверяющие код, что прописываю стайл внутри тега?(ведь это устаревший метод) хотя навернео до всего можно доебаться. Спасибо еще раз
>>2289381 Легаси на классовых кто-то должен поддерживать. >>2289393 Нужно прописывать, чтобы любом компе сделать npm i и работать. Если без флага установить пакет, он установится, но в зависимости не попадет. >>2289427 Так же зачем классы, если можно ебаться с прототипами, зачем реакт, если все можно на ванильном js писать.
>>2289540 >Нужно прописывать, чтобы любом компе сделать npm i и работать. Если без флага установить пакет, он установится, но в зависимости не попадет. Пердед, ты из какого года пишешь?
>>2289576 >>2289571 Это в новой версии нпм так работает или что у меня не так, раз я могу без флага просто установить и попользоваться без изменения package?
>>2289581 Вангую ты что-то напердолил в глобальном конфиге npm и забыл. >>2289603 Нет, это Кантор вкатышам палки в колёса в вставляет, чтобы валить их на собесах насчёт возврата значений.
>>2289603 Есть, всякие сайты-анкеты, дневнички, тесты "какое ты животное" и прочее говно из нулевых и начала десятых. Сейчас конечно если такое где-то сделать, тимлид хуем по губам проведет.
Чёт приобрел вебшторм и настроение кодить прям появилось я что шиз? Мб ещё макбук купить чтоб прям ваще? Тут есть у кого такие же ощущения от вебшторма? мимо пиарщик жетбрейнс
Анчёусы, вопрос. Вот я вкатываюсь во фронт по гайду.
Если я ооп знаю и понял синтаксис жс , плюс то что наследование тут не типичное, а смесь прототипов и классического наследования, плюс типы данных понял и т.д. Надо ли мне углубляться или можно уже переходить к DOM и прочему? Уж слишком мне лень перечитывать то что 1000 раз было изучено с других ЯП, с небольшими поправками. Или будут дрочить всякие нюансы на собесах?
>>2289406 Ну добавь отдельную папку backgrounds в папку img и оттуда подтягивай. Может у тебя будет 20 фонов для разных страничек, и изменять в случае чего удобно будет. Старый выкинешь нахуй, новый так же подпишешь и все.
>>2289774 Пройди тест на learn.javascript Если соснешь - надо углубляться. Если по красоте ответишь - можно попробовать обойтись. Знать нюансы - полезно. Но устроиться, кмк, можно и без них. Просто контора будет неоч и будешь часто лажать.
Здрасте. Есть такая регулярка: /^\/b|d|int|test\/?$/ да, я очень оригинальный и решил попытаться написать движок для борды
Я хочу, чтобы она реагировала на, допустим, "/b" или "/b/", но она реагирует на любой дальнейший ввод, например "/bqwerty" или "/testtttt". Знак доллара ведь должен означать конец строки, почему он не работает?
В бутстрапе 5 что нелшьзя имзменять отдельно левый и правый паддинги и марджины? верхний марджин и нижний работает а вот pr и pl не работает, че за фигня. На официальном сайте упомянуты паддинг лефт и райт, но таких классов нет, вообще не вкуриваю, что за нах. Px отталкивает в обе стороны, а вот как с одной стороны оттолкнуться - хз
Пытаюсь разобраться в TypeScript и начать писать на нем React приложения, но как разобраться со всеми этими типами, как разобраться, когда и какой тип присваивать?
Я даже не представляю, какие типы предоставляет сам React, что об этом можно почитать?
Сап. Я не кодер, но у меня есть вопрос. Вот допусти мне нужно создать бота с полной имитацией живого игрока, или создать 2d игру на мобилке, и тп. JS на это способен?
>>2290260 Бота разве что браузерного. 2d игру можно конечно на мобилку через ionic, но на мобилке пока еще чаще всего на жаве игре пишут или на свифте.
Это норм, когда ты решил задачу, но сам нихуя не понял как решил? Сначала высрал что-то невнятное, но рабочее, потом немного привел в божеский вид, но все равно не ебешь, как оно работает. Например с матаном у меня такого не было. Если ты понимаешь, то можешь решить, не понимаешь - не можешь мимо нюфаг
Всем привет! Ребят посоветуйте пожалуйста ресурс где могут помочь по теме создания телеграм ботов на NodeJS. Может есть специализированный чат какой-нибудь. А еще лучше подробный гайд где разбирали бы взаимодействие JS с api телеграма, разные ивенты и особенно асинхронность, как правильно организовывать код. Все уроки которые нашел (наверняка плохо искал) сводятся к 10 минутному описанию самых базовых очевидных вещей. Видел хорошие уроки на питоне, но не теряю надежду что на JS тоже есть.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если/когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript