Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Бля нихуя не пойму есть два редюсера, один записывает данные в стейт, другой должен прочесть эти данные и изменить, они лежат в разных файлах как в один прокинуть данные из другого стейта?
Что вы писали на жс такого, за что вам потом было стыдно?
Я вот, например, писал немношк на жс/ноде аппы для энергетической промышленность. Надо ли говорить, что никаких рантайм валидаций там не было? НЕ ГОРЖУСЬ.
Ну вот ты и повелся на тудушки и каунтеры от Денчика, даже он не решил куда бизнес логику положить, вобщем архитектуру меняй лол на НОРМАЛЬНУЮ где не надо в редусере чета читать и изменять как в тудушке
Как в TS определить что-то вроде mapping? То есть у меня есть объект вида {id: value}, то есть каждому айдишнику сопоставляется своя value. Хрень вроде:
interface MyInterface { id: string, value: number }
Не в тему, т.к. мы просто определили объект у которого 2 поля: id и value
>>1851829 >то есть каждому айдишнику сопоставляется своя value И что она, блядь, каждая своего типа? Со стороны кажется, что тебе нужен tagged union, хотя не уверен, что за говноструктуру ты себе наворотил.
>>1851840 Эм, а че означает [id: string]: T, в смысле я в курсе про дженерик Т не врубаю только как можно писать [id: string]: - мы объявляем массив с id: string которому соотносится тип Т (чего блин?..) мимо
>>1851844 >мы объявляем массив с id: string которому соотносится тип Т Нет, это просто констрейнт на тип ключа. Нет там никакого массива. Это почти то же самое, что рекорд тип выше, просто там на ключ релаксед контстрейнт (вроде можно указать числа и символы).
>>1851829 >То есть у меня есть объект вида {id: value}, то есть каждому айдишнику сопоставляется своя value. Если прям на каждое значение ключа свой тип, то тогда у тебя будет интерсекшн на каждый ключ
>>1851853 точка это время(t), а все остальное - анимация. там в задаче было условие на нажатие пробела нужно поднимать один квадрат вверх и держать его, с одной точкой этого без костылей не сделаешь. а вторую точку не сложно дописать, просто я так и не увидел ответа просящего
>>1851829 >что-то вроде mapping Спешите видеть - жээсеры открывают для себя структуры данных. "Что-то типа маппинг" - это любой объект JS.
>Не в тему, т.к. мы просто определили объект у которого 2 поля: id и value А что такое "маппинг", по-твоему, какая-то охуенно секретная магия? А просто объект - так, хуйня?
Тут возникает вопрос - для чего тебе это? Что ты будешь с этим делать дальше? От этого может зависеть реализация такого объекта.
Аоны, как на ванильном жс правильно реализовать сворачивание окна? То есть я нажимаю на некую клавишу и фрейм коллапсирует (вверх или вниз) в течение секунды (то есть с анимацией)?
>>1852050 Потому что результата 3, а не два: -1 0 1 >>1852060 >When comparing large numbers of strings, such as in sorting large arrays, it is better to create an Intl.Collator object and use the function provided by its compare property.
>>1852023 Так я не через ксс не через жс не ебу как это сделать. Как плавное сворачивание реализовать? Поставить ивентХендлер на target.parentElement.style.display = 'none' я и так могу, это не то
>>1852126 Не еби мозг ни себе, ни людям. Раз ты общаешься с бэком, возьми и прогони спеку (OApi, swagger, whatever) через блядский генератор, у тебя на выходе будут тайпдефинишны всех поддерживаемых ответов, структур и полей.
анон, не знаю туда ли я, но возможно сможете помочь в общем есть ли возможность как-то скачать видева с сайта этого? может где-то в коде страницы что-то есть, но ничего не нашел или это какое-то API и там без смысла пытаться спасибо
>>1852121 Transition: 0.5s; потом делаешь позишн фиксед и позиционируешь за областью видимости. При активации подсовываешь css класс с нормальным позиционированием.
>>1852022 Аноны, судя по последней инфе надо будет скрывать часть текста... Видели же небось как длинный абзац с текстом укорачивается до каких-нибудь 70 символов а дальше висит ссылка "Показать больше", при нажатии на нее текст плавно разворачивается (а затем его снова можно будет скрыть). Как такое мутить? Тут фишки с display='none' и transisiton: 1s не прокатят
очень широко применяется в TS для подобных случаев, когда надо иметь произвольный маппинг произвольных строк в некую хуйню. Если хуйня разная, то вместо T; надо написать any; и дженерик убрать.
>>1852297 >найти то, что надо, в интернетах Большинство основано на каких говнолибах жкьюри))
>>1852272 Из идей на данный момент: брать текст внутри абзаца через innerHTML, если он длиннее 70 символов, то раздербанить его на 2 части через slice, вторую часть обернуть в <div> с display: none и закинуть на его место кнопку которая при нажатии показывала бы недостающий текст (transition тут поможет кстати для плавности?)
>>1852306 >и менять height Высота / число строк - неявные метрики для скрытия текста... Только число символов может быть объективным. даже если подогнать под конкретный размер окна и размер шрифта и скрывать через изменение height, при смене параметров все сломается
Не думал, что ебля с puppeteer сможет мне дать то удовольствие что получал раньше от игор. Чтобы эту вашу ноду изучить до уровня хобби-проектов, надо сначала жаваскрипт изучить или как? А то я в вашем да запутался уже. Вуе, реакты, вебпаки все эти.
Где обычно обрабатывают логику? В экшене или редюсере? Я так понимаю экшн должен только доставить что то и сообщить об этом редюсеру, а редюсер уже обработать? Смотреть базира он все делает в экшене, че за нах?
>>1850792 → > А на go можно только хипстерскую хуиту писать. Как же забавно встречать людей, которые отстали от развития айти индустрии лет на пять, и при этом пытаются всерьёз вещать громкие утверждения
Сап аноны! Встал вопрос генерации роутеров в соответствии списка приходящего с бд, так как в списке около 220 видов поддомена. Для этого решил воспользоваться фреймворком "express-subdomian". И написал следующий код:
for (let key in cities) { let town = ruToLat(key).toLowerCase(); router.get('/', async (req, res) => { res.render('index', { title: `Subdomian is: ${key}`, ifIndex: true, cities, key }) }); router.get('/euro', (req, res) => { res.render('euro', { title: 'Subdomian is: ${key} ',
В переменной cities лежит объект с тем самым списком. Где в последующем передаю на страницу список с ключом, для вывода данных на страницу. Но при обращении допустим "moskva.domian.ru", на страницу рендерется данные только первого ключа. То есть в списке есть ключ "moskva" но цикл остановился сразу после первого интервала. В чем может быть проблема? Или же я что-то не правильно делаю?
Прикл мои маняфантазии о том как должно было работать
щас иду в поликлинику в пять часов, мне дают эти шизофренические направления для последующего анального зондирования, через пол часа я прихожу домой с двумя банками торнадо энерджи айс и пачкой чипсов и кодю направленный поиск пути баще а* десять часов подряд, пять лет об этом мечтал, буду смаковать каждый оператор пробела
ходил спрашивал где ебать помощь короновирусная государственная астматикам, говорят ты ебать два года к нам не ходил, тебе и не положено нихуя, на что я отвечаю так я и не болел два года хули мне к вам ходить. как оказалось все мне положено, просто проебалось по пути где то
>>1851680 (OP) Как импортировать пакет, установленный через npm в скрипт? Использую rhino, при попытке сделать это через import * from "main.js"; говорит syntax error
Аноны помогите пожалуйста Допустим я купил vps с убунту. и хочу там настроить все окржение с нуля. нода, бд, nginx, npm Где взять подробный туториал по сабжу?
Помогите написать функцию чтобы в номере менять латинницу на кириллицу. Напирмер, чтоб из E146BC178 получилось Е146ВС178(но буквы Е, В, С - кириллицей)
Подходящую регулярку вроде нашел - /^[ABEKMHOPCTYX]\d{3}(?<!000)[ABEKMHOPCTYX]{2}\d{2,3}$/ui
>>1852742 Создаешь словарь (map структура) вида ключ-латинская буква, значение-похожая буква на кириллице. Далее в одном цикле пробегаешь по всем циклам и заменяешь все совпадения. Никаких регулярок не нужно. Пикрил в качестве примера.
>>1852765 Чувак, регулярка перестанет работать при смене формата номера. И такие вещи, как правило, происходят в самый неподходящий момент. Или тебе для школы надо?
Есть большой кусок говнокода на жс(2клок) описывающий страницу с табличкой и интерфейс к ней, хочется сделать реюзабельной и кастомизируемой. Что-то есть почитать про такое, паттерны-хуяттерны мож есть какие? Или на худой конец примеры где норм сделано.
>>1852933 Залей куда-нибудь если можешь. Таблица - это массив объектов(строк) и массив колонок, у колонки есть id, title, dataField/template. Если нужны сортировки/фильтры/пагинации - то можно массив объектов абстрагировать в dataSource которому сама таблицы а может и не сама будет говорить "произшло СОБЫТИЕ_1" и спрашивать у него видимые данные. Можешь его даже реактивным сделать
>>1852949 > Залей куда-нибудь если можешь. Рабочий проект, сам бы я такую ебалу в жизни писать не стал. Просто у меня таблица с подтаблицами, свисталками по клику, интерфейс к ней достаточно сложный. Апи и кастомные компоненты я раскидал по классам, но клея и инициализации на 800 строк уже. Еще сейчас появились требования что интерфейс разных типов юзеров должен сильно отличаться. Плюс части нужно будет переиспользовать в других страницах проекта, с возможно новым поведением. Короче я охуел чет и думаю над еще слоем абстракции, но такого опыта пока не было.
>>1852896 Бля, возьми любой инструмент, с которым можно работать а-ля как с МИТМом. Например, скачай классический фидлер, включи проксирование трафика, открой страницу с медиа, найди в логе обращение к этому ресурсу (там есть колонки типа mime type), выбери это вхождение и сохрани тело ответа на диск. В случае с зумом большего не потребуется. Есть и другие ресурсы, где меди поступает чанками по запросу, сейчас не будем в это углубляться, но там достаточно сделать все то же самое, просто потом склеить сохраненные чанки. Шебельме?
>>1852933 Выносишь последовательно нахуй из таблицы рендерер ячейки, затем строки, потом тела таблицы и в конце заголовок. Таблица ничего не должна знать про датасорс-хуёрс, она тупо рендерит то, что ей передали. Сортировку, фильтрацию, пагинацию и вагинацию также выносишь куда-то вовне, скажем, в виджет, а контролы - на соответствующий тулбар. Ну, ежели хочешь мммаксимум кастомизабельности, можешь рендереры кусочков таблицы инжектить в DI, но я хз, надо ли, есть риск выпотрошить все кишки таблицы, не поимев с этого никакого профита.
>>1852712 Для написания скриптов на плагин worldedit на сервере в майнкрафте. >>1852775 Анончик... Что это все значит? Сегодня писал на жс первый раз в жизни >>1852785 Так я тоже пробовал. На любую попытку импорта он говорит синаксическая ошибка. Там пакеты импортируются вот так - importPackage(Packages.com.sk89q.worldedit); https://worldedit.enginehub.org/en/latest/usage/other/craftscripts/ вот здесь подробнее
>>1853044 >У него Rhino, какой, в пизду, вебпак. Он хочет ES6 синтаксис и свистоперделки пока пишет код. Можно и просто бабелем сконпелировать. Но так-то не нужен, да, если будет писать на ES5 пхахахахахаха
>>1853094 >>1853141 Ну тип если надо в другой кусок стейта писать - то просто делаешь в другом редусере, делов то. Если одна часть стейта зависит от другой, то надо задуматься, нужно ли их разделять на разные части скорее всего нет Если нужно - то в тред пишут фантомные советы даже раньше чем вы спросили: >>1852960
Ascii web Gayme
Аноним11/11/20 Срд 08:48:05№1853280127
>>1851680 (OP) Посоветуйте годный гайд по ascii рогаликом на чистом canvas js без всяких сторонних либ. ЗЫ: нигде такого не нашел, а самому додуматся тяжело
>>1853280 А по какому аспекту тебе гайд-то нужен? Берешь стейт, берешь гейм луп, каждый кадр рисуешь стейт на канвасе. Плюс вешаешь на клавиатуру функции для управления стейтом. Все, игра готова.
У меня есть массив [id1, ... ,id20] Как мне в реакте отправить 20 запросов к апи и все результаты вывести на одной странице? Пробовал через фор ич->эсинк эвэит, но мне почему-то такое выдает: Can not use keyword 'await' outside an async function
как отфильтровать массив так, чтобы убрать повторяющиеся элементы с licenceNumber, и при этом оставить самый новый? Написал функцию которая просто формирует новый массив без дубликатов с licenceNumber, но не могу допереть как при этом еще в результате оставлять тот, что с самой новой датой.
>>1853564 Создаешь словарь вида {licenceNumber:additionDate} Проходишь по массиву, проверяешь есть ли в словаре ключ с licenceNumber, если нет, то добавляешь текущий в словарь, если есть, то сравниваешь additionDate и либо оставляешь значение ключа без изменений, либо заменяешь на более новый. Далее из получившегося словаря делаешь массив вида [{licenceNumber:additionDate}];
Либо можно отсортировать массив по additionDate, после чего создать Set и пробежать по массиву, добавляя те элементы licenceNumber которых нет в Set.
Убери это. У тебя сложность O(n2) с этой хуйней, если делать через reduce и Set, то будет O(nlogn) из-за сортировки. Если делать через словарь, то сложность будет O(n)
Почему жабаскрипт такой странный? Хочу при нажатии на элемент добавлять к нему класс, но какого-то хрена он добавляется на пол секунды и исчезает, после чего по второму клику он уже не добавится. При этом через консоль в DevTools и за рамками функции-эвентлистенера всё нормально работает, ЧЗХ?
Вопрос по браузерному жабаскрипу. Нужно найти на странице все элементы, у которых background-image -- не важно, прописанный в ксс или в аттрибуте style -- содержит определённую подстроку. Есть какой-то простой метод, о котором я не знаю, или надо самому костылять перебор всех элементов внутри document с вызовом getComputedStyle для каждого?
На фронт приходят объекты вида: { score: number, msg: string }
Надо засунуть msg в подготовленное поле и нарисовать слева от него цветной столбик как на пике, в зависимости от score (то есть если score 100 то зеленым, если 12 то красным и т.д.)
Реализация - ванильный жс. Но походу большая часть херни именно с css связана, ведь так? Как эти ебучие цветные столбики нарисовать как на пикриле?
>>1853854 все нормально, только все что связанно с методами fetch и строками url лучше держать в отдельном сервисе(классе) и инжектиь объект его через специальный сервис провайдер
Запилил на вашем реакте и редаксе интернет магазин, все сделал дошел до корзины а туда прилетают числа в десятичной системе, ебал нахуй че делать? Туфиксед нихуя не работает
>>1854153 border-left: 5px solid Цвет потом сам жс назначит
Однако... Градиентная заливка как на пикриле не получается, с linear-gradient . Тут походу надо свою картинку подгружать но вот как заставить ее идти исключительно по тексту?..
пишу скрипт на питоне с помощью селениума, браузер от селениума прячу в xvfb. Проблема в том, что скрипт через время крашится с ошибкой. На ощупь нашел проблему, дело в том, что на странице идет вечная анимация, пока страница не станет активной. Есть идеи как это обойти?
>>1854253 Все делается с градиентом, просто нужно взять два цвета, разных оттенков. linear-gradient(to top, якрий цвет 1-100%, бледный 1%), меняешь только яркий в зависимости от счета.
>>1854253 Див, а внутри него два дива разной высоты и разного цвета. Работать будет везде и везде одинаково. Я так делал ещё лет ... назад, правда, горизонтальные и очень узкие, но это не важно.
>>1851680 (OP) Читал соседний тред, там джун фронтендер не может с сентября работу найти, думает, что из-за вышки. Реально ли так все так хуево и без корочки (пиздежа про корочку) не чекают резюме? Я сам 24 годика, без вышки. Работаю руби-бэкендером, но мне повезло, устроился по блату через знакомство, однако чувствую себя не в своей тарелке (работаю с родственниками, да и зарплата не такая высокая, права качать тоже неудобно), думаю перекотиться во фронт, поработать пару лет, а там я уже буду жоних фуллстак с опытом. Что скажете, реально все так плохо? Сидеть на жопе ровно?
>>1854598 В России вышка мало на что влияет, можно изи найти высокооплачиваемую работу без нее. Нужна в специфических местах типа госкомпаний или Яндекса (любят дрочить алгоритмами и матаном с которыми у вкатывальщиков туговато обычно). Но если собрался перекатывать со временем, то советую начать получать, значительно проще с визами и в вакансиях CS Bachelor/MS часто мелькает. Успеешь получить до 30 и будет потом хорошим бонусом. Неплохая программа, например: https://www.coursera.org/degrees/bachelor-of-science-computer-science-london Я вот слегка жалею, что раньше не начал.
>>1854776 Ну, эээ. Давайте мыслить логически, мы же программисты )) Человеку нужно выполнить какую-то задачу, т. е. набор функций, на JS можно описать этот набор функций. Значит JS функциональный язык программирования :)
>>1854776 >Что такое функциональное программирование и какие особенности JS позволяют говорить о нем как о функциональном языке программирования? Самому знать пора. Мы вам перезвоним.
В ангуляре при помощи роутинга написал для компонента адрес, условный "/mainpage" Однако когда совершается переход по этому адресу GET-запрос на сервер с параметром /mainpage не совершается... (на серваке даже лог не срабатывает), почему так? Ангуляр разве не должен автоматически слать get-запросы, когда переходит по url-ам?
>>1854920 Потому что это SPA. Запросы должны совершаться не при переходе на страницу компонента, а при загрузке каких-либо данных этим компонентом, каких именно данных указываешь уже сам, если нужно загружать что-то во время перехода по роуту компонента, то обычно используют метод компонента ngOnInit
>>1854932 Ну у меня поначалу просто совершается get-запрос, на котором проверяется роль юзера, затем в ngOnInit я вызываю другой url и подгружаю основные данные оттуда Думал первый запрос сам должен пройти, я ж по url перешел
>>1851680 (OP) Возможно ли сделать отображение стрелок (увеличения и уменьшения значения) на <input type='number> на тачскрине? Я имею в виду стандартный компонент (без плясок с бубном и отображением своих собственных кнопок поверх)
>>1854962 Чекнул, что у нас на фронте по грейду "сеньор" идет - всякие докеры, кубернетисы, архитектурные паттерны (MVVM,MVI и др), мультипоточность, libuv/libevent, SSR... Я честно хз, нахуя что-то по докеру особого знать, кроме как уметь подправить конфиг и запустить контейнер.
Сап, динамические. Возник вопрос, насколько адекватно использовать везде анонимные функции плана const jopa = () => { puk() }? this не использую, но все равно выглядит странно.
Можно ли как-то через app.set передать переменную в pug файл? Можно ли как-то взять из webpack.config.js? Как короче лучше сделать. Переписывать сильно не хочу.
Как правильно описать промисами следующую ситуацию:
1. Выполняем асинхронные запрос А 2. Читаем результат от А 3. Если результат true, то выполняем асинхронный запрос B; если нет - останавливаем исполнение 4. Читаем результат от B если был сделан запрос
Очевидно что можно написать херню вроде (считаем что service возвращает уже готовый результат и await не нужен): service.makeRequestA().then( (response) => { ----if (response.result) { --------service.makeRequestB().then( (response) => { ------------processResponseB(response)); } ----} ----else { --------console.log('FAIL'); )};
>>1855019 Если await не нужен то зачем ты пишешь .then а не сразу кладешь результат в переменную? Async/await это просто удобный синтаксис работы с промисами для того что бы избавиться от колбеков.
>>1855259 Болезный, как связаны какие-то абстрактные хуки и > обильным использованием сети и прочих апи ? Хуки просто функциональный способ описать действия в определенных состояниях жизненного цикла. Если ты в компонентах описываешь логику с сайдэффектами, ты по определению сосешь. В остальном твои консерны не ясны.
>>1855271 Нормальные люди хранят весь стейт кроме мелочей в редуксе, сеть и апи вынесены в саги, которые теребят стейт и автоматом перерисовывается интерфейс. Как на хуках предлагаешь это делать? Они годятся для разработки компонентов, а уровень повыше все равно придется по-старинке делать.
>>1854598 Нет, это скорее связанно с тем, что после курсов от всякой академии и им подобных контор на рынке просто куча джунов, а компаниям нужны мидлы, которых можно сразу за работу посадить. Довольно много компаний морозится, когда узнаёт, что у тебя 0 коммерческого опыта. сам с зимы ищу
>>1855019 Чувак, ты не понимаешь сути промисов, и хуяришь какие-то колбеки из них.
Тебе из then() надо возвращать service.makeRequestB(), а всё остальное делать в следующем then() в той же цепочке. Никаких лесенок, ты что, охуел?
типа taskA.then(r -> if (a) return taskB eles return completedPromise(null)).then(b -> ...).then(c -> ...) Если промис нихуя не вернул, то дальнейшая цепочка не вызывается. Это монадический паттерн, чтобы ты знал. Плюс - можно выкинуть exception и обработать в конце цепочки.
>>1855370 Для тех, кто не вдупляет - добавлю: Промис (future) - это значение. Замороженное действие.
Цепочку можно разорвать в любом месте, передать куда-то и там продолжить. Профит от таких вещей далеко не всем очевиден, и для недалёких придумали async|await, чтобы у них мозг не перегревался.
>>1855327 >сам с зимы ищу Блядь, как можно что-то искать больше года? Ты весь этот год чем занимался? Мог уже 10 проектов своих написать и спойно напиздеть, что фрилансил, или просто сказать, что у тебя дохуя опенсоурсного опыта и т.п. Мог найти таких же вктатывальщиков и пилить командный проект попутно обучаясь, и т.п. Или ты написал одну сранную тудушку и сидишь ждешь когда же тебя на работу с ней пригласят?
>>1855384 Ну да, как то так. В коде для обучения можно добавить setTimeout(...) и резольвить по истечении таймаута - для натуральности. Короткие операции можно просто инлайнить в then().
Попробуй ещё вместо throw new Error() просто делать reject() - это более правильно, режект для этого и придуман.
>>1855388 Хуячил тестовые, делал минипроект с другими людьми, который в итоге никуда не вылился. Пиздеть на собесе не хочу, т.к. мне это потом в ногу выстрелит.
Хоть на работу устроился, ценитель мамкин? И мозг перегревается не у тех кто пользуется удобными конструкциями, а у тех кто не хочет отходить от старых и придумывает себе оправдания.
Есть ли такое понятие как React Junior/React middle/React senior? Или поздразумевается, что если ты "знание react", то вот прямо целиком должен уметь от начала и до конца написать любое приложение, со всеми паттернами, и оптимизацией, любого масштаба и сложности? Есть ли такое, что какой-нибудь сеньер набрасывает общую архитектуру, а там уже кто во что горазд кодит компоненты? Я конечно учу всё целиком, но все же интересно.
>>1855327 >компаниям нужны мидлы, которых можно сразу за работу посадить. Компаниям нужны сразу сеньеры с з\п жуниора, а лучше и без нее. Только вот рынок по губам компаниям проводит. Мидлы и сеньеры они на то и мидлы и сеньеры, что у них уже есть работа. Им не нужно ее искать. А искать нужно вкатывальщикам (что даже еще джун). Так что два варианта для компаний - жди, пока освободится мидлосеньер и заманивай зп или набирай вкатов и обучай.
>>1855522 Ничего сложного нет, это основы. Такое у джунов обычно спрашивают. >>1855541 Иногда надо, для этого есть библиотеки типа лодаша и специальные методы.
Посоветуйте, плиз, обучалку чтобы не просто рассказывали про всякие переменные/функции/методы, но еще и научили как делать базовые интерфейсные штуки, вроде выпадающих меню, слайдеров и прочего.
>>1855597 Никто не делает самостоятельно выпадающие меню, слайдеры и прочее, этим занимаются создатели библиотек. Задача фронтендеров это расположить эти готовые элементы на странице, иногда подправить что-то в них, сделать страницу адаптивной и т. п.
Всем спасибо, попробую завтра решить руководствуясь вашими советами. Добра вам. К слову, вкатился в 32 без вышки. Кто до этого беспокоился - это вполне реально. Шизиков игнорируйте.
>>1855618 >вкатился в 32 >заставляют пилить велосипеды в виде слайдеров и выпадающих меню Еще и платят наверео как дворнику-таджику. Нет, сычуш, ты не вуатился в айти, ты вкатился на дно русского наебизнеса в качестве лошадки.
Как учиться программировать-то? Все книги что не нахожу, это скорее справочники и примеры работы различных методов, операторов и всего такого. Нужно курсы проходить, где пилят что-то большое, и потом уже применять практики показанные там?
>>1855700 >пройдя курс learnjavascript.info >Стоимость обучения 19000 руб, время обучения: 1.5 месяца. Инфоциган плиз Так я про курсы и спрашивал, не понял к чему ты это вообще высрал. Или ты имел ввиду ту общедоступную инфу на сайте? Ну так это справочник по сути есть.
>>1855713 Общедоступную и имел. Если тебе этого недостаточно, то программирование это не твоё. Можешь злиться, но чем быстрее ты это признаешь, тем меньше времени потратишь на бесполезное для тебя занятие.
Вопрос тем кто пишет ботов для телеги на node.js. Как сделать выскакивающее сообщение для подтверждения действия по типу alert ? Знаю что это возможно, использую библиотеку node-telegram-bot-api
>>1855889 Не, мне нравится, это даже чем-то вроде специализации стало. Сейчас вот хантят с релокацией писать четвертый лол.
Везде же требования разные и дизайн разный. Что могу переиспользую, конечно. Например на последней работе нужен был календарь с поддержкой часовых поясов и таймслотов. А на предыдущей у всех компонентов должна была быть автоматическая отправка аналитики и возможность задавать дополнительные наборы пропсов для разных разрешений. Костылять такие вещи на основе какого-нибудь material или antd заебно, поэтому пишут свое.
>>1855839 Ты либо искать не умеешь, либо любитель писать велосипеды. Скорее всего второе. Даже если что-то не устраивает в готовом, то легче изменить его и подстроить под свои нужды, чем писать всё с нуля.
>>1855833 Alert не подтверждает действие, он просто блокирует экран и показывает оповещение, название так и переводится. На твоём скрине тоже нет подтверждения, просто кнопа для закрытия модального окна.
>>1855915 Да-да, у всех компаний со своими дизайн-системами разработчики просто слишком глупые и не догадались взять antd или material. Не пробовал пойти в Яндекс или Альфу поработать? Сэкономишь им кучу денег своими идеями.
>>1855716 >это не твоё Как же вы заебали, это какой-то мем местный? Так вообще на любой вопрос в любой сфере отвечать можно. То, что мне было нужно, называется паттерны проектирования, спасибо короче, сам нашел нахуй
Че за нахуй? Если при клике элемент мигает то значит он рендерится, а если не мигает то что? Кликаю по нему он не мигает хотя значение в этом поле меняется, профайл ведь выделяет те элементы которые рендарятся?
<p class="test1">Абзац2.</p> function foo() { var matches = document.querySelector(".test1"); matches.style.backgroundColor = "yellow"; }
Не очень понимаю чему равно matches, это ведь не только текст из test1 или и форматирование еще? Потому как alert (test1); выводит "undefined". Ну и основной вопрос как через alert вывести текстовое значение этого test1 а именно "Абзац2."
>>1855977 >Так вообще на любой вопрос в любой сфере отвечать можно
Не на любой. Если ты в балет собрался идти в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты собрался идти в бизнес имея 20к рублей на банковском счёте, то тебе скажут, что это не твоё и будут правы. Если ты собрался стать чемпионом мира по шахматам в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты инвалид без ног, то тебе скажут, что бег это не твоё и будут правы.
>>1856001 >Значению которое возвращает метод querySelector объекта document. И что это за значение в данном случае? Понятно что он это возвращает, я не понимаю взаимодействия с хтмлем. Он ведь возвращает не просто текстовую строку "Абзац2." а что-то еще. И как этот "Абзац2" вывести через алерт, должно быть что-то вроде алерт (матчес.валуе), блядь короче не знаю тупость какая-то пока не вник в основы синтаксиса, в хэлпах тоже дичь.
>>1856003 >Не на любой. Если ты в балет собрался идти в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты собрался идти в бизнес имея 20к рублей на банковском счёте, то тебе скажут, что это не твоё и будут правы. Если ты собрался стать чемпионом мира по шахматам в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты инвалид без ног, то тебе скажут, что бег это не твоё и будут правы.
ОО так у нас тут able body privilege, таких на западе быстро с небес спускают и в специальных легерях толерантности переучивают, безногие вполне могут стать чемпионами среди своих же безногих
>>1856003 >Если ты собрался создать частную космическую компанию тебе скажут, что это не твоё и будут правы. >Если ты собрался стать богатейшим человеком в мире работая в магазине одежды кассиром в 34, тебе скажут, что это не твоё и будут правы Ну ясн
>>1856004 >И что это за значение в данном случае? Открываешь документацию, смотришь на возвращаемый тип. В случае c querySelector это HTMLElement. Далее смотришь что это за HTMLElement и какие свойства у него есть. Если тебе нужен текст этого HTMLElement то ищешь какое свойство вернёт тебе текст который содержится в этом HTMLElement, если такое вообще есть. Ты просто с жопы учить начал. Основ не знаешь, но уже полез использовать методы каких-то стандартных объектов, поэтому всё для тебя выглядит как какая-то магия.
>>1856007 >безногие вполне могут стать чемпионами среди своих же безногих
Ну да, только это не бег будет. И существовать это может только благодаря спонсорству людей с ногами, при этом не во всех странах и не для всех безногих, но людям вроде тебя свойственно верить в розовый манямирок, потому что иначе они впадают в депрессию от несправедливости мира. Родился человек умственно отсталым - никак из него ты ученого не сделаешь. Насколько нужно быть тупым чтобы это отрицать?
>>1856016 >Если ты собрался создать частную космическую компанию
Но при этом твой отец не владелец богатой компании, которая помогла воспитать из тебя успешного человека, то тебе скажут, что это не твоё и будут правы.
Про кассира ничего не знаю. Скорее всего какая-то очередная охуительная история успеха для хомячков вроде тебя.
>>1856034 Какую нахуй правду блядь? Ты сам выдумал себе какое-то утверждение, сам его опроверг и теперь пытаешься указать на неправоту изначального утверждения, который ты сам и высказал. Ты сам с собой споришь шиз
>>1856052 >ряя ани зарабатывают миллионы паетаму ты им должин сапог цилавать и мочу их глатать яскозал!!
Проиграл с этого человека с моделью рабсиянина с ног до головы. Если хочется более детального разбора, то есть куча статей на хабре, по крайней мере по яндексу, которые говорят почему их проекты дерьмо в плане дизайна и ux. Но это и на собственном опыте можно узнать, достаточно не жить с установкой "богатый - значит не подвержен критике".
>>1856053 >Тут понятие "уже есть готовое" неприменимо в 90% случаев. >Если ты не школьник, конечно. >любая статья, любая книга, любое учебное пособие учат не пилить велосипед и использовать готовое решени
И давно это школьники начали так хорошо в веб-программировании разбираться и учить других?
>>1855997 Примеры у тебя говно конечно. Начни с изучения https://learn.javascript.ru/ Как всё выучишь и если не поймёшь - тогда приходи или выкатывайся из прогерства, лел.
>>1856069 С чего ты взял про "любимый" Яндекс etc? Я, всего-лишь, написал, что js+html+css = сильносвязанная параша, которую в 90% случаев проще написать заново, чем переделывать под себя. Гораздо продуктивнее использовать либы типа popper и т.п., а собственно реализацию меню делать свою. Речь идёт о больших проектах, естественно.
>>1856083 Любой программист увидя matches или match ожидает от правой части использование регулярного выражения. В данном случае следовало бы объявить переменную targetElement
>>1856003 Токсик защищает своей право быть душным мудилой, спешите видеть. Такие как ты, одна из главных проблем IT, если не человечества в целом, без шуток.
>>1856056 Какой-то рандом написал на Хабр статью про плохой UX Яндекса и ты из этого делаешь вывод что собственные ui-киты не нужны? Найс логика, конечно.
>>1856101 Я делаю эти выводы из собственного опыта. И говорить "собственные киты нужны, потому что у яндекса нет" в корне неверно, хотя бы потому что яндекс, в отличии от 90% разработчиков, может позыолить себе содержать отдельный отдел, который эти киты создает.
>>1856109 Не нужно мешать всё в одну кучу. Асинхронные вещи (промисы, async|await) должны у тебя делаться где-то отдельно. Потом, после завершения, должен измениться стейт. А реакт его просто отрендерит.
Для более конкретных советов недостаточно подробностей. По какому событию что происходит и т.д.
>>1856132 Тебя это пугает потому что твоя мамка и твоя бабка внушили тебе, что в этом мире нужно всего бояться, от всего убегать, а не принимать реальность с трезвой головой, взвешивая все за и против.
>>1856156 Там, насколько я понял, основная проблема (в отличие от браузера), в том, что ответ приходит "с той стороны", асинхронно. И нельзя просто вывесить confirm-диалог, и ждать ответа пользователя.
>>1856165 А в чем конкретно проблема возникает? Такой же компонент как и любой другой. Ну, монтировать иногда удобнее ближе к корню, это через порталы легко решается.
>>1856170 Создать компонент обертку modal на самом верху и передавать туда конкретные диалоговые сценарии(компоненты) в качестве children через state. как тебе такой паттерн?
Помнится сидел в каком-то чате в телеге, где мелькали всякие двачеры с аниме-аватарками. Там ещё был тип с ником сенатор. Дайте линк пожалуйста, ну или на что-то аналогичное.
With mapState, all individual fields were returned in a combined object. It didn't matter if the return object was a new reference or not - connect() just compared the individual fields. With useSelector(), returning a new object every time will always force a re-render by default.
>>1856538 Ну и в чем разница? С connect у тебя будут те же самые ререндеры, если селектор каждый раз возвращает новый объект и ты передаешь его как поле. Это вопрос не к хукам, а к тому что селекторы надо писать нормально.
>>1856562 Ну ебановрот, connect один и ты вынужден пихать туда все селекторы и возвращать объект, а useSelector может быть сколько угодно. Алсо там может возвращаться любое значение и никакого смысла в shallow compare нет.
>>1856619 Если в хедере или нав панели торчит счетчик сообщений, а эти элементы ререндарятся даже если не было новых сообщений и в этих элементах нет других завязок на стейт, какого хуя происходит?
Анон, есть обьект с двумерным массивом и методами для движению по этому массиву. Почему ниробит при добавлении интервала к методу goRight()? Хочу что бы элемент сам шел с интервалом на право, вместо того, что бы я клацал руками.
>>1856735 Потому что тебе обидно? Ведь других оснований для твоего высера нет, потому что у ангуляра есть всё из коробки и даже у новичков не возникает вопросов вида "пук среньк как передать стейт родителю"
>>1856753 В итоге рыночек получает плохообучаемую макаку, которая деплоит в прод через месяц то, что на ангуляре делается за неделю. Про уровень поддерживаемости и говорить нечего, реакт нервно курит в сторонке.
>>1856756 >>1856757 Ну опять же никто не мешает вкатиться на реакте и рерольнуться в ангуляр при желании. Я просто не представляю сколькой всякой хуетристики нужно будет выучить джуну чтобы сразу пилить что-то вменяемое на ангуляре с тайпскриптом
У кого-нибудь есть торрент-файл или ссылка на скачивание книги Head First "Изучаем программирование на HTML5" Эрик Фримен, Элизабет Робсон? Везде торренты с файлами, где в книге "н" перепутано с "п".
>>1856867 Советую пройти какой-нибудь более-менее законченный курс, а потом уже практиковаться делая свои небольшие проекты, решая задачки на codewars и т.п
Просто так вне контекста учить функции, методы и прочее будет довольно трудно. Это все по мере необходимости можно нагуглить, а более общее понимание того, как и почему именно так пишется код, приходит после прохождения урока по чему-то более-менее законченному. Ищи на всяких udemy, coursera и т.п. Ну а где купить со 100% скидкой сам знаешь. Алсо, если английский не идеальный, ищи курсы на русском, это нормально, хорошие курсы на русском тоже есть.
Аноны вложенный стейт в реакте нужно обновлять как то по особенному ? у меня стейт хранит два объекта state = { player: {}, enemy: {name: 'mob', hp: 100} }, когда я через сетСтейт обновляю hp у enemy, он не обновляет стейт, а тупо перезаписывает на enemy: {hp: 101} теряя остальные ключи.
>>1856959 Единственное что нашел, это то, что таким образом внутри функций можно объявлять глобальные переменные, но дальше по коду к этому значению ссылаются через this, это ведь значит, что эта переменная не доступна глобально?
>>1856959 >Что происходит когда ты объявляешь переменную вообще без какого-либо var/let/const? >по коду к этому значению ссылаются через this, это ведь значит, что эта переменная не доступна глобально?
this может быть глобальным объектом, window в браузере, поэтому к объявленной глобальной переменной можно обращаться через this при условии что this ссылается на глобальный объект
>>1856966 Ну в том случае ссылаются на строку указанную в теле класса, вот такая апишка в общем https://codeshare.io/50kvov по уроку делал, тут в самом верху
>>1856714 В "тухлом жабомирке" он используется чисто по инерции. Потому, что типа похож на "энтерпрайз" - сервисы, dependency-injection etc. Всё такое тяжёлое и основательное, как мы, джаваёбы, любим. Конские библиотеки, тонны аннотаций, сотни страниц руководств, вот это вот всё.
И очень многие покупаются на знакомые буквы, лол. Яша Файн аж два издания книжки выпустил про Angular + TS, типа "вам, джаваёбы!".
И там с первых строчек такой, блядь, пиздецкий тулинг, что просто нахуй закрываешь эту книжку - страшно. И это подаётся как selling point - типа смотрите, всё, как мы любим - как мавены, спринги, простыни конфигов, вся хуйня.
Но, тут на арене появляется Vue (а теперь и Vue 3). И становится понятно, что вся эта монструозная хуета - просто шелуха и мимикрия под "как у взрослых", сделанная не от великого ума. И что на самом деле - она и на хуй не нужна, вот совершенно. Создатели Vue, как-бы, говорят нам - вот, смотрите - вот так выглядит Ангуляр здорового человека.
А так-то в жабамирке и GWT используется достаточно активно. Более того, сам Гугол для сложных проектов использует как раз таки GWT, а Ангуляр, почему-то, не хочет. Возможно, они и купили его, в своё время, чтобы просто придавить. Если так, то у них получилось.
Теперь мне надо хотя бы подписать v-select'ы, если это вобще возможно. Должно выглядеть так, как массив меток fansLabels, т.е. по порядке слева-направо.
Для них можно сделать собственный итератор?
>>1856916 Братан, я могу. Только у меня не получается сделать так, как мне надо.
>>1856988 А чего бы тебе не сделать свой компонент на базе v-select, раз уж ты так хочешь vuetify? Это же как 2 пальца обоссать. И пиши там, что хочешь.
Поясните за общий принцип, если у меня для доступа к беку есть уникальный приватный ключ, его же нигде внутри страницы нельзя использовать? Типа есть база данных, доступ к json которых предоставляется только если к запросу добавить ключ, типа:
Вот этот вот ключ нельзя же нигде указывать при написании кода, его нужно как-то зашифровать или что? Я просто еще такого доступа к беку не делал, куда гуглить?
Или такие ключи можно показывать публично? Сам ключ я получил заполнив заявку у поставщиков базы данных, они просто дают тебе доступ к своей системе, в которой хранятся данные по музыкантам, исполнителям и т.п. Т.е. ничего секретного там нет, но я так понимаю с этим ключём можно израсходновать мой лимит по запросам, если кто-то себе его заберет?
>>1857012 Ах ну да, и в догонку, если я исходники потом публично буду выкладывать, мне же в любом случае сам этот ключ никуда в код зашить нельзя будет? Где его хранить-то?
>>1856975 А, я забыл, что в JS кто-то под классами может подразумевать реальные классы, а не объекты. В данном случае это просто публичное поле объекта. Тоже самое что const x = function() {this._apiBase = "www.google.com"}; и потом let instanceOfX = new x(); instanceOfX._apiBase // "www.google.com"
Можешь в эту хуйню не вникать, классами в JS никто не пользуется. Если кому-то нужны классы, то используют Typescript.
>>1857012 Подобные ключи хранятся на сервере. На фронте идёт запрос к твоему сайту, а уже на сервере идёт запрос к http://website.com/item/50?key=secretkey123 Можно конечно через твой сервер тоже самое получать, но так ты хотя бы сможешь контролировать это, а если будешь хранить в коде ключ, то его смогут использовать без твоего ведома.
>>1857016 Объект в data, в котором расписано то, что ты хочешь. И который будет отрендерён по шаблону. И перерендерён при изменениях, если надо.
Такое ощущение, что ты немножко недопонял не то что суть Vue, но и вообще суть всех подобных mvvm|mvvc|mvxxxxxxx фреймворков, и пытаешься ломиться в открытую дверь.
>>1857034 Речь была не о "выходе в прод". А о процессе разработки, и о том, с какими абстракциями имеет дело разработчик. Тащить java-подходы в лёгкую и динамичную js-среду - это не от большого ума. Это называется overdesign. "Написали длинно, потому, что коротко написать не было времени" (или не хватило таланта).
Но, я никого ни за что не агитирую, просто высказал своё мнение. Нравится Ангуляр и есть возможность писать на нём - пиши, ни на кого не оглядываясь.
>>1857035 Чувак, чувак пока ты ещё здесь... Спасибо за помощь.
Подскажи ещё как передать уникальный ID для каждого из 15-ти v-select'ов?
Раньше использовал и получал индекс изменённого селекта: <v-select v-for="(el, index) in fansLabels" :key="index" // @change="changeFanCfg($event, index)" ></v-select>
>>1857029 Ну они меняют названия свойств с снейк кейса на камел кейс. Но всё равно можно было всё в одной функции для всех делать: _transform(target) => { return { id:this._extractId(target), ...Object.getOwnPropertyNames(target).reduce((res,p)=>(res[this.toCamelCase(p)]=target[p], res); } }
>>1857029 Айди из url получаешь только потому, что в swapi нет id у объектов, он в уроке говорил что это довольно хуево, но показал как в данном случае это можно обойти. С беком в уроке не работали, базу эту использовали просто для примера.
>>1857041 Какие, блять, абстракции, поехавший? В Ангуляре всё разложено по полочкам - вот тебе компонент в виде ts, вот тебе его шаблон в виде html, вот тебе его стили в виде css, вот тебе модуль который будет объединять компоненты. Если есть что-то глобальное, то пожалуйста, регестрируй как сервис и внедряй в конструктор компонентов в которых этот сервис будет использоваться, получая чистый код в котором не насрано. В компоненте описываешь логику получения данных и сами данные, в шаблоне с этими данными работаешь. Где ты там абстракции увидел?
И, я же не знаю, как у тебя там "сейчас". Если нигде нет индекса, почему-то, то можно просто сделать computed-свойство со счётчиком, наверное, но, это надо пробовать.
Но, по идее, у тебя же заранее известно количество этих селектов и их содержимое, в том числе, и какой должен быть id? Создай для каждого объект-модель типа {id: 1, name: 'Name 1', items: [...]}, и помести их все в массив. И в цикле v-for отрендери. Свойства объекта - в :атрибуты (properties) компонента. Вот и будет у тебя id или key для каждого.
>>1857056 И да, v-for не обязательно делать именно для селекта. Можешь в див его обернуть, и v-for писать в диве. Или див, а в нём три селекта, у тебя же так?
Я бы, наверное, вообще сделал свои компоненты, без v-select - работы чуть больше, но, полный контроль. Но, и див поверх v-select - это уже первый шаг к своему компоненту-обёртке.
Я хотел бы передать уникальный номер посредством аргумента в @change="changeFanCfg($event)" Думал подстановка, типа @change="changeFanCfg('${k}', $event)" проканает, но передаётся просто фиксированный текст.
>Но, по идее, у тебя же заранее известно количество этих селектов и их содержимое, в том числе, и какой должен быть id? Да, надо 15-ть селектов. С v-row \ v-col решил заморочиться из-за того, что так они просто в одну колонну идут вертикальную, а как раскидать по 3х5 и уменьшить размер я не знаю, не разобрался ещё.
>Или див, а в нём три селекта, у тебя же так? Нет, не так.
>>1857505 >a:b[0].a = 30 Хочешь сказать что нужно делать так a:30? И вообще нахуй ебаться с мутабельностью если среакт один хуй отрендерит заново тк стейт поменяется? А он поменяется тк мы туда посадим новый массив со старыми оьектами и одним новым
(то есть я хочу чтобы таблица показывалась уже после того как будет установлен this.loaded=true и количество айтемов, подгруженное с бэка, будет больше 0)
Только эта падла умудряется подгружаться через раз. Когда загружаешь страницу есть шанс 50% что форма не будет отображаться, при этом в консоли ошибок нет