Этого треда уже нет.
Это копия, сохраненная 13 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
image.png89 Кб, 1050x1050
JSThread #182 /js/ # OP 1851680 В конец треда | Веб
Прошлый тред: >>1845843 (OP)

Больше пары строк кода в посте или на скриншоте ведут в Ад.

Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs

Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.

Руководство для вката: https://developer.mozilla.org/
2 1851682
@dynamicult
3 1851694
ТИПИЗАЦИЯ НЕ НУЖНА
4 1851720
>>51694
Что это такое?
5 1851721
>>51720
Это то что тебе не нужно
6 1851724
>>51721
Приведешь пример, в каком языке нет типизации?
7 1851727
>>51721
Не ну серьезно ? Хотябы своими словами
8 1851729
>>51724
Брейнфак

>>51727
Наличие сильной системы типов
9 1851736
Тут кто-то пользуется реакт квери? Есть вопросик один...
10 1851753
Бля нихуя не пойму есть два редюсера, один записывает данные в стейт, другой должен прочесть эти данные и изменить, они лежат в разных файлах как в один прокинуть данные из другого стейта?
11 1851773
Что вы писали на жс такого, за что вам потом было стыдно?

Я вот, например, писал немношк на жс/ноде аппы для энергетической промышленность. Надо ли говорить, что никаких рантайм валидаций там не было? НЕ ГОРЖУСЬ.
12 1851794
>>51773
вот мне стыдно там надо было в две точки делать а не в одну >>1845686 →
13 1851795
>>51753

Ну вот ты и повелся на тудушки и каунтеры от Денчика, даже он не решил куда бизнес логику положить, вобщем архитектуру меняй лол на НОРМАЛЬНУЮ где не надо в редусере чета читать и изменять как в тудушке
14 1851800
>>51795
Да блять а как ты из списка товаров которые отдельно прилетают кинешь в корзину которая по сути должна отдельно быть?
15 1851807
>>51800
Через сервис, ю ноу?
16 1851820
>>51753
Запихнуть в компонент выше уровнем
Погугли atomic паттерн
17 1851829
Как в TS определить что-то вроде mapping? То есть у меня есть объект вида {id: value}, то есть каждому айдишнику сопоставляется своя value. Хрень вроде:

interface MyInterface {
id: string,
value: number
}

Не в тему, т.к. мы просто определили объект у которого 2 поля: id и value
18 1851836
>>51829

>то есть каждому айдишнику сопоставляется своя value


И что она, блядь, каждая своего типа? Со стороны кажется, что тебе нужен tagged union, хотя не уверен, что за говноструктуру ты себе наворотил.
19 1851838
>>51829

>Как в TS определить что-то вроде mapping?


Есть в тс mapped types, хотя повторюсь, если у тебя структура спроектировано хуево, ты будешь ебаться с выводом типов.
https://mariusschulz.com/blog/mapped-types-in-typescript
20 1851840
>>51829
export interface HashMap<T> {
[id: string]: T;
}
21 1851842
>>51840
Есть Record<A,B>
22 1851844
>>51840
Эм, а че означает [id: string]: T, в смысле я в курсе про дженерик Т не врубаю только как можно писать [id: string]: - мы объявляем массив с id: string которому соотносится тип Т (чего блин?..)
мимо
23 1851850
>>51844

>мы объявляем массив с id: string которому соотносится тип Т


Нет, это просто констрейнт на тип ключа. Нет там никакого массива. Это почти то же самое, что рекорд тип выше, просто там на ключ релаксед контстрейнт (вроде можно указать числа и символы).
2020-11-0915h3808.png7 Кб, 428x224
24 1851851
>>51829

>То есть у меня есть объект вида {id: value}, то есть каждому айдишнику сопоставляется своя value.


Если прям на каждое значение ключа свой тип, то тогда у тебя будет интерсекшн на каждый ключ
25 1851853
>>51794
Что там эта точка делает? Я понел что она контроллер квадрата, но что именно она делает непонел
26 1851865
Есть Array с объектами типо
let arr = [{name: "Aleks", job: "cleaner"}, {name: "Ivan", job: "saler"}, {name: "Boris", job: "barman"}]

Как отсортировать массив по имени (name) объекта?
arr.sort((a, b) => {a.name < b.name})
Что-то нихрена не делает
27 1851866
>>51853
точка это время(t), а все остальное - анимация. там в задаче было условие на нажатие пробела нужно поднимать один квадрат вверх и держать его, с одной точкой этого без костылей не сделаешь. а вторую точку не сложно дописать, просто я так и не увидел ответа просящего
28 1851870
>>51865
пушто надо знать как сахарок работает
return проебал
29 1851890
>>51865
Фигурные скобки убери у комппратора
30 1851966
>>51829

>что-то вроде mapping


Спешите видеть - жээсеры открывают для себя структуры данных.
"Что-то типа маппинг" - это любой объект JS.

>Не в тему, т.к. мы просто определили объект у которого 2 поля: id и value


А что такое "маппинг", по-твоему, какая-то охуенно секретная магия?
А просто объект - так, хуйня?

Тут возникает вопрос - для чего тебе это?
Что ты будешь с этим делать дальше?
От этого может зависеть реализация такого объекта.
31 1851975
Аноны как вкатится в серверный жс ? http, запросы, сокеты и т.п.
Взять какой нить курс по ноде, или нужно теорию отдельно читать где то ?
32 1851986
>>51870
>>51890
Неправильно.
мимо
33 1852022
Аоны, как на ванильном жс правильно реализовать сворачивание окна? То есть я нажимаю на некую клавишу и фрейм коллапсирует (вверх или вниз) в течение секунды (то есть с анимацией)?
34 1852023
>>52022
как хочешь так и делаешь. можешь хоть через ксс и хтмл это сделать через чекбокс
35 1852040
>>51865
arr.sort((a,b)=>a.name < b.name ? -1 : a.name == b.name ? 0 : 1)
36 1852050
>>52040

> a.name < b.name ? -1 : a.name == b.name ? 0 : 1


Чего? Зачем тут двойная тернарщина?
37 1852060
>>52040
a.localeCompare(b)
38 1852073
>>52050
Потому что результата 3, а не два: -1 0 1
>>52060

>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.

39 1852121
>>52023
Так я не через ксс не через жс не ебу как это сделать. Как плавное сворачивание реализовать? Поставить ивентХендлер на target.parentElement.style.display = 'none' я и так могу, это не то
40 1852126
>>51966
С бэка приходит жсон где в одном из полей лежит структура где каждому айдишнику сопоставляется список с данными

На фронте я проитерируюсь по нему через Object.entries(jsonObj.entity). Нужно оформить интерфейс которому будет соответствовать эта структура
2020-11-09 23-09-44.mp46,3 Мб, mp4,
1920x1080, 0:36
41 1852161
42 1852194
>>52161
охуиельный юзер икспириенс. опасити он блять убирает
43 1852196
>>52126
Не еби мозг ни себе, ни людям. Раз ты общаешься с бэком, возьми и прогони спеку (OApi, swagger, whatever) через блядский генератор, у тебя на выходе будут тайпдефинишны всех поддерживаемых ответов, структур и полей.
44 1852203
анон, не знаю туда ли я, но возможно сможете помочь
в общем есть ли возможность как-то скачать видева с сайта этого?
может где-то в коде страницы что-то есть, но ничего не нашел
или это какое-то API и там без смысла пытаться
спасибо

https://johnbryce.zoom.us/rec/play/lwevmpRKpDpJHlXULYeiR4rpCLC-RKfhGWN9nGnJQKUXZTlzZKw3sdDA10V_x4CgQDBX1t3UKTe3WF4F.lIiiTepwFBAFyjBB?continueMode=true&_x_zm_rtaid=8LAktGphREaf-BfVsDJKdg.1604947290916.c94fc08a47d24b67971dcdbe3d1040d6&_x_zm_rhtaid=37
45 1852204
>>52121
Transition: 0.5s; потом делаешь позишн фиксед и позиционируешь за областью видимости. При активации подсовываешь css класс с нормальным позиционированием.
46 1852207
>>52196
Я сам бэк и пишу, на фронте реже появляюсь. В теории могу что угодно там нахерачить, спеки на то что готовится еще нет
47 1852208
>>52203
Куда залить? Там видиво на 800 метров.
БТВ грабится на изи через фиддлер.
2020-11-10 00-11-23.mp43,2 Мб, mp4,
1920x1080, 0:18
48 1852210
>>52194
конча без мозга не пиши ниче пж
49 1852212
Screen Shot 2020-11-09 at 21.25.26.png1,3 Мб, 3566x1978
50 1852214
>>52212
спасибо
ты ведь использовал эту ссылку, но с переделанной кнопкой?
51 1852215
>>52214
Я просто сделал дамп ответа из фиддлера.
52 1852220
>>52215
и как мне провернуть это в следующие разы сможешь подсказать пожалуйста, или что и где искать
53 1852266
>>52194
ну я же пошутил че ты ниче не пишешь мне же скучно придумай еще ченить как ты умеешь
54 1852272
>>52022
Аноны, судя по последней инфе надо будет скрывать часть текста... Видели же небось как длинный абзац с текстом укорачивается до каких-нибудь 70 символов а дальше висит ссылка "Показать больше", при нажатии на нее текст плавно разворачивается (а затем его снова можно будет скрыть). Как такое мутить?
Тут фишки с display='none' и transisiton: 1s не прокатят
55 1852296
>>52126
Вот это правильный ответ: >>51840
Вообще, вот эта идиома:

interface Zalupa<T> {
[id: string]: T;
}

очень широко применяется в TS для подобных случаев, когда надо иметь произвольный маппинг произвольных строк в некую хуйню. Если хуйня разная, то вместо T; надо написать any; и дженерик убрать.
56 1852297
>>52272
Overflow hidden + менять вертикальный размер?

Можно ещё найти то, что надо, в интернетах, и спиздить (идею или компонент).
57 1852300
>>52297

>найти то, что надо, в интернетах


Большинство основано на каких говнолибах жкьюри))

>>52272
Из идей на данный момент: брать текст внутри абзаца через innerHTML, если он длиннее 70 символов, то раздербанить его на 2 части через slice, вторую часть обернуть в <div> с display: none и закинуть на его место кнопку которая при нажатии показывала бы недостающий текст (transition тут поможет кстати для плавности?)
58 1852306
>>52300
Может проще overflow: hidden, transition: 1s, и менять height с помощью classList.toggle? Ну и текст в кнопке менять show more/show less.
59 1852309
>>52306

>и менять height


Высота / число строк - неявные метрики для скрытия текста... Только число символов может быть объективным. даже если подогнать под конкретный размер окна и размер шрифта и скрывать через изменение height, при смене параметров все сломается
60 1852318
>>52215
может пожалуйста кто-то обьяснить как провернуть?
61 1852325
>>52318
да иди спать блять долбоеб заебал
62 1852375
>>52300
Когда вы научитесь текст брать через textContent?
63 1852377
>>52325
не понял, ты быкануть решил, солнышка?
64 1852414
Не думал, что ебля с puppeteer сможет мне дать то удовольствие что получал раньше от игор. Чтобы эту вашу ноду изучить до уровня хобби-проектов, надо сначала жаваскрипт изучить или как? А то я в вашем да запутался уже. Вуе, реакты, вебпаки все эти.
65 1852431
Где обычно обрабатывают логику? В экшене или редюсере? Я так понимаю экшн должен только доставить что то и сообщить об этом редюсеру, а редюсер уже обработать? Смотреть базира он все делает в экшене, че за нах?
66 1852432
>>52306
Анимировать height? Найс идея, конечно.
67 1852434
>>52375
?
Это разве не повлияет на то что я оберну текст в новые теги?
68 1852443
>>1850792 →

> А на go можно только хипстерскую хуиту писать.


Как же забавно встречать людей, которые отстали от развития айти индустрии лет на пять, и при этом пытаются всерьёз вещать громкие утверждения
69 1852446
>>51975
Запили мини-копию инстаграма / твиттера / твитча
70 1852447
>>52414
Надо. Сам пишу парсеры/скраперы на ноде + puppeteer, годная штука, особенно SPA инфу собирать
qna habr.png26 Кб, 1378x418
71 1852482
Сап аноны!
Встал вопрос генерации роутеров в соответствии списка приходящего с бд, так как в списке около 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} ',

ifEuro: true,
cities,
key
})
});
app.use(subdomain(`${town}`, router));
}

В переменной cities лежит объект с тем самым списком.
Где в последующем передаю на страницу список с ключом, для вывода данных на страницу.
Но при обращении допустим "moskva.domian.ru", на страницу рендерется данные только первого ключа. То есть в списке есть ключ "moskva" но цикл остановился сразу после первого интервала.
В чем может быть проблема? Или же я что-то не правильно делаю?

Прикл мои маняфантазии о том как должно было работать
qna habr.png26 Кб, 1378x418
71 1852482
Сап аноны!
Встал вопрос генерации роутеров в соответствии списка приходящего с бд, так как в списке около 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} ',

ifEuro: true,
cities,
key
})
});
app.use(subdomain(`${town}`, router));
}

В переменной cities лежит объект с тем самым списком.
Где в последующем передаю на страницу список с ключом, для вывода данных на страницу.
Но при обращении допустим "moskva.domian.ru", на страницу рендерется данные только первого ключа. То есть в списке есть ключ "moskva" но цикл остановился сразу после первого интервала.
В чем может быть проблема? Или же я что-то не правильно делаю?

Прикл мои маняфантазии о том как должно было работать
72 1852486
>>52482
Ты не можешь динамически менять мидлвари в экспрессе. Пиши один роут и матчи в соответствии со списком городов.
image.png404 Кб, 643x366
73 1852487
>>52486

>и матчи


Что это?
75 1852501
76 1852506
>>51680 (OP)

>Руководство для вката: https://developer.mozilla.org/


жоска
image.png347 Кб, 490x362
77 1852514
>>52490
Спасибо анон!
image.png33 Кб, 785x67
78 1852516
Всё правильно делаею?
79 1852555
щас иду в поликлинику в пять часов, мне дают эти шизофренические направления для последующего анального зондирования, через пол часа я прихожу домой с двумя банками торнадо энерджи айс и пачкой чипсов и кодю направленный поиск пути баще а* десять часов подряд, пять лет об этом мечтал, буду смаковать каждый оператор пробела

ходил спрашивал где ебать помощь короновирусная государственная астматикам, говорят ты ебать два года к нам не ходил, тебе и не положено нихуя, на что я отвечаю так я и не болел два года хули мне к вам ходить. как оказалось все мне положено, просто проебалось по пути где то
80 1852598
>>52555
Как ты дойдёшь если поиск пути ещё не написан?
И нахуя тебе чипсы?
81 1852612
>>52598
у меня заскриптован путь до поликлиники и чипсы часть этого скрипта
82 1852614
Лодаш зашквар юзать?
83 1852630
>>52614
Нинужно, есть же божественный fp-ts
84 1852688
>>51680 (OP)
Как импортировать пакет, установленный через npm в скрипт? Использую rhino, при попытке сделать это через import * from "main.js"; говорит syntax error
85 1852705
>>52614
Конечно!
Чёткие пацаны юзают либы не старше трёх месяцев, остальное - для дедов и западло.
86 1852712
>>52688

>rhino



Не секрет, для чего?
Алсо, беглый гуглинг показывает хуй чего, похоже, что на rhino вообще нет js импортов.
87 1852718
Аноны помогите пожалуйста
Допустим я купил vps с убунту. и хочу там настроить все окржение с нуля. нода, бд, nginx, npm
Где взять подробный туториал по сабжу?
88 1852720
>>52718
в интернете
89 1852724
>>52431
редьюсер должен быть "чистой" функцией, там можно размещать логику, но никаких рандомайзеров, запросов и тд
90 1852725
>>52720
ну там как обычно гайд от васяна, где он клацает по кнопкам в админской панели.
91 1852738
>>52718
На Digital Ocean.
Они продают vps и у них же куча мануалов по установке софта, на все случаи жизни.
92 1852742
Помогите написать функцию чтобы в номере менять латинницу на кириллицу.
Напирмер, чтоб из E146BC178 получилось Е146ВС178(но буквы Е, В, С - кириллицей)

Подходящую регулярку вроде нашел - /^[ABEKMHOPCTYX]\d{3}(?<!000)[ABEKMHOPCTYX]{2}\d{2,3}$/ui

но дальше хз как
93 1852751
>>52742

>АБЕКМНОПЕТУХ

15799797153700.png6 Кб, 415x77
94 1852752
>>52742
Создаешь словарь (map структура) вида ключ-латинская буква, значение-похожая буква на кириллице. Далее в одном цикле пробегаешь по всем циклам и заменяешь все совпадения. Никаких регулярок не нужно.
Пикрил в качестве примера.
95 1852755
>>52752

>по всем символам



Викс.
96 1852765
>>52752
Да, я уже пришел к аналогии, но с применением регулярки(более простой чем выше). Хотя твой варик тоже гуд. Спасибо.
image.png13 Кб, 708x169
97 1852771
98 1852775
>>52688
Очевидно настроить сборщик особым образом. Попробуй инлайнить все импорты на выходе в IIFE.
99 1852785
>>52688

>import from


import
as yoba from
100 1852789
>>52765
Чувак, регулярка перестанет работать при смене формата номера.
И такие вещи, как правило, происходят в самый неподходящий момент.
Или тебе для школы надо?
101 1852796
>>52789
Там формат не поменяется, т.к. это гос номера автомобилей
102 1852814
>>52796

>Славик, а теперь для мотоциклов!

103 1852896
>>52215
анон ответь как мне самому это проворачивать?!
104 1852898
да
105 1852901
>>52724

>запросов


Т.е даже запросов в стейт не должно быть?
106 1852915
>>52901
Зачем делать запросы в стейт, если стейт тебе дали аргументом? Для надежности?
107 1852918
>>52901
я имел в виду асинхронные запросы api, а в редьюсере у тебя и так есть доступ к стейку( это же первый аргумент редьюсера)
108 1852933
Есть большой кусок говнокода на жс(2клок) описывающий страницу с табличкой и интерфейс к ней, хочется сделать реюзабельной и кастомизируемой. Что-то есть почитать про такое, паттерны-хуяттерны мож есть какие? Или на худой конец примеры где норм сделано.
109 1852949
>>52933
Залей куда-нибудь если можешь.
Таблица - это массив объектов(строк) и массив колонок, у колонки есть id, title, dataField/template. Если нужны сортировки/фильтры/пагинации - то можно массив объектов абстрагировать в dataSource которому сама таблицы а может и не сама будет говорить "произшло СОБЫТИЕ_1" и спрашивать у него видимые данные. Можешь его даже реактивным сделать
110 1852960
redux saga
111 1852963
>>52949

> Залей куда-нибудь если можешь.


Рабочий проект, сам бы я такую ебалу в жизни писать не стал.
Просто у меня таблица с подтаблицами, свисталками по клику, интерфейс к ней достаточно сложный. Апи и кастомные компоненты я раскидал по классам, но клея и инициализации на 800 строк уже. Еще сейчас появились требования что интерфейс разных типов юзеров должен сильно отличаться. Плюс части нужно будет переиспользовать в других страницах проекта, с возможно новым поведением. Короче я охуел чет и думаю над еще слоем абстракции, но такого опыта пока не было.
112 1853000
>>52896
Бля, возьми любой инструмент, с которым можно работать а-ля как с МИТМом. Например, скачай классический фидлер, включи проксирование трафика, открой страницу с медиа, найди в логе обращение к этому ресурсу (там есть колонки типа mime type), выбери это вхождение и сохрани тело ответа на диск. В случае с зумом большего не потребуется. Есть и другие ресурсы, где меди поступает чанками по запросу, сейчас не будем в это углубляться, но там достаточно сделать все то же самое, просто потом склеить сохраненные чанки. Шебельме?
113 1853017
>>52933
Выносишь последовательно нахуй из таблицы рендерер ячейки, затем строки, потом тела таблицы и в конце заголовок.
Таблица ничего не должна знать про датасорс-хуёрс, она тупо рендерит то, что ей передали. Сортировку, фильтрацию, пагинацию и вагинацию также выносишь куда-то вовне, скажем, в виджет, а контролы - на соответствующий тулбар. Ну, ежели хочешь мммаксимум кастомизабельности, можешь рендереры кусочков таблицы инжектить в DI, но я хз, надо ли, есть риск выпотрошить все кишки таблицы, не поимев с этого никакого профита.
114 1853027
>>52712
Для написания скриптов на плагин worldedit на сервере в майнкрафте.
>>52775
Анончик... Что это все значит? Сегодня писал на жс первый раз в жизни
>>52785
Так я тоже пробовал. На любую попытку импорта он говорит синаксическая ошибка. Там пакеты импортируются вот так - importPackage(Packages.com.sk89q.worldedit);
https://worldedit.enginehub.org/en/latest/usage/other/craftscripts/ вот здесь подробнее
115 1853035
>>53027

>Что это все значит?


Это значит нужно собрать свой код условным вебпаком в один файл.
116 1853037
>>53027

>Для написания скриптов на плагин worldedit на сервере в майнкрафте.


Скриптовать джаву на джаваскрипте?
Месье знает толк в извращениях.

Для этого есть Groovy.
117 1853041
>>53000
Шебельме
118 1853044
>>53035
У него Rhino, какой, в пизду, вебпак.
Не говоря уже о том, что ему и джаваскрипт-то не нужен, под его задачу.
119 1853046
>>53044

>У него Rhino, какой, в пизду, вебпак.


Он хочет ES6 синтаксис и свистоперделки пока пишет код. Можно и просто бабелем сконпелировать.
Но так-то не нужен, да, если будет писать на ES5 пхахахахахаха
120 1853052
>>53037
>>53044
Ой, бля, я посмотрел по ссылке, а они там и правда только джаваскрипт прикрутили, тупые пидорасы.
Куда катится мир?

>>53046
>>53027
Таки да, видимо, надо писать на ES5, и не ебать мозги.
121 1853055
>>53027
Ну там своя система модулей, может es6 импорты оставить
122 1853089
>>53035
>>53037
>>53052
>>53055
Я вас понял, придётся склеивать все зависимости в один файл
1605036822753.jpeg40 Кб, 480x480
123 1853090
>>52901

> Запросы в стейт

124 1853094
>>52918

>в редьюсере у тебя и так есть доступ к стейку( это же первый аргумент редьюсера)



если юзал combineReducers тогда в редусере будет только кусок стейта
125 1853141
>>52915
>>53090
Наверное речь идёт про getState, это можно вызвать только в экшене. А редьюсер имеет доступ только к своему куску стейта
126 1853152
>>53094
>>53141
Ну тип если надо в другой кусок стейта писать - то просто делаешь в другом редусере, делов то.
Если одна часть стейта зависит от другой, то надо задуматься, нужно ли их разделять на разные части скорее всего нет
Если нужно - то в тред пишут фантомные советы даже раньше чем вы спросили: >>52960
Ascii web Gayme 127 1853280
>>51680 (OP)
Посоветуйте годный гайд по ascii рогаликом на чистом canvas js без всяких сторонних либ.
ЗЫ: нигде такого не нашел, а самому
додуматся тяжело
128 1853300
>>53280
А по какому аспекту тебе гайд-то нужен? Берешь стейт, берешь гейм луп, каждый кадр рисуешь стейт на канвасе. Плюс вешаешь на клавиатуру функции для управления стейтом. Все, игра готова.
129 1853333
У меня есть массив [id1, ... ,id20]
Как мне в реакте отправить 20 запросов к апи и все результаты вывести на одной странице?
Пробовал через фор ич->эсинк эвэит, но мне почему-то такое выдает:
Can not use keyword 'await' outside an async function
130 1853343
>>53333
Promise.all
131 1853380
>>53037

>Скриптовать джаву на джаваскрипте?



а в чем проблема, есть Nashorn
132 1853413
Где обычно делают запросы к апи и получают данные? В самом action или создают отдельный апи сервис и от туда дергают экшеном?
133 1853498
>>53413

Денчик хранит молчание, он написал тудушку и каунтер, а дальше вы сами
134 1853514
>>53413
В мидлварях, которые реагируют на экшены.
135 1853564
Есть массив вида:
const res = [
{
additionDate: "11/10/2020 16:04:52",
licenceNumber: "123"
},
{
additionDate: "11/10/2020 16:09:58",
licenceNumber: "321"
},

{
additionDate: "11/10/2020 21:13:25",
licenceNumber: "333"
},
{
additionDate: "11/11/2020 13:50:22",
licenceNumber: "123"
},
{
additionDate: "11/10/2020 16:15:06",
licenceNumber: "123"
},
]

как отфильтровать массив так, чтобы убрать повторяющиеся элементы с licenceNumber, и при этом оставить самый новый?
Написал функцию которая просто формирует новый массив без дубликатов с licenceNumber, но не могу допереть как при этом еще в результате оставлять тот, что с самой новой датой.

const unique = res.filter((v,i,a) => a.findIndex(t => (t.licenceNumber === v.licenceNumber )) === i )
135 1853564
Есть массив вида:
const res = [
{
additionDate: "11/10/2020 16:04:52",
licenceNumber: "123"
},
{
additionDate: "11/10/2020 16:09:58",
licenceNumber: "321"
},

{
additionDate: "11/10/2020 21:13:25",
licenceNumber: "333"
},
{
additionDate: "11/11/2020 13:50:22",
licenceNumber: "123"
},
{
additionDate: "11/10/2020 16:15:06",
licenceNumber: "123"
},
]

как отфильтровать массив так, чтобы убрать повторяющиеся элементы с licenceNumber, и при этом оставить самый новый?
Написал функцию которая просто формирует новый массив без дубликатов с licenceNumber, но не могу допереть как при этом еще в результате оставлять тот, что с самой новой датой.

const unique = res.filter((v,i,a) => a.findIndex(t => (t.licenceNumber === v.licenceNumber )) === i )
136 1853568
>>53564

обычно в задачах где убирают чтото повторяющееся юзают set
137 1853571
>>53568
А как это с привязкой к дате-то сделать, чтоб он оставлял именно самый последний? 2 ночи не спал, голова уже не соображает.
138 1853572
>>53564
Создаешь словарь вида {licenceNumber:additionDate}
Проходишь по массиву, проверяешь есть ли в словаре ключ с licenceNumber, если нет, то добавляешь текущий в словарь, если есть, то сравниваешь additionDate и либо оставляешь значение ключа без изменений, либо заменяешь на более новый.
Далее из получившегося словаря делаешь массив вида [{licenceNumber:additionDate}];

Либо можно отсортировать массив по additionDate, после чего создать Set и пробежать по массиву, добавляя те элементы licenceNumber которых нет в Set.
139 1853586
>>51680 (OP)
Почему при объявлении класса выдаёт синтаксическую ошибку?
140 1853589
>>53572

>Либо можно отсортировать массив по additionDate, после чего



const unique = res.sort((a, b) => new Date(b.additionDate) - new Date(a.additionDate))
.filter((v,i,a) => a.findIndex(t => (t.licenceNumber === v.licenceNumber )) === i );

Грязновато, но похуй. Работает хули.
141 1853609
>>53589

>.filter((v,i,a) => a.findIndex(t => (t.licenceNumber === v.licenceNumber )) === i );



Убери это. У тебя сложность O(n2) с этой хуйней, если делать через reduce и Set, то будет O(nlogn) из-за сортировки. Если делать через словарь, то сложность будет O(n)
142 1853619
>>53609

>если делать через reduce и Set, то будет O(nlogn)


Нихуя не понял. Покажи как это выглядит.
143 1853624
>>53619
let lNumbers = new Set();
res.reduce((acc,e)=>(lNumbers.has(e.licenceNumber) ? acc : (acc.push(e),lNumbers.add(e.licenceNumber),acc)),[])

где res это отсортированный массив.
image.png10 Кб, 486x304
144 1853634
>>53624
Ну заебись, около процента выиграл. Только это еще без преобразования сета в итоговый массив
145 1853647
>>53634

>преобразования сета в итоговый массив



Преобразовывать ничего не надо, сет используется в качестве хранилища для номеров лицензий, которые уже добавлены в результирующий массив.
29.jpg138 Кб, 1909x489
146 1853663
>>53634
Без сортировки разница ощутима.
147 1853728
Почему жабаскрипт такой странный? Хочу при нажатии на элемент добавлять к нему класс, но какого-то хрена он добавляется на пол секунды и исчезает, после чего по второму клику он уже не добавится. При этом через консоль в DevTools и за рамками функции-эвентлистенера всё нормально работает, ЧЗХ?
148 1853740
Дайте пиздатыц сайт по работе с массивом обьектов, разворот зпмена части выборки нихуя не пойму
149 1853746
>>53728
А при чём здесь язык? Это у тебя руки из жопы, но ты винишь во всём других.
150 1853762
>>53413
thunk / saga
151 1853782
>>53413
В больших приложениях апи выносится в отдельный сервис всегда, тем более в жирнущем самом по себе реакторедаксовом паттерне
152 1853784
Вопрос по браузерному жабаскрипу.
Нужно найти на странице все элементы, у которых background-image -- не важно, прописанный в ксс или в аттрибуте style -- содержит определённую подстроку. Есть какой-то простой метод, о котором я не знаю, или надо самому костылять перебор всех элементов внутри document с вызовом getComputedStyle для каждого?
153 1853792
>>53498
Мыщи плакали, кололись, но продолжали жрать кактус.
154 1853854
Пытаюсь зафетчить правильно ли делаю асинхронный запрос?

https://pastebin.com/1z05N0vM
155 1853936
почему так мало новичков и почему они все поголовно тупые?
156 1853937
>>53936

>почему они все поголовно тупые


Потому что способные новички трудоустроены и заняты делом, не думал об этом?
157 1853945
>>53937
Нет, ты чо 2020 же рассвет двощей!
colorBars.png9 Кб, 29x198
158 1853983
На фронт приходят объекты вида:
{
score: number,
msg: string
}

Надо засунуть msg в подготовленное поле и нарисовать слева от него цветной столбик как на пике, в зависимости от score (то есть если score 100 то зеленым, если 12 то красным и т.д.)

Реализация - ванильный жс. Но походу большая часть херни именно с css связана, ведь так? Как эти ебучие цветные столбики нарисовать как на пикриле?
159 1853984
>>53983
linear-gradient
160 1854000
>>53983
border-right
161 1854001
>>53983
::before, ::after, да хоть отдельным дивом же.
162 1854014
>>53782
по моему он не про это спросил
163 1854015
>>53413
Бро купи курс Буры на трекере и перестань задавать подобные вопросы.
164 1854018
>>53854
все нормально, только все что связанно с методами fetch и строками url лучше держать в отдельном сервисе(классе) и инжектиь объект его через специальный сервис провайдер
165 1854153
>>53983
ты разобрался в итоге ? я просто тоже решил поковыряться, интересно как сделал
166 1854178
Запилил на вашем реакте и редаксе интернет магазин, все сделал дошел до корзины а туда прилетают числа в десятичной системе, ебал нахуй че делать? Туфиксед нихуя не работает
167 1854181
>>54178
bigjs или считай все в центах.
168 1854184
>>54181
+ count.туфиксед(2) решил, нахуя такие изьебы?
169 1854185
>>54184
toFixed не используют в финансовых вычислениях.
170 1854188
>>54184
Чтобы потом ловить ошибки сложения флоатов? Найс план.
171 1854190
>>54188
>>54185
А че делать?
172 1854194
173 1854209
>>54185
Js не используют в финансовых вычислениях
174 1854211
>>54209

> пук

175 1854253
>>54153
border-left: 5px solid
Цвет потом сам жс назначит

Однако... Градиентная заливка как на пикриле не получается, с linear-gradient . Тут походу надо свою картинку подгружать но вот как заставить ее идти исключительно по тексту?..
176 1854260
пишу скрипт на питоне с помощью селениума, браузер от селениума прячу в xvfb. Проблема в том, что скрипт через время крашится с ошибкой. На ощупь нашел проблему, дело в том, что на странице идет вечная анимация, пока страница не станет активной. Есть идеи как это обойти?
177 1854323
>>54260
...а может, просто взять Puppeteer, м?
178 1854344
>>54253
Все делается с градиентом, просто нужно взять два цвета, разных оттенков.
linear-gradient(to top, якрий цвет 1-100%, бледный 1%), меняешь только яркий в зависимости от счета.
179 1854486
>>54253
Див, а внутри него два дива разной высоты и разного цвета.
Работать будет везде и везде одинаково.
Я так делал ещё лет ... назад, правда, горизонтальные и очень узкие, но это не важно.
180 1854515
>>53300
Хм, ок.
181 1854598
>>51680 (OP)
Читал соседний тред, там джун фронтендер не может с сентября работу найти, думает, что из-за вышки. Реально ли так все так хуево и без корочки (пиздежа про корочку) не чекают резюме?
Я сам 24 годика, без вышки. Работаю руби-бэкендером, но мне повезло, устроился по блату через знакомство, однако чувствую себя не в своей тарелке (работаю с родственниками, да и зарплата не такая высокая, права качать тоже неудобно), думаю перекотиться во фронт, поработать пару лет, а там я уже буду жоних фуллстак с опытом. Что скажете, реально все так плохо? Сидеть на жопе ровно?
182 1854606
>>54598
В России вышка мало на что влияет, можно изи найти высокооплачиваемую работу без нее. Нужна в специфических местах типа госкомпаний или Яндекса (любят дрочить алгоритмами и матаном с которыми у вкатывальщиков туговато обычно). Но если собрался перекатывать со временем, то советую начать получать, значительно проще с визами и в вакансиях CS Bachelor/MS часто мелькает. Успеешь получить до 30 и будет потом хорошим бонусом. Неплохая программа, например: https://www.coursera.org/degrees/bachelor-of-science-computer-science-london Я вот слегка жалею, что раньше не начал.

35 лвл студент
183 1854643
>>54598
Главное не увольняйся со старой пока новую не найдешь.
184 1854649
>>54643
Мне бы вообще с нее хоть как-то уволиться, пчел. Я со всей семьей переругаюсь нахуй, кек.
>>54606

>coursera


Бляяяяяя...
185 1854690
>>54649

>пчел


Иди-ка ты на хуй, сынок.
186 1854707
>>54649

>Мне бы вообще с нее хоть как-то уволиться, пчел. Я со всей семьей переругаюсь нахуй, кек.


Кумовство в ойти? Это что еще за хуйня?
187 1854709
>>54598

>не может с сентября работу найти


я надеюсь иметься виду с сентября 2019, потому-что в ином случает придётся послать его нахуй
188 1854712
>>54598
Нахуй вышка на фронте? Вообще не влияет.
189 1854757
>>51694

>ТИПИЗАЦИЯ НЕ НУЖНА


>что такое типизированные массивы в js?


>пук-среньк


>мы вам перезвоним

sage 190 1854759
>>52022
Через transition и opacity попробуй. Дисплей нан не трогай, иначе не будет плавности.
191 1854766
>>54757
Охуеть, конечно, типизация, просто пиздец.
192 1854768
>>54766
Перезвоним.
193 1854773
>>54768
Что сказать то хотел?
Screenshot3.png603 Кб, 794x562
194 1854776
>>54773
Млодой человек. Вам же сказали, что вы не прошли интервью. Мы вам перезвоним, до свидания.
Ну хорошо-хорошо. Дадим вам ещё один шанс.

Что такое функциональное программирование и какие особенности JS позволяют говорить о нем как о функциональном языке программирования?
195 1854777
>>54776
Ну, эээ. Давайте мыслить логически, мы же программисты ))
Человеку нужно выполнить какую-то задачу, т. е. набор функций, на JS можно описать этот набор функций. Значит JS функциональный язык программирования :)
196 1854783
>>54776

>Что такое функциональное программирование и какие особенности JS позволяют говорить о нем как о функциональном языке программирования?


Самому знать пора. Мы вам перезвоним.
Screenshot3.png444 Кб, 794x562
197 1854784
>>54777
Видим, что вы разбираетесь в своей области и мы подобрали вам вакансии согласно вашим знаниям и опыту.

1. Дворник. 15к
2. чистильщик говен. 30к. (без премий 15к)
198 1854789
>>54757

>что такое типизированные массивы в js?


В js нет типизированных массивов.
Мы вам перезвоним.
199 1854792
>>54776
Функционально программирование без типизации - деньги на ветер.

Кто сказал LISP? Идите на хуй!
200 1854794
>>54792
Пошёл в жэпу

мимоэликсирщик
232514007-1604609187321.jpg10 Кб, 225x225
201 1854796
>>51680 (OP)
СОБЕСЕДУЕШЬСЯ НА СЕНЬОРА
@
В ЧЁМ РАЗНИЦА МЕЖДУ "==" И "==="
202 1854810
>>54794
Erlange your penis.
19cl2x.jpg13 Кб, 353x352
203 1854829
Как передать в функцию ID элемента (v-select), который был изменён?

https://codepen.io/stdenits/pen/poyNYxY
205 1854838
>>54837
В примере - три селекта. Всего их 15-ть.

Не очень подходит. Стандартными средствами нельзя что ли?
206 1854847
Подкиньте норм вид тудушки что бы нормально смотрелась
207 1854860
Праильно ли я понимаю что вместо thunk и конструкции типа let xyi =>()=>() можно заюзать конструкцию async await и диспатчить await ?
209 1854875
>>54847
TodoMVC
210 1854876
>>54796
Какие бы ты хотел слышать вопросы на собеседовании на позицию сеньора?
211 1854879
>>54876
Расскажите про наследование через прототипы.
212 1854881
>>54796
Так они не знают нихуя, что смешного.
213 1854883
>>54796
На последнем собесе меня спрашивали про многопоточность в жс, передачу объектов между жс потоками, общую память, примитивы синхронизации.

мимо сениор
214 1854900
>>54883

>На последнем собесе меня спрашивали про многопоточность в жс


Воркеры-хуёркеры, sab'ы, вот это всё?
215 1854914
Идти на html-верстальщика как на первую работу норм опыт для вкатуна? Никаких реактов, только жквери.
216 1854920
В ангуляре при помощи роутинга написал для компонента адрес, условный "/mainpage"
Однако когда совершается переход по этому адресу GET-запрос на сервер с параметром /mainpage не совершается... (на серваке даже лог не срабатывает), почему так? Ангуляр разве не должен автоматически слать get-запросы, когда переходит по url-ам?
217 1854923
>>54883

>многопоточность


очередь це не многопоточность
218 1854932
>>54920
Потому что это SPA. Запросы должны совершаться не при переходе на страницу компонента, а при загрузке каких-либо данных этим компонентом, каких именно данных указываешь уже сам, если нужно загружать что-то во время перехода по роуту компонента, то обычно используют метод компонента ngOnInit
219 1854935
>>54932
Ну у меня поначалу просто совершается get-запрос, на котором проверяется роль юзера, затем в ngOnInit я вызываю другой url и подгружаю основные данные оттуда
Думал первый запрос сам должен пройти, я ж по url перешел
220 1854962
>>54876
Да уж не про основы яп.
221 1854963
>>51680 (OP)
Возможно ли сделать отображение стрелок (увеличения и уменьшения значения) на <input type='number> на тачскрине?
Я имею в виду стандартный компонент (без плясок с бубном и отображением своих собственных кнопок поверх)
222 1854964
>>54962
Чекнул, что у нас на фронте по грейду "сеньор" идет - всякие докеры, кубернетисы, архитектурные паттерны (MVVM,MVI и др), мультипоточность, libuv/libevent, SSR...
Я честно хз, нахуя что-то по докеру особого знать, кроме как уметь подправить конфиг и запустить контейнер.
Безымянный.png17 Кб, 480x292
223 1854965
Пацаны как кабанчиком залететь на проект?
224 1854966
>>54965
Никогда не говорить, что у тебя опыт на коммерче меньше 1 года хотя бы.
225 1854967
>>54965
Напиши им что ты ТОЛКОВЫЙ.
Снимок экрана 2020-11-12 в 20.41.51.png855 Кб, 1060x595
226 1854969
Сап, динамические. Возник вопрос, насколько адекватно использовать везде анонимные функции плана const jopa = () => { puk() }? this не использую, но все равно выглядит странно.
227 1854971
>>54966
А еще можно всем говорить, что твой хуй никак не меньше 16 см хотя бы
228 1854972
>>54967
Ммм, господин из МВП тредов пожаловал... Милости просим, проходите, раздевайтесь, уважаемый.
229 1854973
>>54969
использую их всегда
230 1854974
>>54971
Можно и Машку за ляшку троллейбус из буханки сделать, но зачем?
231 1854984
>>54969
Если сможешь объяснить в чём разница между разными видами объявлений функций, то ок. А так "мы вам перезвоним".
232 1854993
Сап, двачек. У меня есть проектик, в нём генерится output bundle.min.js файл.

Дальше он грузится в head.pug вьюхе. И там он грузится как
script(src="/static/js/bin/bundle.min.js")

Я хочу сделать так, чтоб в имени файла был contenthash. Как передать в pug вьюху этот контентхэш?

app.set('view engine', 'pug');
app.set('views', './www/views');

Паг запускется вот так, не минимизируется.

Можно ли как-то через app.set передать переменную в pug файл? Можно ли как-то взять из webpack.config.js? Как короче лучше сделать. Переписывать сильно не хочу.
233 1854998
>>54984
И в чём же разница между:
() => {}
и
function () {}
?
234 1854999
>>54998
Мы вам перезвоним.
235 1855019
Как правильно описать промисами следующую ситуацию:

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');
)};

Но смотрится как-то не очень
236 1855026
>>55019
Заверни требуху в функции, ошибку пробрось через эксепшен.
237 1855031
>>55019
TaskEither
238 1855050
>>55019
Можно переписать на async/await, тогда елочка исчезнет. Но радикально тут ничего не улучшить.
239 1855051
>>55019
Если await не нужен то зачем ты пишешь .then а не сразу кладешь результат в переменную? Async/await это просто удобный синтаксис работы с промисами для того что бы избавиться от колбеков.
240 1855071
>>54998
Во первых так удобнее, во вторых пойдешь нахуй со своим this-ом
241 1855090
>>54829
Бамп.
242 1855105
>>55090
@change="changeFanCfg('15', $event)"

changeFanCfg: function(val, id) {
console.log("id: ", id);
console.log("val: ", val);
}
243 1855106
>>54993
Хуй тебя поймёшь.
В шаблон на express можно передать переменную или через res.render или через res.locals
244 1855161
Немогу понять нахуй всякие конекты и мачдиспачтупропс и мачстейттупропс если есть хуки?
245 1855195
>>55019
var bResp =
await service.makeRequestA() ? await service.makeRequestB() : null;
return bResp === null ? console.log('FAIL') : processResponseB(bResp);

246 1855218
>>55195

>смотрится как-то не очень

247 1855250
>>55161
А разве хуки масштабируется на большие проекты?
248 1855251
>>55250

>А разве функции масштабируется на большие проекты?

249 1855259
>>55251
Хуюнции. Покажите мне большой проект на хуках, с обильным использованием сети и прочих апи.
250 1855271
>>55259
Болезный, как связаны какие-то абстрактные хуки и

> обильным использованием сети и прочих апи


?
Хуки просто функциональный способ описать действия в определенных состояниях жизненного цикла. Если ты в компонентах описываешь логику с сайдэффектами, ты по определению сосешь. В остальном твои консерны не ясны.
251 1855272
>>55161

>если есть хуки?



хуки только недавно появились, а реактоговно лет 5 писалось
252 1855294
>>55271
Нормальные люди хранят весь стейт кроме мелочей в редуксе, сеть и апи вынесены в саги, которые теребят стейт и автоматом перерисовывается интерфейс. Как на хуках предлагаешь это делать? Они годятся для разработки компонентов, а уровень повыше все равно придется по-старинке делать.
253 1855327
>>54598
Нет, это скорее связанно с тем, что после курсов от всякой академии и им подобных контор на рынке просто куча джунов, а компаниям нужны мидлы, которых можно сразу за работу посадить.
Довольно много компаний морозится, когда узнаёт, что у тебя 0 коммерческого опыта.
сам с зимы ищу
254 1855331
>>55327

>а компаниям нужны мидлы


Так пусть мидлов сразу ищут. Нахуй тогда писать в вакансии junior frontend developer, если вам миддл нужен?
16052392034720.jpg78 Кб, 753x648
255 1855340
256 1855357
>>55019
Чувак, ты не понимаешь сути промисов, и хуяришь какие-то колбеки из них.

Тебе из then() надо возвращать service.makeRequestB(), а всё остальное делать в следующем then() в той же цепочке. Никаких лесенок, ты что, охуел?

типа taskA.then(r -> if (a) return taskB eles return completedPromise(null)).then(b -> ...).then(c -> ...)
Если промис нихуя не вернул, то дальнейшая цепочка не вызывается.
Это монадический паттерн, чтобы ты знал.
Плюс - можно выкинуть exception и обработать в конце цепочки.
257 1855362
>>55218
Лучше чем лапша из then
258 1855370
>>55362
Мы вам перезвоним.

Хотя, если функциональную цепочку ты называешь словом "лапша", то мы даже обещать перезвонить не будем, а просто попросим уйти.
259 1855376
>>55370
Для тех, кто не вдупляет - добавлю:
Промис (future) - это значение.
Замороженное действие.

Цепочку можно разорвать в любом месте, передать куда-то и там продолжить.
Профит от таких вещей далеко не всем очевиден, и для недалёких придумали async|await, чтобы у них мозг не перегревался.
260 1855378
>>55161
useSelector не содержит в себе оптимизаций, с ним лишнего ререндеринга много
261 1855384
Рейт.
[code lang="js"]
const processA = res => res.result
? Promise.resolve()
: (() => {throw new Error("Fail!")})();

const fetchMore = () => service.makeRequestB();
const processB = res => processResponseB(res);
const onError = e => console.log(e.message);

service.makeRequestA()
.then(processA)
.then(fetchMore)
.then(processB)
.catch(onError);
[/code]
262 1855388
>>55327

>сам с зимы ищу


Блядь, как можно что-то искать больше года? Ты весь этот год чем занимался? Мог уже 10 проектов своих написать и спойно напиздеть, что фрилансил, или просто сказать, что у тебя дохуя опенсоурсного опыта и т.п. Мог найти таких же вктатывальщиков и пилить командный проект попутно обучаясь, и т.п. Или ты написал одну сранную тудушку и сидишь ждешь когда же тебя на работу с ней пригласят?
263 1855391
>>55384
Ну да, как то так.
В коде для обучения можно добавить setTimeout(...) и резольвить по истечении таймаута - для натуральности.
Короткие операции можно просто инлайнить в then().

Попробуй ещё вместо throw new Error() просто делать reject() - это более правильно, режект для этого и придуман.
264 1855392
>>55388
Хуячил тестовые, делал минипроект с другими людьми, который в итоге никуда не вылился.
Пиздеть на собесе не хочу, т.к. мне это потом в ногу выстрелит.
265 1855412
>>55370
>>55376

>этот вскукарек макаки со стороны параши



Хоть на работу устроился, ценитель мамкин? И мозг перегревается не у тех кто пользуется удобными конструкциями, а у тех кто не хочет отходить от старых и придумывает себе оправдания.
266 1855424
>>55370

>мы(вам(перезвоним))))))))))


Поправил тебя
267 1855429
ts > js
268 1855433
>>55412
Бугуртом неосилятора удовлетворён.
269 1855462
>>55429
da eto tak
270 1855465
>>55392
Так не надо пиздеть, тебе отвечали, что в итоге им не нравилось или что? Как так получилось, что ты год не можешь найти работу?
271 1855475
>>55106
А как передать во все руты какие есть? Звэздочка?
272 1855490
Есть ли такое понятие как React Junior/React middle/React senior? Или поздразумевается, что если ты "знание react", то вот прямо целиком должен уметь от начала и до конца написать любое приложение, со всеми паттернами, и оптимизацией, любого масштаба и сложности? Есть ли такое, что какой-нибудь сеньер набрасывает общую архитектуру, а там уже кто во что горазд кодит компоненты? Я конечно учу всё целиком, но все же интересно.
273 1855496
>>55490
пиздец
274 1855500
>>55496
Ну я часто вижу в вакансиях типа основы Js/css/html
Будет плюсом Знание React
Вот и интересно, что это за знание-то такое?
275 1855506
>>55490
кодинг явно не твоё если ты даже сранный реакт освоить не можешь, пиздец я хуею с этих вкатунов
276 1855507
>>55500
в вакансиях на хх подавляющее большинство это специалисты 1-3 года. это мидл
277 1855520
>>55496
А что пиздец, ты о чем?
278 1855521
>>55490
Если "знание react" то это react джуниор.
Далее градация зависит от `опыт рабы с реактом от ${опытОт} до ${опытДо} лет`
279 1855522
Посоны, а как сделать глубокую копию объекта в жс? Я чёт обосрался на этом моменте. Тут же явно есть гуру, подскажите.
280 1855523
>>55520
вопрос говорю топовый
281 1855524

>тем временем выше по треду требуется помощь промис-архитектора

282 1855525
>>55522
Обходишь рекурсивно все свойства и из них создаешь копии в новом объекте.
283 1855531
>>55522
JSON.parse(JSON.stringify(value))
284 1855536
>>55327

>компаниям нужны мидлы, которых можно сразу за работу посадить.


Компаниям нужны сразу сеньеры с з\п жуниора, а лучше и без нее. Только вот рынок по губам компаниям проводит. Мидлы и сеньеры они на то и мидлы и сеньеры, что у них уже есть работа. Им не нужно ее искать. А искать нужно вкатывальщикам (что даже еще джун). Так что два варианта для компаний - жди, пока освободится мидлосеньер и заманивай зп или набирай вкатов и обучай.
285 1855541
>>55522
Тебе не надо этого делать, инфа 92%. Скорее всего это очень плохое и костыльное решение твоей задачи.
286 1855568
Посоветуйте курс по голому хардкорному JS, чтобы вот паттерны, алгоритмы, вот это всё и без использования библиотек и фреймворков.
29.jpg34 Кб, 514x312
287 1855572
>>55522
Ничего сложного нет, это основы. Такое у джунов обычно спрашивают.
>>55541
Иногда надо, для этого есть библиотеки типа лодаша и специальные методы.
288 1855590
>>55572

>Иногда надо


Приведи кейс
289 1855592
>>55531
>>55572
new Date() has joined the chat
290 1855593
>>55572

>Ничего сложного нет, это основы.


Так у тебя stack-unsafe реализация.
анон 291 1855597
Посоветуйте, плиз, обучалку чтобы не просто рассказывали про всякие переменные/функции/методы, но еще и научили как делать базовые интерфейсные штуки, вроде выпадающих меню, слайдеров и прочего.
292 1855598
>>55465
Ну, условно из 20 моих откликов 10 не смотрели, 7 оставляли без ответа, 2 кидали своё тестовое и одни кое-как звали на собес.
293 1855599
>>55597
Смотришь как у других сделано и воруешь. Тот же бутстрап поковыряй.
294 1855605
>>55593
У лодаша тоже stack-unsafe, пока никто не жаловался.
295 1855606
>>55597
Никто не делает самостоятельно выпадающие меню, слайдеры и прочее, этим занимаются создатели библиотек. Задача фронтендеров это расположить эти готовые элементы на странице, иногда подправить что-то в них, сделать страницу адаптивной и т. п.
296 1855608
>>55606
Бля, мне видимо не свезло с продактам/дизайнером. Все сука кастомное хотят блядь!
297 1855618
Всем спасибо, попробую завтра решить руководствуясь вашими советами. Добра вам. К слову, вкатился в 32 без вышки. Кто до этого беспокоился - это вполне реально. Шизиков игнорируйте.
298 1855650
>>55475
Да.
299 1855682
>>55618

>вкатился в 32


>заставляют пилить велосипеды в виде слайдеров и выпадающих меню


Еще и платят наверео как дворнику-таджику. Нет, сычуш, ты не вуатился в айти, ты вкатился на дно русского наебизнеса в качестве лошадки.
300 1855695
Как учиться программировать-то? Все книги что не нахожу, это скорее справочники и примеры работы различных методов, операторов и всего такого. Нужно курсы проходить, где пилят что-то большое, и потом уже применять практики показанные там?
301 1855700
>>55695
Если пройдя курс learnjavascript.info ты ничему не научился, то программирование это не твое.
302 1855713
>>55700

>пройдя курс learnjavascript.info


>Стоимость обучения 19000 руб, время обучения: 1.5 месяца.


Инфоциган плиз
Так я про курсы и спрашивал, не понял к чему ты это вообще высрал. Или ты имел ввиду ту общедоступную инфу на сайте? Ну так это справочник по сути есть.
303 1855716
>>55713
Общедоступную и имел. Если тебе этого недостаточно, то программирование это не твоё. Можешь злиться, но чем быстрее ты это признаешь, тем меньше времени потратишь на бесполезное для тебя занятие.
DsrESxWsAIodiI[1].jpg190 Кб, 1080x1080
304 1855732
>>55695
Никак. Программистами только рождаются.
305 1855811
Юзают ли mapStateToProps и mapDispatchToProps в связке с функциональными компонентами?
306 1855817
>>55811
Да. Почему нет? Тем более с connect нет лишних ререндеров, которые если при использовании useSelector
307 1855820
>>55817
А если прикрутить useMemo?
image.png58 Кб, 217x297
308 1855833
Вопрос тем кто пишет ботов для телеги на node.js. Как сделать выскакивающее сообщение для подтверждения действия по типу alert ? Знаю что это возможно, использую библиотеку node-telegram-bot-api
309 1855839
>>55606
Библиотечные параша же. Даже гугл не может нормальные компоненты написать. Алсо кастомизация стилей боль.

синьор-помидор с 3 запиленными ui-китами
310 1855847
>>55817
Какие там лишние ререндеры?
311 1855850
>>55820
useMemo прикручивать не надо, в этом нет смысла. Чтобы компонент вел себя аналогично обернутому в connect используется React.memo.
312 1855860
>>55850
А как же истерия вокруг тестов?
313 1855862
>>55860
Што? Причем тут тесты?
314 1855889
>>55839
И не надоедает каждый раз на новой работе новый ui-кит писать?
315 1855905
>>55889
Не, мне нравится, это даже чем-то вроде специализации стало. Сейчас вот хантят с релокацией писать четвертый лол.

Везде же требования разные и дизайн разный. Что могу переиспользую, конечно. Например на последней работе нужен был календарь с поддержкой часовых поясов и таймслотов. А на предыдущей у всех компонентов должна была быть автоматическая отправка аналитики и возможность задавать дополнительные наборы пропсов для разных разрешений. Костылять такие вещи на основе какого-нибудь material или antd заебно, поэтому пишут свое.
316 1855909
Какой самый годный юи фреймворк для ангуляра чтобы ничего не делать а уже красиво?
317 1855915
>>55839
Ты либо искать не умеешь, либо любитель писать велосипеды. Скорее всего второе.
Даже если что-то не устраивает в готовом, то легче изменить его и подстроить под свои нужды, чем писать всё с нуля.
318 1855918
>>55833
Alert не подтверждает действие, он просто блокирует экран и показывает оповещение, название так и переводится. На твоём скрине тоже нет подтверждения, просто кнопа для закрытия модального окна.
319 1855919
>>55909
Ant.design
320 1855922
>>55919
Учел, спасибо.
321 1855936
Если юзать контейнеры которые рендерят дамп компоненты то по сути рендер будет происходить два раза? Рендер контейнера и дампа? Нахуй нужно?
322 1855947
>>55915
Да-да, у всех компаний со своими дизайн-системами разработчики просто слишком глупые и не догадались взять antd или material. Не пробовал пойти в Яндекс или Альфу поработать? Сэкономишь им кучу денег своими идеями.
323 1855951
>>55936
О, а если писать все в App.js то рендер вообще один раз будет
324 1855957
>>55716

>Общедоступную и имел


чел... это не кодинг
325 1855977
>>55716

>это не твоё


Как же вы заебали, это какой-то мем местный? Так вообще на любой вопрос в любой сфере отвечать можно. То, что мне было нужно, называется паттерны проектирования, спасибо короче, сам нашел нахуй
326 1855991
Че за нахуй? Если при клике элемент мигает то значит он рендерится, а если не мигает то что? Кликаю по нему он не мигает хотя значение в этом поле меняется, профайл ведь выделяет те элементы которые рендарятся?
327 1855997
Посоны, начал в этом во всем разбираться, вот пример отсюда:
https://puzzleweb.ru/javascript/examples/document_queryselector.php

<p class="test1">Абзац2.</p>
function foo() {
var matches = document.querySelector(".test1");
matches.style.backgroundColor = "yellow";
}


Не очень понимаю чему равно matches, это ведь не только текст из test1 или и форматирование еще? Потому как alert (test1); выводит "undefined".
Ну и основной вопрос как через alert вывести текстовое значение этого test1 а именно "Абзац2."
328 1855999
>>55947

>Яндекс или Альфу


Хороший пример того, что собственные разработки на порядок хуже готовых решений.
329 1856001
>>55997

>чему равно matches


Значению которое возвращает метод querySelector объекта document.
330 1856002
>>55991
Влепи console.log в рендер просто
331 1856003
>>55977

>Так вообще на любой вопрос в любой сфере отвечать можно



Не на любой. Если ты в балет собрался идти в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты собрался идти в бизнес имея 20к рублей на банковском счёте, то тебе скажут, что это не твоё и будут правы. Если ты собрался стать чемпионом мира по шахматам в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты инвалид без ног, то тебе скажут, что бег это не твоё и будут правы.

Не понимаю почему тебя это так удивляет.
332 1856004
>>56001

>Значению которое возвращает метод querySelector объекта document.


И что это за значение в данном случае? Понятно что он это возвращает, я не понимаю взаимодействия с хтмлем. Он ведь возвращает не просто текстовую строку "Абзац2." а что-то еще.
И как этот "Абзац2" вывести через алерт, должно быть что-то вроде алерт (матчес.валуе), блядь короче не знаю тупость какая-то пока не вник в основы синтаксиса, в хэлпах тоже дичь.
333 1856007
>>56003

>Не на любой. Если ты в балет собрался идти в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты собрался идти в бизнес имея 20к рублей на банковском счёте, то тебе скажут, что это не твоё и будут правы. Если ты собрался стать чемпионом мира по шахматам в 20 лет, то тебе скажут, что это не твоё и будут правы. Если ты инвалид без ног, то тебе скажут, что бег это не твоё и будут правы.



ОО так у нас тут able body privilege, таких на западе быстро с небес спускают и в специальных легерях толерантности переучивают, безногие вполне могут стать чемпионами среди своих же безногих
334 1856015
Короче вот что я наверное искал:
alert(document.querySelector(".test1").innerHTML);
335 1856016
>>56003

>Если ты собрался создать частную космическую компанию тебе скажут, что это не твоё и будут правы.


>Если ты собрался стать богатейшим человеком в мире работая в магазине одежды кассиром в 34, тебе скажут, что это не твоё и будут правы


Ну ясн
336 1856018
>>56004

>И что это за значение в данном случае?


Открываешь документацию, смотришь на возвращаемый тип. В случае c querySelector это HTMLElement. Далее смотришь что это за HTMLElement и какие свойства у него есть. Если тебе нужен текст этого HTMLElement то ищешь какое свойство вернёт тебе текст который содержится в этом HTMLElement, если такое вообще есть.
Ты просто с жопы учить начал. Основ не знаешь, но уже полез использовать методы каких-то стандартных объектов, поэтому всё для тебя выглядит как какая-то магия.
337 1856019
>>56003
Бля, чел, вопрос был о паттернах проектирования, всё. Хули ты порвался? Пиздец я хуею с этого самомнения
338 1856021
>>56007

>безногие вполне могут стать чемпионами среди своих же безногих



Ну да, только это не бег будет. И существовать это может только благодаря спонсорству людей с ногами, при этом не во всех странах и не для всех безногих, но людям вроде тебя свойственно верить в розовый манямирок, потому что иначе они впадают в депрессию от несправедливости мира.
Родился человек умственно отсталым - никак из него ты ученого не сделаешь. Насколько нужно быть тупым чтобы это отрицать?
339 1856025
>>56016

>Если ты собрался создать частную космическую компанию



Но при этом твой отец не владелец богатой компании, которая помогла воспитать из тебя успешного человека, то тебе скажут, что это не твоё и будут правы.

Про кассира ничего не знаю. Скорее всего какая-то очередная охуительная история успеха для хомячков вроде тебя.
340 1856027
>>56015
Поздравляю, ты выучил новое магическое заклинание.
341 1856033
>>56025
Ты с кем вообще разговариваешь сейчас? Ты это кому объясняешь?
342 1856034
>>56033

>хомячку рассказали правду и он начал выпадать из реальности



Проиграл.
343 1856037
>>56002
У меня нет такого, только return
344 1856045
>>56034
Какую нахуй правду блядь? Ты сам выдумал себе какое-то утверждение, сам его опроверг и теперь пытаешься указать на неправоту изначального утверждения, который ты сам и высказал. Ты сам с собой споришь шиз
345 1856047
>>55997
html и css не хочешь сначала выучить?
346 1856052
>>55999
Так пойди, и объясни им это.
Скажи им, что ты с двача, эксперт - они обязательно прислушаются.

Я совершенно уверен, что твои критерии "лучше/хуже" бесспорны, и им станет так стыдно, что они даже дадут тебе денег за консультацию.
347 1856053
>>55606
Я делаю.
И другие делают.

Джаваскрипт + html = параша.
Тут понятие "уже есть готовое" неприменимо в 90% случаев.
Если ты не школьник, конечно.
348 1856056
>>56052

>ряя ани зарабатывают миллионы паетаму ты им должин сапог цилавать и мочу их глатать яскозал!!



Проиграл с этого человека с моделью рабсиянина с ног до головы. Если хочется более детального разбора, то есть куча статей на хабре, по крайней мере по яндексу, которые говорят почему их проекты дерьмо в плане дизайна и ux. Но это и на собственном опыте можно узнать, достаточно не жить с установкой "богатый - значит не подвержен критике".
349 1856058
>>55695
Чувак, чтобы научиться программировать, нужно примерно 10 лет.
Это не шутка. Это тебе скажет любой, кто умеет.

В том числе, по этой причине, например, в JS столько говна.
Потому, что дети пишут код. И результаты - соответствующие.
350 1856059
>>56053

>Тут понятие "уже есть готовое" неприменимо в 90% случаев.


>Если ты не школьник, конечно.


>любая статья, любая книга, любое учебное пособие учат не пилить велосипед и использовать готовое решени



И давно это школьники начали так хорошо в веб-программировании разбираться и учить других?
351 1856061
>>56056

>куча статей на хабре


Сынок, тебе ужинать пора, а ты всё за своим компьютером сидишь.
232600069-16046703507050.jpg13 Кб, 231x218
352 1856064
>>55997
Примеры у тебя говно конечно.
Начни с изучения
https://learn.javascript.ru/
Как всё выучишь и если не поймёшь - тогда приходи или выкатывайся из прогерства, лел.
353 1856069
>>56061
Ну всё, готовь плеть для самобичевания, ведь твой любимый Яндекс и Альфа банк ведут блоги на хабре и регулярно публикуют на нём статьи.
354 1856079
>>55997

>var matches



Вот, отличный пример того, как русская школота пишет учебники.
У него объект возвращается, а имя переменной, блядь, "matches".

А потом на каком-нибудь хабре учит людей жить, умудрённый опытом автор учебников по JS, лол.
232509369-1462417420096.jpg45 Кб, 604x604
355 1856083
>>56079

>У него объект возвращается, а имя переменной, блядь, "matches".


А как нужно было назвать? objectMatches?
356 1856086
>>56069
С чего ты взял про "любимый" Яндекс etc?
Я, всего-лишь, написал, что js+html+css = сильносвязанная параша, которую в 90% случаев проще написать заново, чем переделывать под себя.
Гораздо продуктивнее использовать либы типа popper и т.п., а собственно реализацию меню делать свою. Речь идёт о больших проектах, естественно.
357 1856095
>>56083
Нужно было назвать elt или element.
Не говоря уже о том, что слова match, matches имеют стойкую ассоциацию с regex (или boolean).
358 1856097
>>56083
Любой программист увидя matches или match ожидает от правой части использование регулярного выражения. В данном случае следовало бы объявить переменную targetElement
359 1856098
>>56003
Токсик защищает своей право быть душным мудилой, спешите видеть. Такие как ты, одна из главных проблем IT, если не человечества в целом, без шуток.
RTR37NJ1-pic4zoom-1000x1000-81457.jpg244 Кб, 1000x667
360 1856100
>>56003

>Если ты инвалид без ног, то тебе скажут, что бег это не твоё и будут правы.

361 1856101
>>56056
Какой-то рандом написал на Хабр статью про плохой UX Яндекса и ты из этого делаешь вывод что собственные ui-киты не нужны? Найс логика, конечно.
362 1856103
>>56100

>без ног


>на пике человек без половиеы ног


Ясно.
363 1856105
>>56097
>>56095
Согласен. Я в принципе постоянно объявляю как elem или node в подобных ситуациях.
364 1856107
>>56101
Я делаю эти выводы из собственного опыта. И говорить "собственные киты нужны, потому что у яндекса нет" в корне неверно, хотя бы потому что яндекс, в отличии от 90% разработчиков, может позыолить себе содержать отдельный отдел, который эти киты создает.
365 1856109
>>53333>>53343 на связи
Почему реакт меня душит?
Может как-то иначе можно сделать?
366 1856112
>>56109
Ну, ты пытаешься отрендерить промис. Как ты вообще это представляешь?
367 1856116
>>56112
Да я уже гадаю на кофейной гуще. Который день за этим сижу.
368 1856117
>>56109
Блядь, такого я ещё не видел.
369 1856118
>>56116
Так ты не гадай, а попытайся разобраться как что работает. Если не получается, значит сложновата еще задача для тебя.
370 1856121
>>56109
Убегай быстрее, сейчас придет местный ЭтоНеТвоё-шник и пояснит тебе за твой жизненный выбор.
371 1856124
>>56109
Не нужно мешать всё в одну кучу.
Асинхронные вещи (промисы, async|await) должны у тебя делаться где-то отдельно. Потом, после завершения, должен измениться стейт. А реакт его просто отрендерит.

Для более конкретных советов недостаточно подробностей.
По какому событию что происходит и т.д.
372 1856128
>>56121
Если ты лезешь в неведомые дебри и делаешь хуйню наобум вместо того, чтобы изучить доку по нужному направлению - это действительно не твое.
373 1856132
>>56128
Его или не его - человек решает сам.
Попытайся это понять.

Программирование - достаточно сложное дело, чтобы быть пугающим само по себе.
Дополнительные хуеплёты-пугальщики не нужны.
374 1856140
>>56128
Чому? Это же прекрасный способ учиться чему-то.
375 1856145
>>56132
Тебя это пугает потому что твоя мамка и твоя бабка внушили тебе, что в этом мире нужно всего бояться, от всего убегать, а не принимать реальность с трезвой головой, взвешивая все за и против.
376 1856148
>>55918
мне надо чтоб подтверждало
377 1856149
>>56148
Это должно называться confirm, а не alert.
378 1856152
>>56145
Меня это уже не пугает.
Я привык, за 30 с хуем лет, лол.
379 1856153
>>56149
я понял но мне нужен именно вариант для телеги там такие подтверждения можно прописать тоже
380 1856155
>>56153
Никогда не имел дела с этим.
Но, беглый гуглинг "node-telegram-bot-api user confirmation" находит вот это, например:
https://github.com/yagop/node-telegram-bot-api/issues/663
381 1856156
>>56155
спасибо посмотрю изучу
382 1856157
>>56156
Там, насколько я понял, основная проблема (в отличие от браузера), в том, что ответ приходит "с той стороны", асинхронно. И нельзя просто вывесить confirm-диалог, и ждать ответа пользователя.
383 1856158
>>56157
аа ну хуево тогда, ну спасибо может и получится че
384 1856163
>>55695
очередной вкатыш-окатыш ищет волшебную таблеточку
385 1856165
Эй, реактобоги, какой хороший паттерн вы знаете для выскакивающих модальных окон в приложении?
14467609196760.webm1,1 Мб, webm,
720x480, 0:05
386 1856167
>>56165

>реакт


>модальных окон

387 1856170
>>56165
А в чем конкретно проблема возникает? Такой же компонент как и любой другой. Ну, монтировать иногда удобнее ближе к корню, это через порталы легко решается.
388 1856177
>>56170
Создать компонент обертку modal на самом верху и передавать туда конкретные диалоговые сценарии(компоненты) в качестве children через state.
как тебе такой паттерн?
389 1856202
>>56177

>в качестве children через state


Што? Как ты хочешь прокидывать детей наверх, да еще и через стейт? Звучит бред какой-то. Должно быть так:

const [isModalVisible, setIsModalVisible] = useState(false);

<Modal isVisible={isModalVisible} onRequestClose={() => setIsModalVisible(false)}>
{/modal content/}
</Modal>
390 1856204
>>56202

>onRequestClose={() => setIsModalVisible(false)}


Перформанс брейкер.
391 1856206
>>56167
В реакте еще никогда прежде так остро не стояла проблема модальных окон.
392 1856208
>>56204
Ой плиз. Пока Modal не обернут в React.memo абсолютно никакой разницы нет.
393 1856209
>>56204
Да и хуй с ним, modal content тоже будеть новый на каждом рендере
394 1856252
Бля начал читать про useDispatch какого хуя dispatch юзают в useCallback и суют этот хуев диспач в зависимости если каждый раз создается новый диспач?
image.png113 Кб, 225x300
395 1856359
>>56058

>Чувак, чтобы научиться программировать, нужно примерно 10 минут.

396 1856361
>>56202

>Што? Как ты хочешь прокидывать детей наверх, да еще и через стейт?


на vue через слоты можно даже аллаха передать
397 1856364
>>56361
Это делает написанное меньшей бессмыслицей? Почему ты вообще решил поделиться этим фактом?
398 1856436
Если я где-то вижу var, значит это код тысячелетней давности и другого варианта быть не может?
399 1856443
>>56436
Сам как думаешь?
400 1856445
>>56436
Если основная тема JS, то да, если в рамках другого языка, например, книга для фуллстека с упором на бэкенд, то не всегда.
401 1856458
>>56443
>>56445

Очень часто вижу var в каких-нибудь статьях 2017+ года. Особенно охуеваю, когда это делается наряду с использованием let и const
402 1856461
>>56458
Копипасты смотришь. Я чёт ни разу свежих статей не видел с var. Встречаю только в устаревшей документации.
403 1856518
Помнится сидел в каком-то чате в телеге, где мелькали всякие двачеры с аниме-аватарками. Там ещё был тип с ником сенатор.
Дайте линк пожалуйста, ну или на что-то аналогичное.
404 1856538
>>55847
А вот такие

https://react-redux.js.org/api/hooks

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.
405 1856542
>>56204
Почему?
406 1856550
Редаксодебилы всё плодятся...
407 1856560
>>56538
Ну и в чем разница? С connect у тебя будут те же самые ререндеры, если селектор каждый раз возвращает новый объект и ты передаешь его как поле. Это вопрос не к хукам, а к тому что селекторы надо писать нормально.
408 1856562
>>56560
В коннекте shallow compare делается
409 1856572
>>56562
Ну ебановрот, connect один и ты вынужден пихать туда все селекторы и возвращать объект, а useSelector может быть сколько угодно. Алсо там может возвращаться любое значение и никакого смысла в shallow compare нет.
410 1856612
Ебал я в рот вашу мемоизацию, чуть проебался и сраный хедер обновляется когда не должен, вью+редакс такая же помойка?
411 1856619
>>56612
Мемоизация должна только оптимизировать производительность. Если она у тебя на логику влияет, значит ты что-то не так делаешь.
412 1856626
>>56619
Если в хедере или нав панели торчит счетчик сообщений, а эти элементы ререндарятся даже если не было новых сообщений и в этих элементах нет других завязок на стейт, какого хуя происходит?
413 1856631
>>56626
Понятия не имею. Или стейт поменялся или родитель отрендерился.
414 1856637
>>51680 (OP)
Подскажите, пожалуйста, хорошую смузийную в Киеве.

Вот чтобы так можно было прийти и посидеть с MBP попивая смузи.
415 1856642
>>56631

> родитель отрендерился.


> render App

416 1856656
>>56436
Есть вариант что это сгенеренный код.
417 1856660
>>56642
Пиздуй в отладчик смотреть что изменялось, в 99% это колбэк пересоздающийся на каждом рендере.
418 1856683
>>56626
Осло, сикретики реакта:

>nesting children defeats memoization


https://gist.github.com/slikts/e224b924612d53c1b61f359cfb962c06
419 1856692
>>56683
В чем секретик-то? По-моему это и так очевидно, если подумать над вопросом хотя бы минуту.
420 1856697
>>56692

>очевидно, если подумать


сикретики дивелопмента
421 1856702
Людям дали божественный ангуляр, а они долбоебы ковыряют реакт с его костылями.
422 1856714
>>56702
Он вообще где-то за пределами тухлого жабамирка используется еще?
423 1856715
>>56714
Используется там гле команда разработчиков не состоит из ддунов-студентов и недельных вкатунов.
424 1856735
>>56702
Если реакт с костылями, то ангуляр на инвалидной коляске.
425 1856737
>>55695
HtDP прочитай.
426 1856742
>>56702
Согласен. На данный момент лучший инструмент, для построения сложных приложений.
427 1856744
>>56735

> пук


Ох и дилетант же ты. Ангуляр в разы удобнее. И больше фич имеет.
428 1856750
Я правильно понимаю, что для того, чтобы задеплоить spa нужно создать мини сервер на экспрессе, чтобы он отдавал main.js из dist папки?
429 1856752
Анон, есть обьект с двумерным массивом и методами для движению по этому массиву. Почему ниробит при добавлении интервала к методу goRight()? Хочу что бы элемент сам шел с интервалом на право, вместо того, что бы я клацал руками.

https://pastebin.com/HDiv9AXa
430 1856753
>>56702
Вот только реакт проще в изучении, а это очень серьезны аргумент в сторону порешания рыночком
431 1856754
>>56735
Потому что тебе обидно? Ведь других оснований для твоего высера нет, потому что у ангуляра есть всё из коробки и даже у новичков не возникает вопросов вида "пук среньк как передать стейт родителю"
432 1856756
>>56753
Все так. Зато зп на ангуляре выше.
433 1856757
>>56753
В итоге рыночек получает плохообучаемую макаку, которая деплоит в прод через месяц то, что на ангуляре делается за неделю. Про уровень поддерживаемости и говорить нечего, реакт нервно курит в сторонке.
434 1856765
>>56750
Да. На запрос "/" шлешь index.html и сервис папку диста, как статику, чтобы в индекс подтягивался твой жабаскрипт.

На том же хероку еще и cowboy по умолчанию будет стоять перед твоей нодой . То есть по-сути даже nginx настраивать не надо.
435 1856782
>>56744
Коляска по сравнению с костылями

>в разы удобнее. И больше фич имеет.

436 1856791
>>56752
Отбой, вызвал интервал с нужной функцией внутри за пределами обьекта.
437 1856810
>>56756
>>56757
Ну опять же никто не мешает вкатиться на реакте и рерольнуться в ангуляр при желании. Я просто не представляю сколькой всякой хуетристики нужно будет выучить джуну чтобы сразу пилить что-то вменяемое на ангуляре с тайпскриптом
438 1856827
У кого-нибудь есть торрент-файл или ссылка на скачивание книги Head First "Изучаем программирование на HTML5" Эрик Фримен, Элизабет Робсон?
Везде торренты с файлами, где в книге "н" перепутано с "п".
439 1856845
>>56827
doc219584455_514300407
440 1856867
>>51680 (OP)
Посоветуйте где онлайн учиться ЖС лучше?
442 1856893
>>56877
Жирно. Это все равно что изучать математику читая телефонный справочник
443 1856894
>>56827
Нахуй тебе это древнее говно да еще и настолько уёбски написанное? Найди лучше курс какой-нибудь на udemy и купи бесплатно на торрентах
444 1856895
Есть опытные leafletчики в треде?
15983933727220.gif434 Кб, 360x270
445 1856896
446 1856907
как обезопасить веб сокет соединение между клиентами?
447 1856908
>>56867
Советую пройти какой-нибудь более-менее законченный курс, а потом уже практиковаться делая свои небольшие проекты, решая задачки на codewars и т.п

Просто так вне контекста учить функции, методы и прочее будет довольно трудно. Это все по мере необходимости можно нагуглить, а более общее понимание того, как и почему именно так пишется код, приходит после прохождения урока по чему-то более-менее законченному. Ищи на всяких udemy, coursera и т.п. Ну а где купить со 100% скидкой сам знаешь. Алсо, если английский не идеальный, ищи курсы на русском, это нормально, хорошие курсы на русском тоже есть.
14461005161550.jpg11 Кб, 237x229
448 1856912
Может кто-нибудь набросать пример для vue-tify в кодепене: как создать матрицу из v-select (5 строк по 3 столбца) через v-for?
449 1856916
>>56912
Может ты сам и набросаешь?
450 1856918
>>56912
Зачем тебе вью?
451 1856925
>>56912
Юзай вместо селекта v-list с <v-row><v-col> с соответствующей математикой четности.
452 1856958
Аноны вложенный стейт в реакте нужно обновлять как то по особенному ? у меня стейт хранит два объекта state = { player: {}, enemy: {name: 'mob', hp: 100} }, когда я через сетСтейт обновляю hp у enemy, он не обновляет стейт, а тупо перезаписывает на enemy: {hp: 101} теряя остальные ключи.
453 1856959
Что происходит когда ты объявляешь переменную вообще без какого-либо var/let/const?

В частности внутри функции или класса, если это на что-то вообще влияет.

типа:

_apiBase = "https://google.com"

при том что все остальное использует дальше const и т.п. Почему не const _apiBase?
454 1856961
>>56912
Могу на ангуляре набросать.
455 1856963
>>56959
Единственное что нашел, это то, что таким образом внутри функций можно объявлять глобальные переменные, но дальше по коду к этому значению ссылаются через this, это ведь значит, что эта переменная не доступна глобально?
456 1856966
>>56959

>Что происходит когда ты объявляешь переменную вообще без какого-либо var/let/const?


>по коду к этому значению ссылаются через this, это ведь значит, что эта переменная не доступна глобально?



this может быть глобальным объектом, window в браузере, поэтому к объявленной глобальной переменной можно обращаться через this при условии что this ссылается на глобальный объект
457 1856970
Какая топ библиотека для имутабельности?
458 1856975
>>56966
Ну в том случае ссылаются на строку указанную в теле класса, вот такая апишка в общем https://codeshare.io/50kvov по уроку делал, тут в самом верху
459 1856977
>>56970
Immer
460 1856983
>>56714
В "тухлом жабомирке" он используется чисто по инерции.
Потому, что типа похож на "энтерпрайз" - сервисы, dependency-injection etc. Всё такое тяжёлое и основательное, как мы, джаваёбы, любим.
Конские библиотеки, тонны аннотаций, сотни страниц руководств, вот это вот всё.

И очень многие покупаются на знакомые буквы, лол.
Яша Файн аж два издания книжки выпустил про Angular + TS, типа "вам, джаваёбы!".

И там с первых строчек такой, блядь, пиздецкий тулинг, что просто нахуй закрываешь эту книжку - страшно. И это подаётся как selling point - типа смотрите, всё, как мы любим - как мавены, спринги, простыни конфигов, вся хуйня.

Но, тут на арене появляется Vue (а теперь и Vue 3).
И становится понятно, что вся эта монструозная хуета - просто шелуха и мимикрия под "как у взрослых", сделанная не от великого ума. И что на самом деле - она и на хуй не нужна, вот совершенно. Создатели Vue, как-бы, говорят нам - вот, смотрите - вот так выглядит Ангуляр здорового человека.

А так-то в жабамирке и GWT используется достаточно активно.
Более того, сам Гугол для сложных проектов использует как раз таки GWT, а Ангуляр, почему-то, не хочет. Возможно, они и купили его, в своё время, чтобы просто придавить. Если так, то у них получилось.
14914738079580.jpg43 Кб, 600x502
461 1856988
>>56916
Вот так сделал.

https://codepen.io/stdenits/pen/pobGMbw

Теперь мне надо хотя бы подписать v-select'ы, если это вобще возможно.
Должно выглядеть так, как массив меток fansLabels, т.е. по порядке слева-направо.

Для них можно сделать собственный итератор?

>>56916
Братан, я могу. Только у меня не получается сделать так, как мне надо.

>>56918
Уже поздно что-либо менять.

>>56925
Не мой уровень.
462 1857000
>>56988
А чего бы тебе не сделать свой компонент на базе v-select, раз уж ты так хочешь vuetify?
Это же как 2 пальца обоссать. И пиши там, что хочешь.
463 1857002
>>56988
А, я думал тебе нужен один селект с выпадающим многоколоночным списком.
464 1857005
>>56988

>:label="fansLabels[(k-1)×3 + j-1]"


Модель бы нормальную сделал, а не список строк, лол
465 1857012
Поясните за общий принцип, если у меня для доступа к беку есть уникальный приватный ключ, его же нигде внутри страницы нельзя использовать? Типа есть база данных, доступ к json которых предоставляется только если к запросу добавить ключ, типа:

http://website.com/item/50?key=secretkey123
данные приходят

а просто по
http://website.com/item/50
данные не приходят

Вот этот вот ключ нельзя же нигде указывать при написании кода, его нужно как-то зашифровать или что? Я просто еще такого доступа к беку не делал, куда гуглить?

Или такие ключи можно показывать публично? Сам ключ я получил заполнив заявку у поставщиков базы данных, они просто дают тебе доступ к своей системе, в которой хранятся данные по музыкантам, исполнителям и т.п. Т.е. ничего секретного там нет, но я так понимаю с этим ключём можно израсходновать мой лимит по запросам, если кто-то себе его заберет?
466 1857014
>>57012
Ах ну да, и в догонку, если я исходники потом публично буду выкладывать, мне же в любом случае сам этот ключ никуда в код зашить нельзя будет? Где его хранить-то?
467 1857016
>>57005

>Модель бы нормальную сделал


Сделал, как смог.
Что за модель?
468 1857017
>>56975
А, я забыл, что в JS кто-то под классами может подразумевать реальные классы, а не объекты.
В данном случае это просто публичное поле объекта. Тоже самое что
const x = function() {this._apiBase = "www.google.com"};
и потом
let instanceOfX = new x();
instanceOfX._apiBase // "www.google.com"

Можешь в эту хуйню не вникать, классами в JS никто не пользуется. Если кому-то нужны классы, то используют Typescript.
469 1857020
>>56983

>жабадаун не осилил ООП, написал немного говнокода и теперь у него фобия



Сочувствую.
470 1857023
>>57020

>написал немного говнокода



Ну вот зачем ты так?
Я написал много говнокода, лол.
471 1857026
>>57012
Подобные ключи хранятся на сервере. На фронте идёт запрос к твоему сайту, а уже на сервере идёт запрос к http://website.com/item/50?key=secretkey123
Можно конечно через твой сервер тоже самое получать, но так ты хотя бы сможешь контролировать это, а если будешь хранить в коде ключ, то его смогут использовать без твоего ведома.
472 1857027
>>57023
Суть в "не осилил ООП".
473 1857029
>>56975
Там как-то многовато бойлерплейта.
Можно же так (для примера):
return {id: this._extractId(starship), ...starship};
И т.п.

Не говоря уже о том, что непонятно, почему в самом объекте нет id, и его нужно экстрактить из url. Пару байтов сэкономили?
Выглядит как код ради кода.
474 1857030
>>57027
Ну, тебе виднее, конечно.
475 1857031
>>56827

>Изучаем программирование на HTML5


https://t.me/progbook

Тут есть много книг. Такой как ты написал, вроде нет, но полно других по той же теме
476 1857034
>>56983

>Всё такое тяжёлое и основательное, как мы, джаваёбы, любим.


>Конские библиотеки, тонны аннотаций



На выходе в прод, ангуляровские приложения имеют размер не больше реактовских. С вуем предполагаю что та же история.

Так что твой пост, просто замыливание глаз.
477 1857035
>>57016
Объект в data, в котором расписано то, что ты хочешь.
И который будет отрендерён по шаблону. И перерендерён при изменениях, если надо.

Такое ощущение, что ты немножко недопонял не то что суть Vue, но и вообще суть всех подобных mvvm|mvvc|mvxxxxxxx фреймворков, и пытаешься ломиться в открытую дверь.
sage 478 1857039
>>56845
Это книга "Изучаем html и css".
А мне нужна "Изучаем html5".
479 1857041
>>57034
Речь была не о "выходе в прод". А о процессе разработки, и о том, с какими абстракциями имеет дело разработчик.
Тащить java-подходы в лёгкую и динамичную js-среду - это не от большого ума. Это называется overdesign. "Написали длинно, потому, что коротко написать не было времени" (или не хватило таланта).

Но, я никого ни за что не агитирую, просто высказал своё мнение.
Нравится Ангуляр и есть возможность писать на нём - пиши, ни на кого не оглядываясь.
14651044875900.jpg82 Кб, 1440x810
480 1857043
>>57035
Чувак, чувак пока ты ещё здесь... Спасибо за помощь.

Подскажи ещё как передать уникальный ID для каждого из 15-ти v-select'ов?

Раньше использовал и получал индекс изменённого селекта:
<v-select
v-for="(el, index) in fansLabels"
:key="index"
//
@change="changeFanCfg($event, index)"

></v-select>



А сейчас как-нибудь можно выкрутиться?
481 1857045
>>57029
Ну они меняют названия свойств с снейк кейса на камел кейс. Но всё равно можно было всё в одной функции для всех делать:
_transform(target) => {
return {
id:this._extractId(target),
...Object.getOwnPropertyNames(target).reduce((res,p)=>(res[this.toCamelCase(p)]=target[p], res);
}
}
482 1857049
>>57026
Понял, спасибо.

>>57029
Айди из url получаешь только потому, что в swapi нет id у объектов, он в уроке говорил что это довольно хуево, но показал как в данном случае это можно обойти. С беком в уроке не работали, базу эту использовали просто для примера.
483 1857053
>>57041
Какие, блять, абстракции, поехавший? В Ангуляре всё разложено по полочкам - вот тебе компонент в виде ts, вот тебе его шаблон в виде html, вот тебе его стили в виде css, вот тебе модуль который будет объединять компоненты. Если есть что-то глобальное, то пожалуйста, регестрируй как сервис и внедряй в конструктор компонентов в которых этот сервис будет использоваться, получая чистый код в котором не насрано. В компоненте описываешь логику получения данных и сами данные, в шаблоне с этими данными работаешь.
Где ты там абстракции увидел?
484 1857056
>>57043
Id (html id) или key (для vue)?

И, я же не знаю, как у тебя там "сейчас".
Если нигде нет индекса, почему-то, то можно просто сделать computed-свойство со счётчиком, наверное, но, это надо пробовать.

Но, по идее, у тебя же заранее известно количество этих селектов и их содержимое, в том числе, и какой должен быть id?
Создай для каждого объект-модель типа {id: 1, name: 'Name 1', items: [...]}, и помести их все в массив. И в цикле v-for отрендери. Свойства объекта - в :атрибуты (properties) компонента. Вот и будет у тебя id или key для каждого.
485 1857063
Че будет если в action creator передать Object.freeze(json) на этапе получения ответа?
image.png116 Кб, 256x256
486 1857067
487 1857083
>>57056
И да, v-for не обязательно делать именно для селекта.
Можешь в див его обернуть, и v-for писать в диве.
Или див, а в нём три селекта, у тебя же так?

Я бы, наверное, вообще сделал свои компоненты, без v-select - работы чуть больше, но, полный контроль. Но, и див поверх v-select - это уже первый шаг к своему компоненту-обёртке.
IMG0464.jpeg126 Кб, 747x818
488 1857099
Че за нах?
489 1857102
>>57017

>Можешь в эту хуйню не вникать, классами в JS никто не пользуется.


А зачем тогда во многих джаваскриптовых вакансиях требуют знание ООП?
490 1857186
image.png213 Кб, 581x440
491 1857187
492 1857188
>>57039
Эта книга, является вторым изданием той книги, которую ты ищешь.
493 1857215
>>57041

>лёгкую и динамичную js-среду


ну ты и соня, тебя даже вчерашний шторм не разбудил, привет тебе из 2000х от вара жкверского
494 1857224
>>57099
пример простой, неси про ))))))))))))
78432454544634.jpg32 Кб, 624x468
495 1857360
>>57056

>Id (html id) или key (для vue)?


А чем являлся index в v-for? Это же просто счётчик.

>И, я же не знаю, как у тебя там "сейчас".


Хочу сделать как в наброске из кодепена.
https://codepen.io/stdenits/pen/pobGMbw

Я хотел бы передать уникальный номер посредством аргумента в @change="changeFanCfg($event)"
Думал подстановка, типа @change="changeFanCfg('${k}', $event)" проканает, но передаётся просто фиксированный текст.

>Но, по идее, у тебя же заранее известно количество этих селектов и их содержимое, в том числе, и какой должен быть id?


Да, надо 15-ть селектов. С v-row \ v-col решил заморочиться из-за того, что так они просто в одну колонну идут вертикальную, а как раскидать по 3х5 и уменьшить размер я не знаю, не разобрался ещё.

>Или див, а в нём три селекта, у тебя же так?


Нет, не так.
496 1857377
>>57360

>@change="changeFanCfg($event, (k-1)*3 + j-1)"


Лул.
Screenshot2.png3 Кб, 174x160
497 1857384
>>57099
Уметь надо потому что.
498 1857387
>>57384
Васек, нужно было сделать наоборот
499 1857388
>>57387
Что сделать?
500 1857434
>>57388
На оборот
501 1857455
>>57434
нао борот
502 1857485
>>56782
Короче, я понимаю
Ты прогрессивно дрочишь на трапов
503 1857505
>>57099
1. Object.freeze осуществляет поверхностную заморозку.
2. a:b[0].a = 30
Кого ты пытаешься наебать? Гитлера, Иисуса или интерпретатор?
504 1857506
>>57455
на обо рот
505 1857509
>>57505

>a:b[0].a = 30


Хочешь сказать что нужно делать так a:30?
И вообще нахуй ебаться с мутабельностью если среакт один хуй отрендерит заново тк стейт поменяется? А он поменяется тк мы туда посадим новый массив со старыми оьектами и одним новым
sage 506 1857510
>>57188
Нет, в "Программируем на HTML и CSS" ничего нет про JavaScript. Я читал.
В "Программируем на HTML5" про даваскрипт есть.
507 1857520
Блэт, заебошил форму в Ангуляре по типу этого:

<form [formGroup]="form" ngIf="loaded && itemCount > 0" >

(то есть я хочу чтобы таблица показывалась уже после того как будет установлен this.loaded=true и количество айтемов, подгруженное с бэка, будет больше 0)

Только эта падла умудряется подгружаться через раз. Когда загружаешь страницу есть шанс 50% что форма не будет отображаться, при этом в консоли ошибок нет
508 1857526
>>57520
detectChanges/markForCheck
509 1857529
>>57102
ЧТобы меньше плотить, потому что никто не знает
510 1857530
>>57014
На бэке ессесна
511 1857544
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
ПЕРЕКАТ >>1857542 (OP)
512 1860366
mobx
Тред утонул или удален.
Это копия, сохраненная 13 апреля 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски