Вы видите копию треда, сохраненную 17 марта 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Там походу по спеке округление вверх
> a. Let n be an integer for which n / 10f - x is as close to zero as possible.
> If there are two such n, pick the larger n.
https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number.prototype.tofixed
Ошибка:
Есть адресс https://svetofor.com/light/(color)
В разработке все работало отлично, когда вводил адресс, например, https://svetofor.com/light/red, то все переходило.
А на Github pages выдает ошибку 404. Как фиксить?
Когда пост надо будет отредактировать, я просто отредактирую его. И массивы не помеха. Группа ищет себя в поле groups[] и рендерит пост, все охуенно с редактированием. С формами тоже не вижу проблемы. Че делать то? Я не бэкендер нихуя, пилю бэк чисто ради фронта
Круто, чаю вам.
Про редактирование было на первую часть, где пост пять раз создаётся.
Делаешь отдельно группы, делаешь отдельно посты, делаешь отдельно посты-группы
Развязочная таблица тебя спасёт
Posts. ID - > MapTable.PostId
Groups.Id - > MapTable. GroupId
Мимо sql batya
Ну так вот эта пост-группа таблица получается воображаемой и создается при запросе в базу в выдаче, если установлены отношения между таблицами, не? Или мне надо специально отдельно ее сделать, где хранить только ид поста и ид группы? Разве нельзя это все держать в сущности поста, и брать по необходимости? А что по отношениям? One-to-many или many-to-many все таки?
Лучше считать в целых (умножить на 100), особенно если дело касается денях. А результат на вывод приводить к нужному формату.
This
Отдельную. Нельзя. “Many-to-many” идеологически, через два one-to-many
>Лучше считать в целых (умножить на 100), особенно если дело касается денях
Очень вредный совет, опускающий весь контекст. Считать в целых имеет смысл только, если дело касается денег, и только если ты с этими деньгами производишь какие-то вычисления. Если тебе например просто нужно на фронте нарисовать стоимость товара, то абсолютно похуй, рисуй как угодно, но уж точно не через центы.
Не на 100, а на 10000, и не на 10000, а через decimal
>Считать в целых имеет смысл только, если дело касается денег, и только если ты с этими деньгами производишь какие-то вычисления.
Как ты будешь считать, не производя вычисления?
Это не всегда третья связвющая таблица. Вопрос именно каким механизмом ты реализуешь физическую связь.
Если ты залез в реляционные СУБД то тебе следует прокачать базу реляционной алгебры. Она вообще не привязана к языку.
Если ты лезешь в мс скуль то прям рекомендую Ицик Бен Ганн - крутые книги для начинах.
Ну и думать тебя никакой туториал не научит.
>в базе отношения между постом и группой стоят как many-to-one/one-to-many
>если бы было отношение many-to-many
>У меня в коде many-to-many
А в голове у тебя что?
Что еще за мс скуль? Я лезу джуном на хоть какую-нибудь галеру, я этой хуйней занимаюсь только потому, что в 2к21 резюме ждуна никто не смотрит, если там нет 10ти полетов на мкс.
MS SQL топ 1 пром реляционных СУБД.
Я устал.
Где мои 3 сотыги? Два года опыта на реакте. Кушать нечего. В Тайланде так и не побывал.
Тяжело...
Ну во был бы ты приличным фулстаком на ангуляре с шарами или нп реакте с нодой, были бы тебе 3стохи
Это интеллисенс на телефоне так исправляет
Я использую ноду! У нас ССР на ноде! Вью сервер! А ещё вебпук это тоже нод окружение! И е2е тесты! И обычные тесты! Я все это делаю!
Вызываю dispatch(fetchItems()),
и в fetchItems делаю запрос, получаю data и внутри этой же функции делаю dispatch(type:'fasfsad', payload: data)
ругается:
Argument of type '(dispatch: Dispatch) => Promise<void>' is not assignable to parameter of type 'AnyAction'.
Property 'type' is missing in type '(dispatch: Dispatch) => Promise<void>' but required in type 'AnyAction'
index.d.ts(19, 3): 'type' is declared here.
Попробуй вместо dispatch(type:'fasfsad', payload: data)
Написать dispatch({type:'fasfsad', payload: data})
Ну блять скастуй тип данных к дате
А вообще СУКА ЭКШЕНЫ НЕ ДОЛЖНЫ НИЧЕГО ЗАПРАШИВАТЬ УЕБИЩЕ
СКАЧАЙ РЕДУКС САГУ ИЛИ ТАНК И ДЕЛАЙ ВСЕ ТАМ ХУЕСОСИНА
ЭКШЕНЫ САМИ ПО СЕБЕ НЕ ДОЛЖНЫ ДЕЛАТЬ НИ ЧЕ ГО
там так и есть, это я просмотрел когда сюда переписывал, извиняюсь
В смысле переписывать? Если так нравится колбэки на каждый пук перекидывать, то тебе ничто не мешает всё так же писать Promise.then().catch(), даже если под капотом там всё на асинк функциях.
Спасибо, да вот пытаюсь
Блядь, шиз, это же одно и то же, ты просто с асинк синтаксисом не разобрался, он гораздо пизже.
На это:
```
...{ zalupa, ...obj }
```
Ругается тайпскрипт, хотя типы такой операции нормально предсказывает.
Покажи нормальный код, а не это говно, а вообще лучше иди нахуй с такой тупизной и учи нормально тс и жс
Ох ебать, неужели java хибернейт jpa ссанина протекла в жабаскрипт, думал не доживу
Когда уже жабаскрипт перетечёт в джаву?
Какая связь между батей Малдера и заданием для сисипопочной фронтендерки?
>Покажи нормальный код, а не это говно, а вообще лучше иди нахуй с такой тупизной и учи нормально тс и жс
Я в рякте компонент хочу написать, который бы принимал пропсы, в которые можно запихнуть все пропсы корневого элемента этого компонента и чтобы это всё в подсказках было.
Что-то типа этого:
https://codepen.io/Jumpy_Bunny/pen/qBjyxqz?editors=0110
Впрочем я уже понял, что спизданул хуйню, так как можно деcтруктурировать ключи прямо в аргументе, а то я хуйней страдал с деструктуризацией в теле типа:
```
function Comp({ zalupa, ...blockProps }) {
const { className, ...restProps } = blockProps;
return (<div className={className} {...restProps}>{zalupa}</div>)
}
```
>один и тот же пост будет сохраняться в базу много раз под разными id и с разными group
Да вроде норм
В TypeORM тебе не нужно заботиться о третей связующей таблице, все делается само.
Но вообще, да. Связь Many-to-many между table1 и table2 - это
table 1 <- one-to-one -> table1table2 <- one-to-one -> table2
Как советовали выше, почитай про нормализацию, можешь на вики:
https://ru.wikipedia.org/wiki/Нормальная_форма
Расскажите ваши успешные истории вката.
После 2018 таких нету
Начал учиться самостоятельно в середине 2020 года, к началу 2021 получил первую работу по удаленке за 30к в месяц. Еще через 4 месяца взяли в первую компанию. До этого кодером не работал
>>64908
Читай Фленагана, не бойся размеров книги, это не роман, следить за сюжетом не нужно, перевод в последней редакции нормальный. Он многие вещи очень понятно пишет, как раз для новичков, кантора лучше читать, когда хочешь очень подроно конкретную тему разобрать. А потом когда совсем освоишься пизже всего будет дока MDN, но по началу это наихучший вариант обучения.
Спасибо пчол
Поддвачиваю вопрос. Я правда осилил Кантора чуть больше тебя, но хотелось бы ещё какой-то видеокурс прогнать для закрепления пробелов. Знаю, что у него и самого есть слитый видеокурс, но он там втупую свою же книжку пересказывает и без участия в потоке он бесполезный. К тому же как я знаю он разочаровался в том потоке и отснял его на похуях. Есть какие-то ещё видеокурсы? Знаю про Минина, но смущает то, что он прям слишком серьёзно перешёл в карьеру гуру. Видел ещё курсы Петриченко с юдеми, там и жс и сразу реакт - мне его курс по вёрстке понравился и я некоторым финтам у него научился, но говорят по жс и реакту у него очень слабая база уровня фрилансера с апворка. MDN тоже почитываю, но хотелось бы что-то ещё для составления общей картины.
1) Нужно написать программу, которая управляет разными устройствами: радиоприемник, телевизор, мобильный телефон. Перечислите названия классов, которые вы создадите, и названия основных методов этих классов
2) Приведите пример связи многие-ко-многим из любой предметной области и перечислите таблицы, которые вы создадите для них в базе данных.
3) Что делает этот фрагмент кода (на пике)? Язык и синтаксис вымышленные. Не нужно пытаться запускать этот код и писать, что он не выполняется.
Я так понял что новая начальница хочет своего сыночка пристроить сюда, а великовозрастный дядя им нахер не нужен
Я бы на твоём месте подучил вопросы на собесах и начал искать другую компанию, если компания настолько всратая, что для устройства в неё одного пориджа-дегенерата нужно выгонять сотрудников, то слать бы эту компанию нахуй
>задание мол на проверки проф. пригодности
Тыж собес и испытательный срок прошел уже, какие нахуй проверки? Это вообще законно?
Немного офтоп, вопрос по докеру
Я могу использовать кли вместо декстопа? Помню что раньше такая возможность была, а сейчас на оф сайте гайд только для декстоп версии
Я просто ретард и обновляться с 7ки буду только через месяц, а для декстопа нужен вин8+
Ну или как вариант я бы мог на виртуалке линукса докер запустить, а оно не будет конфликтовать с виртуалкой?
Это еще что, у меня в компании я прохожу повторный собес для аутсорсного клиента, это пиздец блядь, мало того, мне никто явно не даёт времени на подготовку к нему, либо воруй из рабочего времени, либо учи по вечерам. Что я и делаю блядь всё свободное время и все выходные. Будь я чуть опытнее и увереннее в своих силах, дропнул бы эту компанию нахуй за такие заёбы.
Ну тут не шибко сложно, тест по сути на твое умение гуглить
1)Просто пишешь классы для каждого устройства и по-человечески внутри них методы называешь, я думаю тут просто тест на то понимаешь ли ты ооп
2)Вот тебе пример, например заказ билетов в отеле, только ты приведи их своей области смотря чем вы там занимаетесь, ну и просто назови таблицы
3)Преобразует какой-то номер и возвращает в строке, а если не номер, то вернет 0
Ты куда там устроился? Если фронту предлагают что-то такое решить то явно не все хорошо у них
Меня хоред звал который тоже из новосиба, дали тестовое на их сайте в виде задач на алгоритмы блять
На днях получил офер за доляры, собесы в ру и еу это просто небо и земля, вообще не понимаю людей идущих за рубли работать
Так я всё это добровольно и делаю, я могу в любую наносекунду всё это дропнуть и съебать. Вот то ли дело при святом коммунизме, ммм, делай XYZ и всё равно отправишься gulag. Без рыночка я бы вообще копейки получал, сосал хуи и в приказном порядке был бы вынужден выполнять всё, что взбредёт в голову чиновнику-самодуру. Почему-то ИТ как раз максимально рыночная сфера, может быть как раз потому, что многие специалисты могут начать работать на заграничные конторки удалённо, и это заставляет российские компании поднимать зарплаты и улучшать условия труда? Но нет, для коммуняк это слишком сложная концепция, тут же подумать надо на целлый один шаг вперёд. Почему в IT среде столько коммуняк с обосранными штанами? Впрочем, лишнее подтверждение тому, что для того чтобы стать кодером, интеллект не нужен
> дропнуть и съебать
Ахаха, старый-то барин совсем голодом заморил, пора искать удачи у нового, авось новый будет добрый да расщедрится на копеечку.
>Вот то ли дело при святом коммунизме, ммм, делай XYZ и всё равно отправишься gulag
Лол это откуда у тебя такие познания
8-часовому рабочему дню и тк рф с его бонусами в виде оплачиваемых отпусков и больничных мы благодарны должны быть красным как раз
В гулаг отправлялись всякие шизики типа гумилева и его бати, почитай хотябы в вики к чему его батя призывал людей и сына подстрекал
>Почему-то ИТ как раз максимально рыночная сфера, может быть как раз потому, что многие специалисты могут начать работать на заграничные конторки удалённо, и это заставляет российские компании поднимать зарплаты и улучшать условия труда
Применимо для любой востребованной квалификации и причем здесь ит вообще
>Почему в IT среде столько коммуняк с обосранными штанами
Потому что когда ты нормально закрываешь все свои хотелки то встает вопрос почему твой сосед так не может и почему твой батя каждый год наблюдает дорожание дизеля когда твоя страна чуть ли не топ1 по добыче нефти и куче других ресурсов
Блядь, чел, мне это не интересно, я с таким же интересом буду слушать аргументы коммунистов и их представление о мире, как если бы мне 5 летний ребёнок начал рассказывать о том, что земля плоская, а луна сделана из сыра. Можешь не утруджаться, я даже читать не стану, это просто смешно
Просто плюс мораль нужна.
У меня-то рабочий день в норме и я уже отдыхаю, в отличии от бесправных холопов капитала, лол.
Ну ладно, убедил, пойду приму коммунизм и заживу наконец
не читать книжки пока не пригодится
>2) Приведите пример связи многие-ко-многим из любой предметной области и перечислите таблицы, которые вы создадите для них в базе данных.
Ну вот недавно какой то обизьян сверху писал про посты и группы.
Типовой пример из учебника "книги и авторы"
У одной книги может быть несколько авторов
У одного автора может быть несколько книг
Таблица Авторы
Таблица Книги
Маппинг( Она же Развязочная) Таблтца
КнигоАвторы
Авторы.Айди ссылается на КнигоАвторы.АвторАйди
Книги.Айди ссылается на КнигоАвторы.КнигаАйди
Ьум, проблема решена. Ты по развязочной таблице поднимешь как все книги конкретного автора так и всех авторов конкретной книги
>1) Нужно написать программу, которая управляет разными устройствами: радиоприемник, телевизор, мобильный телефон. Перечислите названия классов, которые вы создадите, и названия основных методов этих классов
Ну это тебе на понимание ооп вопрос
Надо подумать что у этих сущностей общее, а что частное
И описывать их начиная с самого абстрактного до конкретного используя интерфеймсы
Например очевидно что все эти вещи можно выключить и включить, тоесть они должны реализовать некий интерфейс
АйВключаемоВыглючаемо в котором будут методы Включи() Выключи()
Раз твоя программа УПРАВЛЯЕТ то очевидно у тебя нужно знатьб некое общее сотояние прибора типа АйПрибор имеет Состояние (включен выеключен)
У всех трех есть возможность играть звук и управлять его громкостью, поэому у тебя буде АйМузыкальныйПрибор с функциями
ПрибавитьГромкость УбавитьГромкость МьютАнмьют и стейтом чтоб узнать какая именно сейчас громкость
Ну и так далее и тому подобное
И самое главное забыл. В понедельник возьму 37й лвл. Пограмирую в пром. разработке с 21.
>мне новая начальница прислала
>начальница
RUN FOREST, RUN
>На днях получил офер за доляры, собесы в ру и еу это просто небо и земля, вообще не понимаю людей идущих за рубли работать
За рубли ты нехилые суммы у жлоба-кабана отбираешь, а заморский барин тебя за копейки берёт.
Что происходит при общении с коммунистом:
1-2 минуты: Появляется усталость, снижается внимание, ухучшается память.
2-3 минуты: Нарушается координация движения, ухучшается концентрация зрения, появляется нервный тик, тошнота, головная боль.
4-5 минут: Наступает чрезвычайная раздражительность, галлюцинации, бредовые идеи.
6-8 минут: Замедленная речь, дрож конечностей, короткие периоды потери памяти, странности в поведении.
Более 8 минут: Фрагментированное мышление, безразличие ко всему, оцепенение.
>Что думаете об htmlacademy?
Оверпрайснутая хуетень. Есть frontend masters, который в 2 раза дешевле и в 10 раз качественней.
Это конечно хорошо, но всё расеянское айти так работает. Тут ты 300к/наносек синьор-памидор, а в долларах это пол-зарплаты мидла во всяких фаангах.
И в чём проблема? Ну хочешь еще больше, учи английский, устраивайся в западные конторы, пили еще больше. Звучит так, как будто это какой-то минус
А ты что несёшь, поехавший?
Или там это, все один хуй на него будут закатываться со временем?
Знаю, что с запросом приходит инфа об оси+браузере. По ип можно получить город. Что особенного об устройстве может вытянуть жс?
По сути - ничего, кроме айпи. Ось тебе если отправит клиент в заголовках, то хорошо, но может и не отправить или отправить левую.
Фронт будет только свой, так что в юзер агенте инфа будет. А нету какого-нибудь уникального id у каждого инстанса браузера или что-то вроде того?
>Фронт будет только свой
Маняфантазии.
>А нету какого-нибудь уникального id у каждого инстанса браузера или что-то вроде того?
Даже если и есть, думаешь к нему был бы доступ у всяких левых браузерных скриптов?
>Фронт будет только свой, так что в юзер агенте инфа будет
Одно из другого не следует. Юзер агент отдает браузер, и если например пользователь включит приватность, то твое приложение получит хуй.
Нужно периодически из базы постгреса с 999999999 записями переливать данные в эластик, используя киберзапрос с пачкой лефт джойнов. Изначально накостылял подгрузку через offset/limit по 1000 штук, для разработки и так сойдет - уже после 10к записей запросы начинают ощутимо тормозиться.
Сейчас оформил это всё в PGшный курсор в рамках транзакции -
интересно, у вас тут кодовые вставки вообще работают?
```
await knex
.raw(`declare es_fill binary no scroll cursor for ${rawRequest}`)
.transacting(trx)
```
и далее гружу результаты через
```
const result = await knex
.raw('fetch forward ?? from es_fill', count)
.transacting(trx)
```
так тут даже count = 10 стабильно срется по 4 секунды, напрочь руша всё понимание процесса.
В то же время через pgAdmin достаточно быстро отрабатывает и единичный вариант с оффсетом, и батч с использованием курсора.
Что надо подкрутить? Или knex для такой хуйни не годится и надо использовать что-то иное, например logstash? Нужно немного логики чтобы чистить эластик от протухшего дерьма и обновлять старые записи.
Да
Нет, одно первое является одним из многих второго.
> Что особенного об устройстве может вытянуть жс?
Тут есть список всего
https://github.com/fingerprintjs/fingerprintjs/tree/master/src/sources
Ну серьезно, че это за хуйня?
Вот так вот мне предлагают читать файлы в Ноде. Коллбек блять засовывать. Ебанулись? Ладно хуй с ним с async/awai, но почему блять промисов тут нет? Почему по дефолту мы серим какие-то коллбеки напрямую?
Есть синхронный вариант
https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options
> почему блять промисов тут нет
Потому что это node-style callbacks
Promise-версию можно получить с помощью utils.promisify
https://nodejs.org/api/util.html#util_util_promisify_original
Синхронно читают файлы во время инциализации, например. Если тебе критично, то используй асинхронный вариант, ктож тебе мешает так делать
Wsl2 годиться для фронта или лучше оставаться на Линуксе?
У тебя не каноничный ESM импорт, наркоман.
Надо или:
import { promises as fs } from "fs";
или:
import { readFile } from "node:fs/promises";
На версиях ноды посвежее.
Зависит от железа на линуксомашине. WSL2 очень прожорливый в плане ресурсов, намного более, чем докер под линуксом на виртуал очке.
Нет вариантов, если хочешь в рабочее время играть в ММОРПГ как я, прямо во время дейли митинга, альттабаясь на две секунды чтобы что то сказать и дальше табаясь обратно
Аноны, как этот ебаный блок сделать как надо?
Если маржин давать, то он укатывается в пизду.
Пометка: только flex.
Если у тебя всего один контейнер то НИКАК НАХУЙ
У меня не получилось когда была похожая задача
Как сделать блок который растягивается относительно контента ?
И типо просто тупо последнем элементу через псевдо ласт Чайлд марджин дать, блять ебать.
Делать не флексом я хз
Пусть переделывает
Причём здесь флекс врап, наркоман?
Они же вроде тогда не по серединке, элементы.
Короче мой вопрос:
Есть пост и есть юзер. Отношения между ними понятны. Юзер может быть автором поста. А может и получить этот пост, если это сообщение в приват.
Допустим я пишу фронт. У меня есть форма с заполненным постом и я формирую из этого объект, чтобы потом все это засунуть в базу. В сущности поста есть поле author, у которого отношение к юзеру это @ManyToOnе.
У меня есть дто create-post. Я пытаюсь, собственно, создать пост. Мне надо как-то установить четкие отношения между человеком и постом. Мне нужно указать, что айди которое лежит в JWT должно быть явно указано как автор поста. В дто запихиваю поле author c типом Author, получаю ошибку, typeorm ругается, что он не знает, что это за тип такой author. Ок, наверное это норм, правда мне это кажется нелогичным(вот же он блять импортирован тремя строчками выше) я не ебу почему так. Меняю author на author_id (и в joinColumn тоже), с типом string, теперь ошибок нет, но нихуя не сохраняется в базу. Это логично, ведь есть расхождение с entity, БД не ебет что я ей пытаюсь впихнуть. Какой из этого выход? Вспоминаю уроки SQL и решаю запилить таблицу author-post, которая выглядит примерно так: id, post_id, author_id. Так как я стал бэкэнд разработчиком 2 дня назад и для меня это все ебаное колдовство, то я лезу в интернет посмотреть, как делают умные люди. И тут оказывается, что так не делает никто блять. Просто литирали никто блять так не делает. Все что мне попалось это какие-то беззубые примеры где все приложение состоит из двух не связанных между собой сущностей, либо там просто хуярят какое-нибудь ManyToOne и кладут на это хуище, потому что никто не билдит под это дело фронт и никто не будет этим кодом пользоваться. Еще раз: я нихуя, абсолютно нихуя не понимаю в бэкэнде. И с моей колокольни, проблема с тем чтобы просто хуйнуть foreign key и положить болт кажется очевидной, когда я на фронте буду использовать созданный круд, я не смогу засунуть (по крайней мере я не ебу как) текущего залогиненного пользователя в авторы поста. Ну типо, чисто айди он не принимает, потому что в entity там @ManyToOne(() => Author)author: Author, а пропихивать сразу весь объект пользователя это говнокод какой-то и так точно делать нельзя. Наверно подразумевается что оно автоматом сделает "воображаемую" таблицу с корреляцией между пользователем и постом (поля и отношения есть), но как оно узнает, какой пользователь создал пост? Вот мне и кажется, что единственный выход это сохранять пост и в той же самой операции сохранять новую строку пост_айди автор_айди в post-author таблицу. Но так никто не делает. Я хуй знает что мне делать, можете обоссывать.
Короче мой вопрос:
Есть пост и есть юзер. Отношения между ними понятны. Юзер может быть автором поста. А может и получить этот пост, если это сообщение в приват.
Допустим я пишу фронт. У меня есть форма с заполненным постом и я формирую из этого объект, чтобы потом все это засунуть в базу. В сущности поста есть поле author, у которого отношение к юзеру это @ManyToOnе.
У меня есть дто create-post. Я пытаюсь, собственно, создать пост. Мне надо как-то установить четкие отношения между человеком и постом. Мне нужно указать, что айди которое лежит в JWT должно быть явно указано как автор поста. В дто запихиваю поле author c типом Author, получаю ошибку, typeorm ругается, что он не знает, что это за тип такой author. Ок, наверное это норм, правда мне это кажется нелогичным(вот же он блять импортирован тремя строчками выше) я не ебу почему так. Меняю author на author_id (и в joinColumn тоже), с типом string, теперь ошибок нет, но нихуя не сохраняется в базу. Это логично, ведь есть расхождение с entity, БД не ебет что я ей пытаюсь впихнуть. Какой из этого выход? Вспоминаю уроки SQL и решаю запилить таблицу author-post, которая выглядит примерно так: id, post_id, author_id. Так как я стал бэкэнд разработчиком 2 дня назад и для меня это все ебаное колдовство, то я лезу в интернет посмотреть, как делают умные люди. И тут оказывается, что так не делает никто блять. Просто литирали никто блять так не делает. Все что мне попалось это какие-то беззубые примеры где все приложение состоит из двух не связанных между собой сущностей, либо там просто хуярят какое-нибудь ManyToOne и кладут на это хуище, потому что никто не билдит под это дело фронт и никто не будет этим кодом пользоваться. Еще раз: я нихуя, абсолютно нихуя не понимаю в бэкэнде. И с моей колокольни, проблема с тем чтобы просто хуйнуть foreign key и положить болт кажется очевидной, когда я на фронте буду использовать созданный круд, я не смогу засунуть (по крайней мере я не ебу как) текущего залогиненного пользователя в авторы поста. Ну типо, чисто айди он не принимает, потому что в entity там @ManyToOne(() => Author)author: Author, а пропихивать сразу весь объект пользователя это говнокод какой-то и так точно делать нельзя. Наверно подразумевается что оно автоматом сделает "воображаемую" таблицу с корреляцией между пользователем и постом (поля и отношения есть), но как оно узнает, какой пользователь создал пост? Вот мне и кажется, что единственный выход это сохранять пост и в той же самой операции сохранять новую строку пост_айди автор_айди в post-author таблицу. Но так никто не делает. Я хуй знает что мне делать, можете обоссывать.
const sleep = (ms) => new Promise((resolve) => {setTimeout(() => resolve, ms)});
А в таком - работает:
const sleep = (ms) => new Promise((resolve) => {setTimeout(resolve, ms)});
Почаму?
Наверное потому что ты функцию не вызываешь в первом варианте, лол
У тебя детектор сломался я не твой протыклассник.
Для начала опиши процесс на человеческом языке, не ударяясь в детали БД и транзакций, я то я нихуя не понял, что ты хочешь сделать.
Вкратце:
Я не могу понять, как мне добавить в авторы поста текущего залогинненого юзера. Чуть подробнее: я не могу понять как должно выглядеть create-post dto и если для установления четкой связи между автором и постом мне нужна отдельная таблица, то нахуя мне тогда указывать у поста ManyToOne foreign key с ссылкой на автора.
Порриджи, сер
У меня нет проблем с тем, чтобы его получить, мне это ничего не дает, если его нельзя запихнуть в save функцию репозитория, потому что я не знаю, как должно выглядеть create-post.dto. У меня есть строка в post.entity:
@ManyToOne(() => Author, author => author.posts)
author: Author
Что мне такого надо написать в create-post.dto файле, чтобы typeorm дал мне засунуть пользователя вытащенного откуда угодно(из сессии, jwt, из жопы) в базу? Все что я пробовал не работает. 100% сработает вариант с таблицей, но тогда я не понимаю, нахуй я (и все чей код я видел) сделал отношения между автором и постом в entity автора и поста.
Точнее изменить один из элементов в этом массиве
Я запрещаю тебе мутировать данные, создавай копию и делай что хочешь в ней
А где мутировать эту копию, в родителе или чайлде, уже зависит от ситуации сильно
Кекус максимус. Скорее редуха уже сольется в стандарт с редаксом уже, нежели про него забудут.
Дебил.
А ты попробуй если здоровья много.
но что за toPrimitive блин? Я этого метода ни в одном прототипе не нашел. Шо это?
Чё это и откуда ты это высрал
Вообще имеется ввиду преобразование к типу того с чем ты сравниваешь объект
WS API стандартный, Vue'вский.
Он у тебя всё равно заблочится, дурик. Просто в случае промиса это случится чуть позже.
justify-self flex-start последнему элементу контейнера.
Вообще задача легкая и способов много.
>отношения понятны
>может быть автором, а может получить
Проиграл. Зачем ты смешал два отдельных отошения? У автора может быть много постов, у поста только один автор. Это первое отношение. Второе это у поста может быть один адресат (и это не обязательно какой то автор, это может быть и общий чат), у адресата несколько адресованных постов.
Подскажет кто-нибудь как можно устранить эту ошибку?
Ладно, как ReactNode оно вставляется, но как мне передавать пропсы?
У тебя тип у аппбатона не соответствует тому что ты присваиваешь.
Вообще это пиздец, а не код. Ты хотя бы чужой код почитай для начала, а потом уже пытайся родить что то.
Не хочется городить кучу if-ов. Хочу чтоб компоненты рендерились по динамическим ключам объекта. А как сделать лучше?
Не подходит. ХОК подразумевает собой, что это функция, в которую ты вкладываешь компонент, который нужно обернуть и тебе возвращается обёртка. Мне оборачивать ничего не нужно.
Ладно, попробую как ты сказал. Может действительно что-то лучше получится
Symbol.toPrimitive
Через контекст лучше сделай. Вдруг у тебя со временем там появятся ещё прослойки
У меня есть редакс, но мне кажется там как-то тупо хранить стейт модалки
Компонент мужского рода, блядь. Из каких говно-видео вы этого набрались?
Ради 2 уровней можно огород не городить. Но вообще я бы посмотрел, что у тебя там происходит, что внутри модалки 3 уровня, через которые надо бросать стейт до кнопки.
Зачем ты советуешь хуйню? Вполне нормально возвращать один или другой компонент в зависимости от пропа, если нет функцией/хуков, которые придётся дублировать.
Про него не забывают только потому, что на нём написаны тонны кода, который некому переписывать. Даже Абрамов ржёт над использованием редакса в 2021.
Да не знаю я, на автомате так пишется что я сделаю, 3ий раз уже на двоще журите.
Я неправильно написал. модалка у меня app -> modalcontainer -> modaltemplate > modalBtn где cancel кнопка находится, а еще есть кнопка открыть эту модалку, она уже вообще в другом месте
типа такго app -> content -> contentHeader -> openModalBtn
462x360, 0:04
Лучше удавиться.
Ты еблан и долбоёб
ReactNode - это блядь элемент, как див
Типизировать компоненты не надо вообще, типизируй пропсы и код внутри компонента
Или если очень хочется, выставляй тип React.Component или React.FC для функциональных компонентов
Но вообще это хуета и не нужно особо
Кнопка в модалке или снаружи и просто открывает ее?
Пиши большие штуки.
Одна внутри модалки - cancel кнопка, вторая вне модалки - просто на странице - открывает модалку
Что конкретно тебе не понятно, ты шиз чтоли? Пиши нормально блядь
Я бы сделал так
Делаешь хук, который будет управлять состоянием модалки, из хука возвращаешь состояние открыто закрыто и 2 рефа для кнопки снаружи модалки и внутри нее, на рефы вешаешь листенер на клик и меняешь состояние как тебе надо
Делаешь компонент модалки который будет принимать реф для кнопки внутри и состояние открытости, вешаешь рефы, рендеришь если открыто
Кнопке снаружи вешаешь реф для кнопки снаружи
Вот
Интересно, спасибо, попробую!
И жидко пукаешь, когда надо будет открывать модалку из третьего места, а потом из четвертого, а потом еще при определенном урл, а потом плавно выезжать другой модалкой сверху, когда другая модалка уехала вниз
>пук
Расширяешь хук, возвращаешь оттуда функцию открытия закрытия или ещё несколько рефов
А модалка по урлу = признак долбоеба, сори
Насчёт уезжания чего то куда то нихуя не понял, это что то из мира лендосов чтоли?
в стейте
dialogPokazatHui: {open : boolean}
по кнопке
dispatch({dialogPokazatHui: {open: true}}
в диалоге локальный стейт через useState
Я так и делаю тут скорее вопрос был как прокидывать
нет.
Охуенный стейт. А если у тебя несколько диалогов, то будет dialogsState внутри стейта и для каждого описание? Мммм, кайф, как же я ору с реактодаунов и их верчения обосранными жопа для того чтобы не делать DI механизмов в своём дерьме.
нет, в глобальном стейте только какой диалог открыт, остальное в локальном стейте диалога, а чего ты подорвался так?
Чего отвлекаешься, ангуляродебил? Пиздуй уже писать интерфейс для очередной абстрактной фабрики.
Это нормально или я на столько овощ? Боюсь даже чит с устройством на работу не поможет(
Ты просто тупенький и вкатывайся в какое-нибудь пхп.
Перестань искать причины, почему нет и обращать внимание на других. Всё, что тебе надо делать, быть чуть лучше себя вчерашнего (неделю назад и тд). 1.5 недели - это нихуя не срок для изучения чего угодно.
Читом по поводу работы я бы не советовал пользоваться, только лишнюю фобию заработаешь.
js type coercion гугли, есть картинки, есть статьи. В данном случае дело как раз в приведении типов. В первом случае он решает, что ты хочешь конкатенацию. Во втором случае т.к. ты не можешь из строки вычесть строку он приводит строку к намберу и выполняет операцию.
Тут дело в плюсе, он же не только как сложение работает, но и как конкатенация. А минус только как вычитание. Поэтому в первом случае сразу идет конкатенация, во втором приведение к типу.
https://github.com/mervick/emojionearea
Есть какие-то альтернативы вот этому, не тянущие за собой jquery и прочее жирное говно?
Спасибо.
Напиши сам, ты программист или хуй какой то? Или давай я за сотыгу напишу
>в стейте
>dialogPokazatHui: {open : boolean}
в стейте всмысле в редаксе? несовсем понял как ты проверяешь тут какая именно модалка открыта?
> эмодзи
> не тянущие за собой жирное говно
Даз нот компют. Но вообще эмодзики - юникод символы. Так что хуяришь панель с кнопками с этими символами внутри и на онклик вставляешь значение кнопки в селекшн.
>Но вообще эмодзики - юникод символы.
Но вообще если ты делаешь веб-дрисню для браузеров то тебе нужно отображение этих символов самому и предоставлять, причём навязчиво, а не полагаться на систем дефолты твоих юзеров, у которых они могут быть у всех разные — работать должно одинаково и на пека, и на пека под линуксом etc. Грузить иконочный шрифт — затратно, он весит дохуя даже если (получится) его ужать в какой-нибудь woff, не говоря уж о том, что за это ещё и копирасты могут взъебать. Остаётся парсить картинки всякими twemoji, но мастерить с нуля свой инпут из дива с contenteditable с учётом уёбищности куска дом апи, отвечающего за селекшны, позиционирование курсоров внутри оных и прочее, помноженной на то, что у нас не нативный инпут а самодельная срань — да я ебал.
>Но вообще если ты делаешь веб-дрисню для браузеров то тебе нужно отображение этих символов самому и предоставлять, причём навязчиво, а не полагаться на систем дефолты твоих юзеров, у которых они могут быть у всех разные — работать должно одинаково и на пека, и на пека под линуксом etc.
Эмодзи должны выглядеть так, как они выглядят в браузере. В этом их блять суть. Ты тут со смайликами путаешь тему.
>Остаётся парсить картинки всякими twemoji, но мастерить с нуля свой инпут из дива с contenteditable с учётом уёбищности куска дом апи, отвечающего за селекшны, позиционирование курсоров внутри оных и прочее, помноженной на то, что у нас не нативный инпут а самодельная срань — да я ебал.
Вставляешь в кнопки иконки из свг-спрайтшита, а в тексте вставляешь свой манятэг, который потом парсится при отправке. Тэг конечно не картинка, ну так сделай кнопку превью поста, опять таки элементарная логика без костыльного кастома, плюс лучше юзер экспириенс.
>>67136
Блядь, ну посмотри, как тут сделано.
chatvdvoem.ru
Расспросить их от деталях имплементации возможности, к сожалению, не имею, как и времени на ковыряние скомпилированной вебпаком мочи.
>а в тексте вставляешь свой манятэг
>ну так сделай кнопку превью поста
Для большей части ЦА большей части ресурсов, предоставляющих ЭМОДЗИ помимо прочих функциональностей, это слишком сложная хуйня которой никто не будет пользоваться и бля я лучше пойду в другое место восян с зовода там сидит говарит заебись смайлики кнопку нажал хуяк и готово.
>chatvdvoem.ru
Лол, у этих мудаков код не компилен и работает в браузере как есть.
>скомпилированной вебпаком мочи.
Извиняюсь.
>>67131
Получается, не просто так он на jquery и прочем жирном говне.
Подскажите, есть ли какая-то штука к react-router, которая позволит задержать загрузку компонента по новому роуту, пока данные для этого компонента не загружены? Именно данные, а не сам компонент - сам компонент будет являться частью бандла.
Т.е. я хочу получить логику как на Youtube - там нет мгновенного перехода на новую страницу, а сначала запрашиваются какие-то данные из API, параллельно показывается полоска загрузки сверху, и уже когда данные получены, то отрисовывается страница.
inb4 suspence, т.к. хочется чего-то более-менее стабильного
а в чем проблема так?
setLoading(true)
requestDataRequiredForYourRoute().then(setLoading(false); history.push('/blahblah'))
{loading && <NiceLoadingIndicator /> }
И да, и нет. Есть несколько факторов, и свежесть JS играет. Поэтому если нужен порядок, работай с массивом или пиши преобразователь.
>reset.css
Чего ты умничаешь, это называется обнулением.
https://www.youtube.com/watch?v=1wfeqDyMUx4
https://www.youtube.com/watch?v=vkq7ckCkvjY
// scss не пугайся, можешь сразу на нем писать, просто без задней мысли.
Бэкендопроблемы, похуй
Да, в спецификации всё описано.
>А модалка по урлу = признак долбоеба, сори
Часто встречается запись типо /url/#cart чтобы когда вернулся на урл, модалка корзины или регистрации или чего угодно уже была открыта. Я блять даже делал сохранение состояние несколько открытых модалок в определенной последовательности в зависимости от урла
Так что вообще не понимаю, что ты тут про признаки долбоеба говоришь.
Зачем блять накручено все это гавно, чтобы 2 варианта кнопки отображать? Ну и бред нахуй.
Модалка это блядь модалка
Если тебе нужен отдельный роут - делай отдельный РОУТ
А модалка это когда от тебя после конкретного действия ждут следующих действий
>А модалка это когда от тебя после конкретного действия ждут следующих действий
Челик, прошу, заткнись нахуй
Стажёр, спок
Когда хоть что то начнёшь понимать в UX и когда тебе позволят разрабатывать что то кроме цвета кнопочек, тогда я тебе разрешаю пукать в треде
Это и есть удобный ux, когда любое состояние может быть восстановлено.
Я больше не трачу на тебя время.
Ну да, кнопки ведь сами себя не покрасят, удачи в работе
И почему ты пукаешь в треде? Я же тебе запретил, ты необучаемый? Испытательный срок ты уже не прошел
3) округляет число до целого в ближайшую сторону
функция содержит очевидные ошибки и работает как надо только иногда
> воруй из рабочего времени
Ебать у тебя рабское мышление. Повышая свою квалификацию в рабочее время ты умножаешь капитал компании, главный ассет которой это команда. Если хочешь чтобы у тебя и компании всё было хорошо нужно бОльшую часть времени изучать технологии и пробовать новые приколюхи и меньшую - писать код и решать практические проблемы. Программист наиболее полезен когда читает а не пишет.
бросай пример задачи, которой ты не можешь решить
Здесь все просто. Если не можешь решить, бери листочек, пиши алгоритм (блок-схему) и реализуй. После и только после этого начинай сравнивать и переделывать на навороты, когда сможешь их понять, осознать.
Если данные меняются то в переменной из хука useState, если нет, то просто в константе
Но вообще чем меньше данных, тем лучше, я не люблю запись такого вида
setState({ ...state, field: value });
Эти данные меняются, но это не стейт. У меня короче есть поле где храниться последнее расстояние между касаниями мыши, и от этого поля функции делают что-то. Такое лучше за пределами функции хранить как я понял.
Да нет же, почему, это стейт и есть. Обычно такое штуки в отдельный хук выносятся, чтобы меньше логики было на виду
>Да нет же, почему, это стейт и есть.
Нет. Если я сделаю их как стейт, то будут лишние ререндеры каждый раз когда меняю. А это вообще не нужно.
Ты же дебил ебаный, который вбил себе в голову какую-то шизанутую догму про то, что модалки якобы нельзя делать по ссылкам и теперь носишься с ней и бросаешься на людей с ad hominem атаками и приступами детской необоснованной ярости. За пять своих постов с порванной жопой ты не попытался даже одним словом аргументировать, почему же все-таки нельзя открывать модалку по ссылке, если в ней находится контент, который надо открывать заново при обновлении страницы. Типичный жопоскриптерский петух с религией в голове.
мимо
const doesntmatter = createSlice({
--...
--extraReducers: builder => {
----builder.addCase(someThunk.fulfilled, (a, b) => {
------if (zhopaFunction(a, b))
Я этот thunk вообще не дергаю, у меня даже нет ни одного референса, например, dispatch(someThunk()), ни в одном колбеке, нигде нахуй
И приложение ложится, потому что в zhopaFunction() приходит undefined
???????????????????????????????????????????
Я даун, не поменял имя у тханка
Писать в техподдержку скиллбокса.
Как мне сделать так, чтобы валидировалось, что одно из двух полей точно false? Т.Е. Поля могут быть 1: false, 2: true или наоборот, но никак не оба true или оба false?
obj {
2ch: '2ch',
abu: 'abu',
tred: 'tred',
}
Потому что я потом использую динамический ключ по этому обьекту и он жалуется что это тип string, а мне нужно, чтобы как элемент этого обьекта считался или что-то такое
Держись, работы навалом, платят много
ObjType = '2ch' | 'abu' | 'tred'
ObjTypes = {
2ch: ObjType,
abu: ObjType,
tred:ObjType
}
obj: ObjTypes {
2ch: '2ch',
abu: 'abu',
tred: 'tred',
}
> абсолютно неюзабельное запутанное говно блядь
Ты видимо большие ентерпрайз проекты на жиквери не видел, чтобы понять почему реакт это благодать, да и сейчас можешь вью учить, там тоже вакансий дохуя
Чтобы писать большие ентерпрайз проекты, в которых много типовых кусков и переиспользуемости, плюс очень много логики на фронте. А каждого из фреймворков есть правила, которые обеспечивают быстрый вкат на проект нового разработчика.
ObjType = '2ch' | 'abu' | 'tred'
ObjTypes = {
[Key: string]: ObjType
}
obj: ObjTypes {
2ch: '2ch',
abu: 'abu',
tred: 'tred',
}
а все, чуть улучшил, это норм или можно еще получше сделать?, мне вот не нравтся что я все значения строк в тип добавляю, или так и надо
реактоангуляровуе нужны, чтобы пилить "односраничные" приложения. Т.е. работают они так, как будто бы ты переходишь по ссылкам, но на деле у тебя всё происходит на одной странице, всё быстро, плавно и красиво. Потому что весь веб всю свою историю это надкостыление над костылями, потому что нельзя просто взять и всем клиентам обновить браузеры, если бы было можно, уже давно бы и язык поменяли может быть. Не знаю насчет ангуляра и вуе, но реакт крутится после сборки в ноде на сервере. Ну и вообще нода эта платформа для запуска жс вне браузера, в итоге на наде пилят всё что можно, разве что ос еще на ноде не запилили, потому что быстро и удобно и жс программистов много
enum obj {
'2ch' = '2ch',
'abu' = 'abu',
'tred' = 'tred',
}
const test = 'tred';
console.log(obj[test]);
А, не видел, что это объект.
type objType = {
[Key: string]: string;
}
const obj: objType = {
'2ch': '2ch',
'abu': 'abu',
'tred': 'tred'
}
const test = 'tred';
console.log(obj[test]);
Без этих библиотек или фреймворков заебешься писать проект на JS, это просто будет абсолютно бесполезный неблагодарный труд.
Спасибо! Надо реально enumом сделать так-то
я попробовал с обьектом через key:string : string, норм работает, а с enumom почему-то та же хрень с динамическим ключом, типа нельзя присвоить
type T = {x:true, y:false} | {x:false,y:true}
Хуйня, так как значением может быть любой стринг.
Ему надо:
type kv = "2ch" | "abu"
type o = {[k in kv]: k}
Да, если прочитаешь клятву программиста, то там ясным текстом написано про обязанность знать реализацию хуков. Доложил куда следует.
Просто проксорь их
У меня выбор стоит между EPAM и Accenture. Что лучше для джуна?
Опыт работы 7 месяцев. Еще многое нужно выучить, хотелось бы попасть в крупную компанию, где новичкам как то позволяют вкатиться и еще менторствуют какое то время, да и помогут если что.
Ты запушил локальную ветку на удаленный репозиторий 21 числа с делал мердж реквест и с тех пор стал делать новые комиты и пуши, которые просто обновляют мердж от 21 числа.
Чтобы график был весь зеленый делый коммиты, пуш в удаленный репозиторий но не делай мердж реквест пока не выполнишь всего, чего хотел.
Шизик, реакт - это библиотека на 100кб кода, сделанная исключительно чтоб html шаблончики писать, а вуе - это фреймворк с кучей инфраструктуры. Говорить, что реакт сложнее/навороченнее вуе - быть долбоебом
То есть мне просто не мерджить ветки, а плодить их сто штук и мерджить только когда я значительный кусок функционала будет запилен, что аж на целую версию хватит?
Почему у вью есть два места, откуда берется хтмл код для отображения? Разве не должно быть разделения на логическую часть и на темплейт? Почему в логической части компонент вмещает в себя темплейт?
"For now, you need to fork this repo and launch sigame-clicker.js file like this:
node sigame-clicker.js"
далек от программирования, вообще не понимаю что нужно сделать, помогите
https://nodejs.org/en/download/
Если не вразумишь мову: https://www.youtube.com/watch?v=rHKXBeG4pnY
Используй терминал.
Установи это "глобально".
Проверь, как проверяют на ведосе(видос не смотрел, но думаю там проверяют.)
Ну и дальше по инструкции.
Я не кодер, мне просто нужно написать тулзу для рамчетов, но даже я знаю что такое энкапсуляция. Пиздец конечно, я уже смотрю на Svelte, если что.
Я спросил про готовое решение. Наделать костылей я всегда успею.
>>67178
Почитал мельком про react-query - вроде это про кэширование ответа от сервера (и таким образом, если какой-то роут завязан на получаемые от сервера данные, то можно обеспечить его мгновенный рендеринг со старыми данными, как я понял) - т.е. не совсем то, что нужно.
>>67179
Ну, на Youtube, например. URL меняется сразу же после клика куда-то, но при этом новая страница не рендерится, пока ответ не пришел, а в твоем примере не так.
Интересно было сделать поведение как на Youtube, но в контексте react-router. Т.е. каким-то образом задержать рендеринг компонента по роуту пока данные не получены (ну или задержать как максимум на пару секунд, а потом отрендерить вне зависимости от того, получены ли данные).
>Ну, на Youtube, например. URL меняется сразу же после клика куда-то, но при этом новая страница не рендерится, пока ответ не пришел, а в твоем примере не так.
Я бы на месте того челика сейчас бы сгорел. Он тебе все правильно написал. Не тупи.
>Подскажите, есть ли какая-то штука к react-router, которая позволит задержать загрузку компонента по новому роуту, пока данные для этого компонента не загружены? Именно данные, а не сам компонент - сам компонент будет являться частью бандла.
Здесь роутинг не причем на самом деле. Есть запрос данных. Есть статус запроса данных, если данные в загрузке то отображаешь спиннер, вместо компонента, данные загрузились отображаешь компонент. Так ютуб и работает. Это стандартное использование, тут нет каких то библиотек для этого
У тебя внутри компонента будет 2 ретерна, один на загрузку, isLoading && return <Spinner /> другой после загрузки. Если при одной загрузке данных нужно отображать спиннеры в разных местах, то уже надо либо выносить загрузку наверх и через контекст прокидывать статус, либо использовать библиотеку redux/mobx
НУЖЕН СКРОЛЛ САЙДБАРА КАК НА РБК.РУ, ТОЛЬКО НЕ БЕСКОНЕЧНЫЙ.
То есть, есть основной скролл, который еще и крутит калтент в фиксированном сайдбаре. Плавно, без ебучих лагов. с лагами и я могу захуярить без глубоких познаний в жс.
Короче, нужен типа параллакс, только для ленты новостей в определенном блоке.
Создаешь ангуляровское приложение.
Две директивы - основной скролл и вспомогательный скролл
Основной скорлл вешается на хост контейнер, вспомогательные на его детей.
Вспомогательные слушают онскролл ивент и если скролл достиг конца, то передают эту информацию основному, на что тот начинает скроллить свой контент.
По сути тебе достаточно скролоить основной элемент в то время как указатель на дочернем и скролл на нем достиг границы.
Омежка бомбанула, и выдавила из себя хуйню. Какой нахуй троттлинг? Говна въеби, сука.
Да впизду, решил переверстать как на рбк. А как хотелось няшный сайдбар с новостной лентой с эффектом параллакса.
Данные зранятся на беке в монго, в атласе. Каждая запись имеет timestamp, за день таких данных набирается море, хочу что бы эти данные были сгрупированы по дням, к примеру за один день может быть 20 записей, где лучше "комплектовать" данные? На бэке после запроса в атлас, или бэк перешлет на фронт а уже там собирать в нужный формат?
Так дом тоже надо учить, ке
>>68312
Так я и охуел от вью, реакт даже не собирался.
Делай на ангуляре, если правильно нужно.
Вообще у тебя противоречие "попроще" и "правильно" несовместимы если ты только начинаешь.
Делай на ангуляре, если правильно нужно.
Вообще у тебя противоречие "попроще" и "правильно" несовместимы если ты только начинаешь.
Клоун ебаный, ставь листенеры на скролл без тротлинга, ещё и не один сука поставь, навешай туда тяжёлой херни типа запросов и твоим блядским сайтом только твой парень пидорас будет пользоваться из сочувствия
Я ебал твою мамашу шлюху
На бэке конечно
Лишние запросы или слишком большие по объему данных на фронте не нужны
На бэке же ты можешь ещё и кэша навернуть и отдавать кэшированное спокойно, не тратя время на запросы
Зачем тебе ооп для твоей всратой микроскопической клиентской хуеты? Заняться нечем чтоли? Можешь хоть на чистом жс или жквери писать, если тебе не надо будет это поддерживать, а если надо - пиши на реакте
Notification API
А можно ли в figma этот css code поменять?
За что так хейтят курсы Максимиллиана? Куда ни глянь везде обвинения в говнокоде. Что он делает не так?
Типа
state {
currentSort {
type: name
order: ascending
}
chosenMonths = [jan, feb..]
>Пройтись ещё раз по тому, что спрашивали, и по всему остальному. Я понимаю, когда в моменте ты отвратительно себя чувствуешь после разъёбного интервью, но зачем оставаться в этом состоянии? Ты в любом случае получил опыт, к следующему интервью будешь чуть лучше и в плане знаний и в плане эмоций/волнения. Не надо воспринимать собес как экзамен, воспринимай его как дейт в Тиндере, один из многих. Пройдёшь десяток-другой - вспомнишь мои слова.
Мудрость Анона неоценима. Да, действительно, второе интервью было намного лучше, дольше, с полной ясностью смог ответить на вопросы, которые не смог на первом. Получил фидбек, говорят не тупой, но надо подтянуть ооп, хттп, сокеты, вебпак, ну и мелкие вопросы, которые я пропустил, вроде, в чем заключаетя реактивность, зачем нужен фреймворк, в чем разница между ооп и фп(как оказалось не только рекурсия), абстрактная теория данных(или что-то типо).
Но ебаное говно-ООП все испортило, после того, как поняли, что я вообще не шарю за него, сразу пидорнули.
Еще понял такой очевидный момент, если и пиздишь в резюме про технологии которые не знаешь, то лучше хотя бы чуть-чуть почитать про них и что они делают. Иначе неувязочка на техническом интервью появляется.
>Получил фидбек, говорят не тупой, но надо подтянуть ооп, хттп, сокеты, вебпак, ну и мелкие вопросы, которые я пропустил, вроде, в чем заключаетя реактивность, зачем нужен фреймворк
Бля, работаю за 150к реактомакакой, хуй бы ответил на эти вопросы
Пиздуй-ка ты обратно на пыху, болезный.
>реакты, ангуляры, вуе,
Разработка быстрее. Готовые велосипеды.
>ноды
js на беке, круто же, а не это полумертвое пхп.
>Поясните бэкендеру неофиту зачем нужны реакты, ангуляры, вуе, ноды?
Ты тролль?
Вью/Ангуляр - фреймворки для создания SPA - набор готовых решений, плюс инструментарий, чтоб не делать одну и туже работу постоянно.
Реакт - недофреймворк для создания SPA, хотя многие будут кудахтать что это не фреймворк, а библиотека.
Более низкий порог входа чем в Ангуляре, поэтому надо (на самом деле нет) меньше думать.
NodeJS - экзешник на крестах, позволяющий запускать JS скрипты на десктопе, а не в окне браузера. Считай аналог виртальной машины ява, или дотнетовской среды запуска (не помню как она называется)
Вообще как "начинающий бэкэндер" у тебя не должно быть вопроса "для чего нода", должен быть вопрос нужна ли нода тебе
Что посоветуешь? Еще написать что-то? Начать попутно изучать фреймворк?
Я вот хотел еще препроцессор какой-нибудь изучить, но смысла особого не вижу сейчас это делать (хочется сосредоточиться на фундаментальном, чтобы впустую время не тратить)
У меня особого ответа нет. Потому, что конкретно мой мозг такой, что я учусь только на реальных задачах.
Т.е. если бы ты был я, яб пошел джуном хоть куда лишь бы хватало на еду одежду и давали кейсы для учебы.
Ты точно не прогадаешь овладев реактом или ангуляром , абсолютно точно надо после ваниллы перекатываться в тайпскрипт
В современном мире если тебе говорят что пишут на ванилле, это признак легаси параши.
Короче если ты хочешь во фронт тебе ангуляр /реакт + хотяб базовое понимание любого бекенда
Если в бэк, то тебе конечно же базовую ноду а потом что то улучшенное типа NestJS и практика реальных прилад
Я считаю, что когда выдумываешь задачи из головы, ты не додумаешься до огромного количества кейсов из реальной жизнию Т.е. будешь в некоем пузыре какбы знания.
А когда к тебе приходят с реальным запросом "сделай нам всплываху с уведомлением в правом верхнем углу" тут тоты и начинаешь крутиться вертется
>>69027
Этот прав
Спасибо за развернутый ответ, анон. Я примерно также мыслю и практика хорошо закрепляет знания + на практике и теорию подтягиваешь (гугля часами необходимое).
Но куда меня возьмут со стеком: неполноценный жс, html/css, поверхностное знание гита, немного юзал webpack чисто познакомиться и всё. Опыта разработки никакого нет, кроме тудушки и пары свёрстанных лендингов (всё лежит на гитхабе).
По-моему я такой никому нахуй не нужен и нужно еще учиться чему-то. Ну понятно, что надо знать LESS/SASS, фреймворк (пока не определился), что еще?
бамп вопросу
>редаксе
Достаточно тупо само по себе, а хранить стейт таблицы глобально или не хранить - зависит от конкретной ситуации и того, что ты хочешь сделать. В 90% случаев не имеет.
>Но куда меня возьмут
Ну когда я искал свою первую работу, я буквально каждого знакомого спрашивал. "А вам не нужен программист начинаха? Готов работать за еду, лишь бы набраться опыта. А есть знакомые кому может быть нужно?" Как оно сработало: иду я по платформе Петровско-Разумовская, а мне на встречу чел с которым мы в одном компьютерном клубе играли в старик когда я был студотой. Слово за слово, он обмолвился что работает в айти. Я спросил нужен ли им начинаха. Он сказал что почему нет? попробуй. И выстрелило.
Короче, стучись в каждую дверь.
Сделай на хх анкету "жуниор жэ эс девелопер" и предлагай себя. Особенно обрати внимание на позиции "без опыта работы" "без резюме" и "зарплата не указана"
Понятно что тебя на старте будут иметь в хвост и гриву, но если ты не чертов гений, такова плата за вкат в айти
>и я храню в редаксе
Юзать стейт менеджер
Насколько тупо? Намного
Ну даже если ты не можешь без стейт менеджера то наверное MobX а не ссаный редах?
Насколько это соответствует бузнесу - вопрос не к нам а ктебе или твоему надсмотрщику
>А чем вам так редакс не нравится? Вроде везде его просят. Чем заменять?
Есть сотни стейт менеджеров с двумя строчками синтаксиса и человеческими экшенами в виде функций, а не бойлерплейта из редюсеров. zustand например
>А чем вам так редакс не нравится?
Тут вопрос на самом деле отцов и детей, поколенческий, таксказать.
Когда в профессию понабежало хипстеров-смузихлебов они сначала начали отрицать всё старое, как водится. ООП им там нинужно, строгая типизация нинужна, и вот это вот всё. Когда они литерали подросли и поумнели (как профессионалы) оказалось, что надо изобретать все эти наши "типовые олдовые штуки" по-новой. Так вот и редакс (как и любой стейт менеджер) это такая затычка для обезьян которые не умеют писать по другому.
Ведь если подумать, у тебя же могут быть классы, сервисы, которые хранят нужное, правда? Также, если подумать, ты можешь всю приладу конструировать в парадигме, что у тебя нет стейта, а есть поток событий.
Но это нужен другой майндсет и другой опыт. Поэтому чуваки "придумали" сейвить стейт в помойку "ключ значение"...
Ну и если ты хлебушек и справляешься только со стейтами (что в общем не зазорно, ибо таковых 99%) то вот
https://mobx.js.org/README.html
Более конкретно ответ на вопрос "но везде же спрашивают"
Потому, что везде некомпетентные обезьяны которые мыслят в том ключе в котором привычно. Когда они закатывались в этот стек технологий (читай на старте проекта) реакт+редакс было дофига хайпово. Потому, что допустим Ангуляр с его ООП и реактивным программированием для них был сложен. А далее это просто исторически пошло, что выросло поколение кодеров для которых реакт редакс сорт оф эталллон.
Насколько я ориентируюсь в теме, никто из тех кто сидел на редкасе но потом таки попробовал мобХ не собирается обратно
https://mobx.js.org/README.html
Может с сети провайдера раздавальщик нашелся.
Интересно, почитаю. У нас просто на стажировке сказали писать на редаксе, я и пишу, не знаю пересадят ли на что-то поновее
Спасибо за совет. У меня просто нет знакомых из айти по сути. Разве что только в интернете, но вот с хх да, думаю так и сделать. Остерегался всегда вакансий без указанной зп, но попробую. Сколько там вообще будут платить примерно?
Дваждую за редакс/онгуляр/ооп.
Но что такое мобх не знаю. В стрех словах опиши тогда уж.
Это редакс на минималках или типа рхжс с редаксом?
От ангулярной тимы что-то подобное было раньше. ентити что-то там.
>У нас просто на стажировке сказали писать на редакс
Ну так а я о чём?
Вам сказали, тем кто вам сказал тоже "сказали".
А когда вся эта каша заваривалась, людей которые умею программировать было сильно меньше. Поэтому безграмотность плодит безграмотность.
Я прям угораю с того, как все это опен сорс жэ эс комунити повторяет то, что майкрософт прошло пять десять лет назад.
Но ведь МС это неназываемые, и вообще корпорация зла...
Вот к примеру, отличная надстройка (без иронии) над нодой
NestJS - по сути чуваки реализовали ASP.NET с задержкой годиков в 5-7. Лучше, конечно, поздно чем никогда...
>У нас просто на стажировке сказали писать на редакс
Ну так а я о чём?
Вам сказали, тем кто вам сказал тоже "сказали".
А когда вся эта каша заваривалась, людей которые умею программировать было сильно меньше. Поэтому безграмотность плодит безграмотность.
Я прям угораю с того, как все это опен сорс жэ эс комунити повторяет то, что майкрософт прошло пять десять лет назад.
Но ведь МС это неназываемые, и вообще корпорация зла...
Вот к примеру, отличная надстройка (без иронии) над нодой
NestJS - по сути чуваки реализовали ASP.NET с задержкой годиков в 5-7. Лучше, конечно, поздно чем никогда...
>Это редакс на минималках или типа рхжс с редаксом?
Это типа RxJS с редаксом и мутабельность и мнодеством отдельных стораджей под разные сучности
Т.е. вот в гугле дураки сидят, поэтому сделали ангуляр в свазке с тайпскриптом в связке с RxJS
А вот анопиниэйтед реакт коммунити - вот они не дураки. Поэтому сделают реакт реактивным через связку react + mobx не сразу, а спустя несколько лет после гугла! Цирк с конями да и только. Жду когда они в своем реакте DI изобретут и будут ваще-ваще анопиниэйтед...
Т.е. вот в гугле дураки сидят, поэтому сделали ангуляр в свазке с тайпскриптом в связке с RxJS
А вот анопиниэйтед реакт коммунити - вот они не дураки. Поэтому сделают реакт реактивным через связку react + mobx не сразу, а спустя несколько лет после гугла! Цирк с конями да и только. Жду когда они в своем реакте DI изобретут и будут ваще-ваще анопиниэйтед...
Вспомни еще как они тайпскрипт обсирали вначале. А сейчас - стандарт де факто. "В онгуляр не пойду бо там клятый тупскрипт((("
Да спасибо блядь, смог нагуглить. А вот отличие-то в чём? Что такого принципально важного может сделать useReducer чего не может useState? Там же весь функционал дублируется. Разве что мы в редюсере можем какую-то сложную логику обновления сделать, при которой нам не нужны будут дополнительные функции, запускающие обновление стейта, которые придется мемоизировать. У реакта нигде явно этого не указано.
Так о том и базар.
Не, если глядеть в ретроспективе, то вебпрогеры становятся умнее.
Но очень забавно смотреть как переизобретается то, что уже много лет стандарт и бест практисес на бекенде.
Я кстати почему топлю за Нагуляр - я в веб вкотился после бэка. И вижу что Ангуляр сделан для таких как я. Я уже +- умею кодить и когда начинаю проект у меня в голове мысли как хорошо организовать структуру, как наладить обмен данными между компонентами прилады, как тестировать. Кто и как будет работать с этим приложением _после_ меня?
Заметьте, что большая часть фронтенда этими категориями не мыслит. Да и им не всегда надо. Мои вопросы -вопросы из мира энтерпрайза и решений которые работают годами а то и десятилетиями.
А ежели ты обезьянка которая клепает 8 типовых "магазинов на деване" в год по аутсурсу или гребешь на галере, то эти вопросы конечно не приходят в голову. И получается как с эталонным макакеном сверху, который подорвался от проверки типов...
Настолько похуй что я за 2 дня три раза на 200косариков отсобеседовался. Ясно, понятно
Приниципиально ни в чем, просто сахарок шоб было для людей, чей мозг необратимо уничтожен редаксом. Главная "польза" от редюсер модели в этом случае заключается в том, что у тебя всегда одна неизменная функция dispatch, которую не нужно мемоизировать, и ты просто пишешь dispatch(addTodo(todo)) dispatch(clearTodos()). Приходит с ценой бойлерплейта и требованием выносить экшены куда-то в отдельное очко и импортировать их в месте использования.
Но все это же самое можно сделать через пикрелейтед и писать как нормальный объектно-ориентированный человек actions.addTodo(todo)
Прекрасно, я рад что люди выбирают умирающие технологии, делая меня в дальнейшем более востребованным
Я сижу на стеке Angular .NetCore
Но вообще, можно быть молодцом и на стеке React + NodeJS
Ключевое тут, отметь, быть молодцом и включать голову.
Angular дает тебе больше "искаропки" и сильно сложнее для вката без опыта. React позволяет быстро стартануть, но если ты будешь развиваться, а не останешься на уровень свинособаки типа вот этого
>>69146
то лично твой набор инструментария для React очень быстро станет похожим на "Angular из каропки" потому, что ты будешь решать правильные вопросы.
Если посмотреть непредвзято по рынку, то вакасий на реакте заметно больше, зато нормальные ангулярщики как правило дородже реактомакак.
Если ты молод и остр умом, надо освоить и то и это, лишним не будет.
У ангуляра еще нет натива, который набирает обороты в реакте, а там уже и флаттер раздупляться начал
>Но вообще, можно быть молодцом и на стеке React + NodeJS
Расскажи как быть молодцом тут, если несложно
>Расскажи как быть молодцом тут, если несложно
Как говориться, в жизни должно повести три раза. "У кого родился, у кого учился, на ком женился"
Я знаю молодцов на реакте потому, что они ушли в реакт после нескольких лет бекенда или потому, что у них был толковый наставник который учил правильным подходам, а не магическому мышлению.
Ищи, короче, наставников. Читай про архитектурные паттерны и общие подходы. На каждом шагу задавай себе вопрос" Стопе, а не дурак ли я?"
Я понимаю, что это общие рекомендации, но других нет.
Нужен наставник, личное старание и умение рефлексировать.
Ну всё, килерфича. Вот счаз допилят натив и все реактомакаки ломануться в мобильную разработку и десктом за 333кк наносек, да?
(нет)
Кстати пока вы там на свой реакт дрочити, мелкомягкие выкатили
Blazor WebAssembly который вообще убийственен по своей мощи. Эдак скоро пойдете на свалку истории также как вымирающие ангулярщики...
Спасибо, мб есть ссылки какие-нибудь на что-то конкретное почитать?
>Вот счаз допилят натив
Чел...
>Ну всё, килерфича
Ты думаешь это должно было прозвучать иронично? Не хочется тебя расстраивать, но, это вообще-то пиздец какая киллерфича
Чел, если бы ты хоть раз в своей жизни попытался написать простенькое приложение на реакт хуйнетиве, то такую бы хуйню не порол. Это забагованное дерьмище для реальных мобильных приложений не годится, только клепать однотипную хуйню по првоеренным шаблонам, где шаг влево-вправо от шаблона - расстрел. Котлин со свифтом никуда уходить не собираются, ни флаттер, ни реакт нейтив им сейчас не конкуренты абсолютно.
мимо
https://vuetifyjs.com/en/components/selects/
Задан он через пропс items ввиде массива.
Мне надо по событию @change передать два аргумента.
Типа <v-select @change="updateMe($event,y)"></v-select>
Без проблем передаётся только $event. Y передаётся только если объявлен глобально или жёстко задан.
Как подмешать ещё один аргумент?
Чел пчел, я вообще-то на реакт нативе приложения и делаю, и ты бы охуел, если бы узнал, для кого)))
>Ты думаешь это должно было прозвучать иронично?
Именно так это и звучит. Пчел, программирую с ранних 2000х.
Готов поспорить, ты тогда был пиздючелоой и просил мамку шнурки завязывать и жопку вытирать.
Всю дорогу вижу как появляются очердные "убийцы" какой-то технологии, всплывают на волне хайпа на пару годиков и уходят в небытие. Потому, что бизнес любит считать денежки и склонен брать проверенные решения. Ну сам подумой блядь, вот у тебя компания которая сидит на стеке технологий и решает конкретные задачи. Например однокнопачные дрочильник с микродонатами пишет. Какой у такой компании _финансовый_ интерес бросать все и вместо обжектив си или котлина брать какие то свинособачьи разработк?
Какой смысл топовму банку который 20 лет сидит на солюшенах от майкрософт бросать всё и срочно переходить на монгодб (которой транзакции сделали только в последней версии)?
И таких вопросов я, пожалуй, могу задать по десятку "вона би киллер фича неймов" которые видал за последние лет 20.
Выжтивает только то, что дает конкретные осязаемые преимущества, как Тайпскрипт например.
>Ты думаешь это должно было прозвучать иронично?
Именно так это и звучит. Пчел, программирую с ранних 2000х.
Готов поспорить, ты тогда был пиздючелоой и просил мамку шнурки завязывать и жопку вытирать.
Всю дорогу вижу как появляются очердные "убийцы" какой-то технологии, всплывают на волне хайпа на пару годиков и уходят в небытие. Потому, что бизнес любит считать денежки и склонен брать проверенные решения. Ну сам подумой блядь, вот у тебя компания которая сидит на стеке технологий и решает конкретные задачи. Например однокнопачные дрочильник с микродонатами пишет. Какой у такой компании _финансовый_ интерес бросать все и вместо обжектив си или котлина брать какие то свинособачьи разработк?
Какой смысл топовму банку который 20 лет сидит на солюшенах от майкрософт бросать всё и срочно переходить на монгодб (которой транзакции сделали только в последней версии)?
И таких вопросов я, пожалуй, могу задать по десятку "вона би киллер фича неймов" которые видал за последние лет 20.
Выжтивает только то, что дает конкретные осязаемые преимущества, как Тайпскрипт например.
Макакен, ну с какого ляду ты должен "подмешивать" свой еще один аргумент?
Ну ответь сам себе на вопрос "откуда этот аргумент берется"?
и "что с ним должно произойти"
Вообще вангую, что все что нужно можно пихнуть внутрь ивента
>>69214
>Технология не работает, потому что я старше тебя
А ну ладно, так бы сразу и сказал
>Какой смысл топовму банку
Блядь, пчелы, если бы не NDA, то сейчас можно было бы проораться всем тредом.
Но да, конечно, если старые брюзжащие пердуны пердят и брюзжат о том, какие они старые и пердящие, то это существенный аргумент в споре, практика и реальность здесь бессильны.
>>Технология не работает, потому что я старше тебя
>А ну ладно, так бы сразу и сказал
Я старше тебя и видел столько хайповых тем, что просто уже не верю наслово молодым да горячим сектантам.
Я вживую столько раз видел как "ну теперь то реляциоонные бд нинужны" "ну теперь то ооп нинунжно" "ну теперь то стекнейм нинужен" , что когда мне в очередной раз говорят "вот теперь то технологиянейм умрет потому что вышло ещеоднатехнлогиянейм"
я только иронично улыбаюсь...
Блядь, наркоман старый, хватит подменять понятия, я тебе говорю про РЕАКТ НАТИВ, ты начинаешь вилять жопой и пиздеть про какой-то ооп, про какие-то монги. Сука, я тебе говорю про реакт натив, наверное сам из моего поста выше можешь попробовать догадаться какая крупная компания его использует, елси не совсем одноклеточный имбецил, в чем я уже серьезно сомневаюсь.
> в жизни должно повести три раза. "У кого родился, у кого учился, на ком женился"
Ставь лукас если тебе повезло 0 раз!!11)) ну хз, мне, наверное ,раз
>На каждом шагу задавай себе вопрос" Стопе, а не дурак ли я?"
Ставь "поделиться с мамой", если ответ очевиден - да!!!1)
>Blazor WebAssembly который вообще убийственен по своей мощи. Эдак скоро пойдете на свалку истории также как вымирающие ангулярщики...
Как по мне, очень спорная тема. Тут тебе и порог входа, если вкатунам в онгуляре сложно, то от шарфика охуеют. И вебформсами попахивает.
>я только иронично улыбаюсь...
Потому что ты дебил и аругментированно сказать не можешь нихуя, кроме "я в стул пердел, жизнь видел, а сколько вас таких было". Технологии приходят и уходят только в путь, и ты как типичный пердун почему-то обращаешь внимание только на те, которые не ушли(или еще пока не ушли, но в процессе), игнорируя все старое говно, лежащее на свалке(жквери привет). Смотреть нужно на причины, и если тебе не нравятся люди, которые без аргументов говорят "новое и блестящее значит заебись", то что ты должен думать о себе, который таким же образом говорит "старое и проперженное значит заебись"?
Я на вью не пишу, я на ангуляре сижу.
Но вангую что у тебя есть
items = []
в этом items наверняка можно хранить
{lable:'azaza', id: 1}
в этом твоем v-selecte есть
item-text
item-value
вангую что на селекте эмитится то что ты указал в валью
укажи сам обьект, и будет вываливаться он целиком внутри ивента скорее всего
после чего ты уже будешь в методе брать
event.id
>рит "старое и проперженное значит заебись"?
А где я говорит? Я говорит что "новое и блестящее заебись" не работает только потому что оно новое и блестящее.
Пожуем-увидим.
>Я говорит что "новое и блестящее заебись" не работает только потому что оно новое и блестящее.
То есть старое и проперженное всегда было тут, пришло от бога и стадию "новое блестящее"(и по твоему манякритерию неработающее) не проходило?
https://swiperjs.com/demos
https://pastebin.com/kurCwyEX
По @change получаю 'ssid', а надобы ещё index или id.
@change="changeAp($event, ???)"
>а из головы всё вылетело и никак не клеится.
Не вылетело, с практикой будешь что-то вспоминать, где-то будет понятно, где-то нет, без практики ты нихуя не запомнишь, ведь помни: макака пишет код руками, не головой.
Я сначала подумал, что ты предлагаешь это делать в обработчике события. Что мне не подходит, ибо до items не достучаться.
А потом как понял...
@change="changeAp($event, items.findIndex(item => item.ssid == $event))"
Вот так работает. Спасибо за наводку.
>Еще написать что-то?
Могу тестовые задания на логику накидать. С минимальной вёрсткой.
Ещё есть один забавный момент, каждый раз ты будешь писать лютый говнокод, поймёшь ты это только после практики, бесконечного рефактиринга, но и чему-то научишься, в последующем применяя более правильный метод написания кода.
Ну а вообще пиши то, что тебе самому интересно, я вот например писал таск-менеджер, типо что на сегодня сделать, календари, всякое такое, будет больше мотивации, и да, не делай огромных проектов, делай мелкие/средние, иначе будешь и правда бесконечно переписывать говнокод.
>Начать попутно изучать фреймворк?
Сделай пару петов на чистом, пойми как работает, ну а там можешь и фрейм, долго с жс не затягивай.
>А чем вам так редакс не нравится? Вроде везде его просят. Чем заменять?
redux-toolkit упростил работу с бойлерплейтом, советую смотреть в его сторону. По поводу mobx я не думаю, что ты джуниором найдешь работу сразу с ним, а на редаксе уже дохуя легаси, работу найдешь.
>>69095
Ты мне напоминаешь дурачков линуксодрочеров
Не вижу ничего хорошего в мутабельности
>Я вот хотел еще препроцессор какой-нибудь изучить, но смысла особого не вижу сейчас это делать (хочется сосредоточиться на фундаментальном, чтобы впустую время не тратить)
Боишься потратить пару часов на просмотр документации? Там все тоже самое, просто удобнее писать +крутые штуки, но если совсем нулевой, то да, основы надо знать или можешь без задней мысли начинать с препроцессором.
Злые звуки одопроцентника
>Не вижу ничего хорошего в мутабельности
Обоснуй.
Мое мнение: "горила и банан", я хочу изменить имя полььзователя, пользователь у меня есть, я хочу сделать юзер.нейм = "ню нейм".
Тут вылазит горила и заставляет меня писать эти редюсеры-хуюсеры.
Ради чего? Зачем мне создавать нового пользователя для этого?
>Сука. Я мучаюсь с react. На чистом жс я без проблем написал примерно такой слайдер, а на react не могу.
Пока не думай, что и куда, просто пиши. Когда напишешь, будешь думать как улучшить. Реакт при правильном написании и дроблении компонентов даст тебе крутую удобную настраиваемую переиспользуемость. Один слайдер куда как проще сделать на чистом жс. Но когда у тебя будет 10 слайдеров по разным условиям, тогда поймешь, зачем нужен реакт, что хранить в компоненте, а что выше него и так далее. Все постепенно.
Какую ты решаешь задачу? TS тут нужен, чтобы когда ты напрямую присваивал не то значение в объект, он тебе выдал ошибку, все.
> Какую ты решаешь задачу?
У меня есть функция, которая принимает key и value.
Эта функция внутри объекта obj находит obj[key] и присваивает ему значение value. Вот эту задачу я решаю. Мне надо её затипизировать. Вопрос был в том, постоянно придётся type guards писать в таких случаях или можно как-то эту ситуацию обойти более лаконично?
Алсо, если шаришь - можешь ответить почему такого рода код >>69390 typescript не пропускает?
Про обработчик и была речь. За такие фокусы в темплейтах вообще то замечания делают
Не знаю. Интересно, кто-то может рассказать, что там не так с подробным изложением мыслей
Блен, круто. Я даже не знал, что подобного рода конструкции писать можно (я про то, как ты объявил ValueUpdater). Когда же ко мне придёт понимание того, как возможно писать на Typescript...
Дайте мне ёбаный ответ! Злые языки. Злые языки. Сука!
Пчёл, ты понимаешь что в твоём валуе может лежать объект целиком?
Типа IMenuItem{ govno, zalupa, name, ID, sssid, otherFieldNme}
И в своем обработчике ты берёшь этот объект и крутишь как надо
Давай тестовые, я не против.
>>69369
Ну примерно так и хотел действовать, да. Как раз подумываю что бы такого можно сделать.
>>69382
Хорошо, тогда завтра почитаю что там и как. Может действительно штука более удобная и буду писать только на нём. Базовый CSS я знаю практически весь, флексы особенно.
>Когда же ко мне придёт понимание того, как возможно писать на Typescript...
Когда пройдешь все таски на https://tsch.js.org/ очевидно же.
Сегодня уже натыкался на этот гитхаб в поиске. А ты сам то всё прошёл?
new Intl.DateTimeFormat(undefined, { timeZone: 'UTC' }).format(new Date())
>А ты сам то всё прошёл?
Остановился на медиуме с весны, вроде бы.
Дохуя работы. Сейчас, например, тоже работаю.
А так крутая штука, спору нет.
LESS пидорасит от современного CSS синтаксиса, а SASS вовремя ретировался и запихнул свои функции в свою же модульную систему.
А я-то думал, что различий практически нет, кроме метода объявления переменных
>Реакт - недофреймворк для создания SPA, хотя многие будут кудахтать что это не фреймворк, а библиотека
Есть некое определение фреймворка? Заебала это неопределенность.
И по какой причине реакт официально назвают библиотекой?
Негодование.
Слово в контексте нашей беседы относительно новое поэтому в словаря определения нет. В ИНЕТАХ ты найдёшь кучу объяснений что де либа это простот набор реюзабельного когда, а фреймворк диктует архитектуру приложения и(или) управляет вызовами ф-й и (или) созданием классов.
Почему на страничке фреймворка написано что он либа? Потому что а) свинособаки б) формально реакт можно подключить как либу
Но если посмотреть в реальные кейсы, а не рекламные слоганы то...
Что у нас там пишут в вакансиях? Уверенное знание react + redux + jest +TypeScript ой что это? Выбором реакта мы уже определили что приложение будет юзать стейт менеджер, конкретный язык и конкретный тулкит для тестов? . Это же архитектурные решение. Написал useState ой, да ты передал управление кодом би... Фреймворку? А с чего ты начал? Поди в консоли написал create-react-app... этож получается шаблон прилады тебе сделал компонент фреймворка добрый гномик? Ведь реакт - библиотека...
А потом ты сидишь и думаешь. Вот бы мне в реакте диай не помешало. Ах вот же оно. Немного приседаний вокруг jsx и (или) context - Бум, у вас есть сервис локатор (хоть и через жопу)
В сухом остатке оказывается что то, что "фреймворкнейм" даст тебе изкаропки, ты неминуемо поимеешь при работе с реактом, просто сделав немношк приседаний.
Ну и вот тебе до кучи четкое обоснование почему таки фреймворк
https://habr.com/ru/post/116232/
Кстати из шапки треда, которую ты конечно не читал
>В современном мире если тебе говорят что пишут на ванилле, это признак легаси параши.
Либо же нужен перформанс.
>Но куда меня возьмут со стеком: неполноценный жс, html/css, поверхностное знание гита, немного юзал webpack чисто познакомиться и всё.
Вот именно что куда-нибудь точно возьмут. Сильных спецов на рынке мало, плюс им платить надо до хуя. Причем не за то, что они на конкретном проекте делают, а за широту экспертизы и прошлые заслуги (которые на этой позиции вообще нерелевантны).
Поэтому часто берут джуна под какой-нибудь проект, натаскивают чисто на вот этот конкретный дрочь, за который отказываются браться нормальные программисты, и там этот джун сидит и делает что-то.
В итоге всем плюс: у тебя хоть какая-то работа, а у них дешевый, почти бесплатный раб, готовый ковыряться в чужом засохшем говне. Как-то так.
>Вот именно что куда-нибудь точно возьмут.
Ты серьезно? Вот у меня то же самое, плюсом сверху бэм, бутстрап, посредственный реакт и некст, умение настроить вебпак и линтер с преттиером, немного юзал монгу, поверхностное понимание тайпскрипта (не применял еще его).
На какую ЗП я могу рассчитывать при поиске?
>На какую ЗП я могу рассчитывать при поиске?
На какую сумеешь договориться. Здесь все зависит от тебя.
Я интроверт и вообще не хочу контактировать с рекрутерками.
Я когда в прошлом году был с навыками как у >>69065
Искал работу, откликался, собеседовался, но мои навыки были никому не нужны. Кроме любителей вкинуть в тестовое свои проблемы в разработке, но там они просто забирали решение проблемы без трудоустройства.
Бля, сравнивать ебучую отрыжку 2000 года из яндекса(БЕМ) с божественным SCSS может только ебаное животное.
Потому что фреймворк должен давать тебе инфраструктуру, т.е ФРЕЙМВОРК для написания приложения определенным образом. Сам реакт же по сути тебе дает одну вещь - работу с домом, больше нихуя. Все хуки-хуйки - это просто внутренние способы реакта менеджить стейт в этом доме, и сами по себе они невероятно примитивные и базовые, без дополнительной доработки никуда далеко не уедешь.
Но другое дело, что когда тебе говорят "у нас проект на реакте", то это передает больше информации, чем "у нас в проекте используется либа моментжс", т.е реакт находится где-то посередине между фреймворком и либой, и это зависит от того, с чем ты сравниваешь. Если просто с ванильным жсом, то безусловно фреймворк. Если с полноценным фреймворком, который дает тебе кучу вещей, от готовой модели данных до способа организации страниц, то реакт больше либа, чем фреймворк, потому то, что он делает - это один винтик для реального фреймворка.
Ну и плюс накладывается тот факт, что в реакте нет устоявшейся инфраструктуры в приложении, и фраза "проект на реакте" как таковая особо нихуя не передает и нужно задавать кучу доп. вопросов, вроде "чем стейт менеджите, как у вас сделан роутинг, чем фетчите данные с сервера" и т.д, ответы на которые почти наверняка будут радикально отличаться для каждого отдельного реакт приложения, где ты каждый раз открываешь ящик пандоры и копаешься в самописных либах и прочем говне, в отличие от какого-нибудь ангуляра или вуе.
Это просто нейминг-конвенция, не более того
https://medium.com/@seanmcp/how-and-when-to-use-bem-in-react-edabad2b805a
Это мусор и говно, которое отпало за ненадобностью с изобретением пре-процессоров, позволяющих вкладывать селекторы, а не писать дерьмо уровня .modal____modal-body____modal-body-content. То есть практически сразу же после того, как это говно стало доступно широкой публике.
>how-and-when-to-use-bem-in-react-edabad2b805a
Могу правильно ответить не читая статью - никогда. Ни в реакте, нигде.
Ой хуйню не пиши плиз, долбоёб.
БЭМ прекрасно сочетается и с SCSS, и с LESS, и с PostCSS.
Живой пример - carbon components, там и БЭМ и SCSS присутствует:
https://github.com/carbon-design-system/carbon-components-react/blob/master/src/components/UIShell/SideNavSwitcher.js
SASS никак не решает проблему "многоэтажности" селекторов или проблему специфичности, когда более специфичные селекторы перебивают другие селекторы.
>БЭМ прекрасно сочетается и с SCSS, и с LESS, и с PostCSS.
Говно тоже прекрасно сочетается с шоколадом, но только если ты говноед.
>SASS никак не решает проблему "многоэтажности" селекторов
Если эту проблему якобы не решает вложенность, то добавление ____modfier тоже не решит никаким образом, потому что второе - это просто попытка имплементировать вложенные селекторы в чистом css.
>проблему специфичности, когда более специфичные селекторы перебивают другие селекторы.
А как ее решает БЕМ, шизло ебаное? Она решается только через не писание говнокода в стилях и нормальной их организации. Еще раз БЕМ - это конвенция для писания вложенных селекторов в чистом CSS. Больше он не дает нихуя и дать не может, и если у тебя есть нормальный способ писать вложенные селекторы(ака препроцессор), то мучаться с БЕМом смысл ноль.
Ангуляр диктует тебе как твое приложение будет запускаться, как компоненты будут взаимодействовать, ты только следуешь продиктованным принципам. Поэтому это фреймворк
Реакт тебе ничего не диктует, его код можно встроить в любое место, в любом виде. Ты даже в приложение на ангуля ено можешь встроить и он будет работать. Именно поэтому это библиотека.
Бла бла бла. Можно и Машку за ляжку.
А по-факту тебе нужен диай, раутинг, хттпклиент, стейт менеджер, консольная утилита и прочее. Ангуляр тебе "диктует", а реакт тебе "не диктует" но выберешь ты всё равно то, что юзает большинство.
По такой шизоидной логике можно записать в фреймворк что угодно, например жс, ведь ты выбираешь там то, что юзает большинство(ноду, бабель, еслинт), а не пишешь свое с нуля.
Ты реально тупой. Впрочем, это не удивительно. ведь мы в JS треде Ты даже не в состоянии подумоть над официальной докой реакта в которой:
- JSX
- Поток данных между компонентами
- хуки
- лайфсайкл методы
не фреймворк, твёрдо и чётко, да
Все тобой перечисленное - это просто способ менеджить DOM не напрямую, а через API реакта. Больше реакт не делает ничего. По сути, он тебе дает фукцию React.createElement, сахарок в виде jsx над ней, и определенные конвенции по организации компонентов и менеджементу стейта внутри этих комопнентов. Но все это служит одной-единственной задаче - отрисовать html на странице. Да, это объемная и важная задача, но она все еще одна, и проекты просто на рисовании html'а не делаются, им нужно дохуя всего. Фреймворки это "дохуя всего" предоставляют из коробки, реакт не предоставляет. И да, твой изначальный аргумент был не в том, что реакт делает дохуя всего, а в том, что "ну ты же и так все популярное поставишь одно и то же", а он очевидно абсурден, на что я и указал.
Потому что есть ощущение, что фрилансить с реактом чёт трудно - слишком крутой и дорогой стек для большинства мелких клиентов, как мне кажется, а хочется ещё какой-нибудь доход на стороне поиметь.
Что думаете? Идея говно?
И второй вопрос, что ещё осваивать, в какую сторону качаться? Сейчас вот бэкэнд на жсе осваиваю, экспресс там, эскуэль, ноэскуэль, потом хочу ещё нест жс.
Мимо-олдфаг-на-ангуляре
> было калымить, фрилансить.
Я без иронии, мне кажется что 1С твой выбор. Она конечно мерзкая, но рынок огромный. У меня есть приятель, который по 1С и сопутствующим направлениям аутсорсит в одно лицо с десяток магазинов и мелких кабанчиков. Он когда не ленится, в месяц поднимает 400-500 тысяч.
> в какую сторону качаться?
Качайся в бэкенд. Фулстак на ноде+реакте (если он не осел) стоит от 3х сотен. Опять же знаю товарища который с ангуляра перекотился в реакт, освоил ноду, и поехал в хуяндекс на 300к + ремии + акции. Он конечно чёртов гений, потому, что его уровень понимания программирования очень высок (ведь на самом деле всё равно какой инструментарий, главное как его применять)
Но всёж пример показательный.
На счёт SQL - мне кажется ненужон. Лично я - батя SQL, овер 13 лет в этой фигне от джуна до разработки КХД, и я чет не вижу, чтоб продвинутые знания SQL мне давали какие то плюсы в работе фронтом или фулстаком.
NoSQL - Ну если полезешь в бэк, то надо освоить. Сейчас часто выбирают NoSQL потому, что SQL стоит денег как в планепрограмного решения, так и в плане компетенций специалиста. А в монгу ты просто срешь джейсонами напофиг и вцелом работает сносно.
Спасибо за мнение. 1с ты ведь про битрикс? Смотрел один глазом, мерзко, но ради подработки освоить можно.
По скл/носкл у меня примерно такое же мнение. Интересно, что сейчас востребованее. Алсо, ещё графкл есть, до него ещё не добрался, но в рамках обзорного курса тоже пройдусь. Тоже интересно, насколько популярно это решение.
Typescript он такой. Хуле ты ожидал
>Она решается только через не писание говнокода в стилях и нормальной их организации.
О боже, ты сейчас будешь переизобретать smacss, oocss, и прочие. То есть прямых конкурентов бэма.
>добавление ____modfier тоже не решит никаким образом
Чёрточки не нравятся. Ну возьми smacss, какая хуй разница. БЭМ - обобщенное название любой css-архитектуры. Как и вместо styled-components можно подставить любой другой css-in-js библиотеку - emotion, jss, stitches. Всё равно мем будет смешной.
Всё, съеби короче и больше сюда не пиши.
>БЭМ - обобщенное название любой css-архитектуры.
Нет, мань, БЭМ - это одна конкретная уродливая отрыжка яндекса, и ты об этом прекрасно знаешь, потому что в этом же посте сказал:
>О боже, ты сейчас будешь переизобретать smacss, oocss, и прочие. То есть прямых конкурентов бэма.
Ты определись сначала, конкуренты они или все-таки то же самое. И сравнивать common-sense конвенцию уровня modal.is-open с дерьмом, которое в этом же месте влепит БЭМ - это быть умалишенным нахуй.
Родительский компонент может прослушивать любые события на экземпляре дочернего компонента с помощью v-on или @, аналогично отслеживанию нативных событий DOM.
А чтобы сгенерировать событие, дочерний компонент может воспользоваться встроенным методом $emit, передавая в него аргументом имя события:
В том же реакте обработчики событий создавались в родительском компоненте и передавались пропсами в дочерний, тут же какой то эмит, я так понимаю теперь это событие будет доступно через эмит не только в дочернем компоненте но и во всех?
>Проблему специфичности
>А как ее решает БЕМ
Мудень, просто открой документацию, там всё написано. Видать линтеры тебе не знакомы, элементарно же плагин накатываешь и он не позволяет разрастаться специфичности/вложенности.
https://www.npmjs.com/package/stylelint-selector-bem-pattern
>>69856
>Одна конкретная уродливая отрыжка яндекса
Это твоё оценочное мнение. Уродливое эээ... такой себе аргумент, поскольку красота субъективна.
>элементарно же плагин накатываешь
Только нахуя для этого БЭМ, если плагин будет точно так же(а скорее всего гораздо лучше) определять и вложенность и специфичность в обычном SCSS
>поскольку красота субъективна.
Нет, не субъективна. Есть объективно уродливые вещи(гниющие, воняющие, перекошенные, несимметричные, например: трупы, БЭМ, твоя мать), а есть объективно красивые(свежие, сияющие, ровные, симметричные, например: молодые девушки, SCSS)
Бэм конечно говно, но всё ещё лучше ванильного css с анархией и без всяких тулзов и правил.
Scss хорош, но ведь styled components (и пара других css in js) ещё кайфовее.
мимо проходил
>Бэм конечно говно, но всё ещё лучше ванильного css
Если у тебя в 2021(или даже в 2011) стоит выбор между БЭМ или чистым CSS, то ты что-то делаешь не так.
>Scss хорош, но ведь styled components (и пара других css in js) ещё кайфовее.
Бойлерплейтное неудобное говно по сравнению с SCSS.
Ща делаю петпроектик на экспрессе. И пока там фронт вообще на ejs, а стили на бэме.
Как с бэком закончу, перепишу на реакт со sc
>Как с бэком закончу, перепишу на реакт со sc
Не бери SC и emotion рантайм дрисню, бери Linaria.
>Только нахуя для этого БЭМ
Чтобы унифицировать нейминг, чтобы не было в одном месте btn--btnPrimary, а в другом btn--btn-secondary, а в третьем btnThird. Единые правила для всех стилей.
>Алсо, ещё графкл
Тут ты сам для себя реши по ощущениям. Мне, к примеру, уже под сорокет, и я заметил, что без таблетосов осваивать больше двух новых парадигм реально тяжело и неэффективно.
Если ты молод, борз и остр умом, можешь хвататься за всё сразу. Но по мне, так лучше сделать фокус на чем то прям вот конкретном, убедиться что уверенно вывозишь выбранное и добавлять новое по чуть-чуть.
Слышал про какую-то альтернативу sc, но вроде без компиляции в рантайме, а на стадии билда.
Это оно?
Тред ещё был в Твиттере со сравнением sc со всем подряд.
Но там вроде довольно мелкие профиты были. Но можно попробовать. Хотя конечно sc даёт какой-то невероятный dx чучуть за счёт юзеров
Да, согласен. Вопрос в том, что именно выбрать. Сейчас в процессе прощупывания и определения
>Не бери SC и emotion рантайм дрисню, бери Linaria.
Ой блин ещё один эксперт хуев. Линария твоя сосёт у stitches https://stitches.dev/
В нашем случае удалось получить неплохой перформанс буст в работе приложения за счет использования линарии вместо SC.
Если приложение предполагает активные апдейты, например, в реалтайме, то лучше взять что-то перформящее.
Консенсуса нет, видимо продолжу юзерам говнять экспириенс своими стилями в рантайме
>Родительский компонент может прослушивать любые события на
Это из руководства по вью?
Ну учитывая, что во вью взяли практики из Ангуляра, то полагаю речь вот о чём.
Всегда встает вопрос передачи данных между компонентами.
Концептуально у тебя есть четыре направления. От предка к дочке, от дочке к предку, от дочки к дочке и.. . пересылка данных между несвязанными компонентами.
Сверху вниз у тебя будет передача при помощи некоего
@input() или пропсами или аналогом.
Снизу вверх у тебя будет событие. Т.е. дочерний компонент будет генерировать некое на что родительский отреагирует.
На примере того же ангуляра в дейтпикере у тебя будет
@Output()
dateSelected = new EventEmitter <date> ();
А в родителе
<app-child (dateSelected) = "onDateSelect($event)" >
Вангую , что во вью сделано ровно также. Т.е. о том что произошло в дочке знает только установленный в родителе обработчик данного события. Если захочешь, ровно также прокинешь событие для родителя родителя.
В общении между двумя дочками медиатором должен работать родительский компонент. Обе две наверх кидают извещения о том что в них что то произошло, и родитель им обеим спускает указания как себя вести.
Ну и наконец между двумя несвязанными компонентами данные перекидывает специально обученный сервис который ты пишешь отдельно.
Ин фэкт, сервис это самое высокоуровневое, и всё общение между компонентами ты можешь написать через сервисы, но это чрезмерно усложнит работу и понимание проекта.
>родитель им обеим спускает указания как себя вест
Но может произойти что тригер будут ловить оба дочерних компонента, хотя должен тоьько один?
Мне кажется ты неверно мыслишь.
Нет никаких магических триггеров, есть то, что ты сам написал.
Напишешь так, что оба будут реагировать на одно, то так и будет.
Напрример
@Input()
someParentEvent: Subject<SomeShit>
и где то в кодах дочерних
someParentEvent.subscribe( () =>{})
то конечно же, когда в родителе ты дернешь
someEventEmitted$.next( {id:1, message:"Allo Yoba eto ti?"})
Ясен перец этот объект получат все кто на него подписан.
если ты напишешь иначе то и работать будет по другому.
Ты не путай событийную модель которую ты сам заложил, с кухней которая происходит в DOM дереве под капотом.
Там да, когда происходит событие в элементе со вложенностью (див внутри дива внутри дива внутри текстариа) там да
ивент на текстарие пройдет сначала от виндов-до целевого элемента (погружение) потом от целевого погружения до виндов.
Но когда ты оперируешь тем, что дает фреймворк, тебя это не должно волновать
Чтобы устроится на работу. Больше незачем
Ветка сделана сегодня, запушена тоже сегодня. Коммита нет (вообще нет, ветка залилась, а коммита нет). Пушил через комманду git push origin ветка. Что не так-то? У меня пиздец как жопа горит, все кто посмотрят мой код будут думать, что я тупо спиздил его и залил готовый, потому что график активности весь серы блять. Как правильно делать-то? Я уже и не мерджил ничего. Просто сделал ветку и запушил.
<buttonComp title='abc'/>
<buttonComp title='abcd'/>
<buttonComp title='abcawer'/>
сделать массив тайлтлов и по нему мапить?
Если поддерживается такое на уровне темплейта то да.
Напри в Ангуляре
<div>
<ng-template *ngFor="let item of items ">
<yobaButton title='item.title' (onclick)=...>
</ng-template >
</div>
На ваниле есть проекты, кроме лендингов, или лучше сразу дропать и идти к байтоебам?
Ты не вкатишься.
Хороший показатель профнепригодности - бросать на полпути. Потом тебе другое надоест — бросишь, потом третье и так далее.
>На ваниле есть проекты, кроме лендингов
Конечно есть, если ты можешь что-то сложное сделать на ванилле, в процессе написав свой фреймворк, а то и два. Только ты не можешь и не сможешь, иначе бы не составило никакой проблемы выучить синтаксис уже готового фреймворка.
>css код
>внутри js-строки
Когда я увидел этот ужас в реальном проекте, растянутый на десятки-сотни строк, я подумал что какой-то очень нерадивый стажер в очень плохой компании очень сильно торопился и сделал такой злоебучий костыль, скопипастив css откуда-то и не сумев его прикрутить нормально. Но потом я с гораздо большим удивлением узнал, что это оказывается тенденция. У меня в связи с этим только один вопрос к пользователям этой библиотеки:
Что с вами не так, дауны?
Ты дурак?
Что лучше,
const Component = ({isSmall, isDark, isZhopa, izHui}) => {
...
<div className={(() => {
----let className = styles.component;
----if (isSmall) className += " " + styles.small;
----if (isDark) classname += " " + styles.dark;
...
})()}
+ импортировать эту парашу не автоматом в начале файла, и импортированный styles никак не типизировать, кроме как вручную
+ вручную писать селекторы .dark .small .hui в каком-нибудь .scss модуле ебучем, который не типизируется
Или так:
interface StyledProps_ComponentConditional {
isDark?: boolean;
isSmall?: boolean;
isHui?: boolean;
isZhopa?: boolean;
}
const ComponentConditional = styled.div<StyledProps_ComponentConditional>`
----backgroundColor: ${({isDark}) => {
--------if (isDark) return "black"
--------return "white"
----}};
----width: ${({isSmall}) => {
--------if (isSmall) return "50px"
--------return "100px";
----}};
`
И просто референсить этот компонент, где компилятор всегда покажет, че и где подставить. Вот если бы прикрутили типизацию к импортированным css модулям, можно было бы говорить, что styled-components не нужны
Ты дурак?
Что лучше,
const Component = ({isSmall, isDark, isZhopa, izHui}) => {
...
<div className={(() => {
----let className = styles.component;
----if (isSmall) className += " " + styles.small;
----if (isDark) classname += " " + styles.dark;
...
})()}
+ импортировать эту парашу не автоматом в начале файла, и импортированный styles никак не типизировать, кроме как вручную
+ вручную писать селекторы .dark .small .hui в каком-нибудь .scss модуле ебучем, который не типизируется
Или так:
interface StyledProps_ComponentConditional {
isDark?: boolean;
isSmall?: boolean;
isHui?: boolean;
isZhopa?: boolean;
}
const ComponentConditional = styled.div<StyledProps_ComponentConditional>`
----backgroundColor: ${({isDark}) => {
--------if (isDark) return "black"
--------return "white"
----}};
----width: ${({isSmall}) => {
--------if (isSmall) return "50px"
--------return "100px";
----}};
`
И просто референсить этот компонент, где компилятор всегда покажет, че и где подставить. Вот если бы прикрутили типизацию к импортированным css модулям, можно было бы говорить, что styled-components не нужны
$('#bigusdickus').remove();
в случае если bigusdickus не существует, есть ли какие подводные? Надо проверять if(bd.length)...?
>просто тихо падает
>можешь хуярить
О дивный мир фронтенда. Т.е. у вас это нормально, если что-то падает?
А вот и типичный пидорок с кссом в жсе подкатил. С полным набором в виде функциональных стрелочных выражений, шаблонных строк и складыванием строк без интерполяций (впрочем для долбления в попу он внезапно вспоминает про шаблонные строки).
>+ импортировать эту парашу не автоматом в начале файла, и импортированный styles никак не типизировать, кроме как вручную
Что ты там собрался типизировать, наркоман? Тупорылый дебил, какой думаешь результат вызова свойства сраного ксс модуля? Я тебе открою страшную тайну - строка.
>+ вручную писать селекторы .dark .small .hui в каком-нибудь .scss модуле ебучем, который не типизируется
То ли дело вручную писать иф элсы как в твоём говне внизу. А со свидетеля ублажённого компилятора вообще проиграл.
>И просто референсить этот компонент, где компилятор всегда покажет, че и где подставить.
Какой компилятор в жс, наркоман?
>Вот если бы прикрутили типизацию к импортированным css модулям, можно было бы говорить, что styled-components не нужны
Надо к твоей мамаше прикрутить типизацию, тогда она может быть и нужна будет.
Очень интересно слушать про манямиры от пчела с жиквери заместо кода.
У меня есть компонент, для которого нужно отслеживать положение курсора, но только в тот момент, когда курсор находится над определенным элементом на странице. И тут либо добавлять обработчик при маунте компонента, а потом каким-нибудь onEnter изменять состояние, чтобы коллбек маусмува работал только при наведении. Но получается, что обработчик мышки все равно будет работать 100% времени и просто миллиарды раз будет выполнять бессмысленную функцию, которая ничего не делает. Либо напротив, регестрировать листенер в onEnter, но тут проблема в том, что у меня есть разные условия, и есть ситуации, когда я не буду убирать листенеры сразу. И тут блядь проблема возникает в том, что я даже код уже написать такой не могу, потому что у меня повсюду используются useCallback, и я просто не могу никак такую функцию через function объявить и получается так, что у меня функция не всплывает. Короче пиздец блядь, я не хочу леты использовать. Основной вопрос, как лучше всего работать с mouseMove если он 99% времени нахуй не нужен и делает бессмысленную работу?
>>70276
А чем тоби базовый маусовер не подходит?
https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave
Там дело в том, что иногда маусаут должен быть отложен, пока пользователь не отожмет нажатие мыши, в этот момент и возникают все проблемы. Но посмотрю еще что там в статье есть и подойдет ли мне, спасибо
Продолжай вручную импортировать .css модули и вручную писать проперти styles.rememberEveryFuckingSelector, вместо того чтобы пользоваться нормальным интеллисенсом
Дебилоид, импортируется один файл, у scss есть внутренняя система импортов, которая внезапно даже лучше кривой системы модулей самого жса. И если ты не можешь запомнить и написать className="badge is-success", то ты медицински даун и никакой итнеллисенс тут не поможет.
У тебя в проекте 999999 роутов и 999999 модулей для каждого, удачи запомнить. Даже если ты супер умник, поздравляю - ты тратишь ресурсы мозга на рутину, которую может заменить сервер ТС в ide
>у scss есть внутренняя система импортов
Кек, ни автоимпортов - нихуя. Сиди дрочи @use "sass:map"; @import "../../../styles/huipoimigde/_var"; в каждом модуле
>твае лицо когда map.get($noIntellisenseMapHuiZnaetOtkuda, noIntellisenseProperty)
>У тебя в проекте 999999 роутов и 999999 модулей для каждого, удачи запомнить.
Шиз, ты работаешь на 99999 модулями одновременно? Или все-таки над одним? А как тебе интеллисенс тебе дополняет, магически или ты все-таки должен первые буковки хотя бы запомнить?
>Сиди дрочи @use "sass:map"; @import "../../../styles/huipoimigde/_var"
Вот так дрочат только жсошизики, да и то совсем немощные и не могущие настроить рут импорт плагин для бабеля. В scss нормальная модульная система и рут импорты там по умолчанию.
Поэтому я юзаю css-modules c sass
Работаю над одним модулем, который вложен в другой, а в него самого вложены третий и четвертый.
>А как тебе интеллисенс тебе дополняет, магически
Да, ctrl + space
Вызов нужно отложить не по времени, а по действию пользователя. Т.е. когда пользователь отожмет левую кнопку мыши, тогда и можно убирать листенер. А отжать пользователь кнопку может когда угодно, в т.ч. и за пределами нужного компонента
Бамп вопросу.
А где есть?
Меня из-за того, что когда ничего не получается а потом хуяндук и получается, и всё работает все равно уволили.
Часто залипаешь слишком сильно. Вместо того, чтобы работать над задачей пытаешься пофиксить баг, который препятствует ее работе.
Бесит!
Потому что надо учить дом чтобы не быть реактом
Ты только что контекст апи
Двач, это норм?
Вы видите копию треда, сохраненную 17 марта 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.