Этого треда уже нет.
Это копия, сохраненная 5 августа 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
16313000548100.png56 Кб, 1050x1050
JS Thread #244 /js/ 2297966 В конец треда | Веб
Предыдущий тред: >>2290355 (OP)

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

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

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

Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
2 2297974
>>2297676 →
>>2297816 →
Бамп вопроса.
3 2298004
>>297974
Боже, какие красивые скрины, это я так понял в макоси делается, но как без всего лишнего и с такой тенью приятной?
4 2298011
>>298004
Расширение Polacode для VSCode.
5 2298020
Объясните, чому некоторые в конфигах пишут path.resolve(__dirname, './dist'), если можно функция resolve() и так добавит абсолютный путь до директории? Так: path.resolve('./dist'). Более того, зачем вообще эту функцию вызывать, зачем относительную ссылку превращать в абсолютную? Можно же просто строкой './dist' передать, и все работает. Объясните, я ничего не понимаю.
6 2298021
>>298020
если можно функция resolve() и так
7 2298031
>>298020
Я проебался, в конфигах вебпака нужен абсолютный путь. Но первый вопрос все еще в силе, зачем нужен этот __dirname
8 2298042
А в реакте ивентлисенеры надо удалять если были созданы вне useEffect?
9 2298043
>>298042
Надо удалять, если они не нужны, как бы они не были созданы
10 2298044
>>298043
Dzięki
11 2298094
Как с легасипомойной битриксогалеры бежать?
12 2298104
>>298094
Зачем с нее бежать?
13 2298111
>>298094
Откликаться на вакансии и бежать когда возьмут.
14 2298119
>>298031
Чтобы получить путь файла и нормализовать его. Технически join по __dirname то же самое, но с резолвом очевидно, что вернёт абсолютный путь. Если так корёжит от дирнейма, сохрани в отдельном модуле абсолютной путь к корневой папке в переменную и лепи остальные пути джоином с ней.
15 2298122
>>298104
Я хочу, чтобы при работе, я становился лучше в жиесе и фронент разработке - а по факту я становлюсь лучше в битриксе, а в остальном стагнирую. Ещё и на проекте работы по фронту застопорились - я сижу какой-то лажей занимаюсь.
Я готов поверить в крутые современные проекты на битриксе, но мой не такой - он огромный, на нём хорошие рабочие процессы, но вот сама разработка, это боль.

>>298111
Звучит, как план.
16 2298133
>>298122
Ты только это, реакт освой, с битриксом тебе залупой по губам проведут, возьмут на другую битриксогалеру.
17 2298134
>>298122

> но вот сама разработка, это боль.


В том числе из-за меня, кстати. Сейчас то я преисполнился, а год-полгода назад лютый говнокод выдавал и теперь с ним надо работать. Когда я уйду, меня будут проклинать.
18 2298136
>>298133
Я вью освоил. На битрикс больше не хочу.
19 2298140
>>298122

>Я хочу, чтобы при работе, я становился лучше в жиесе и фронент разработке


Ты и так становишься лучше (хотя может у конкретно твоей должности своя специфика). Пхп, битрикс и жекверя вечны, они будут актуальны всегда. А реакты, вуи, ангуляры это скоротечное говно, лет через пять никто не вспомнит про них.
20 2298152
>>298140
Почему ангуляр от гугла скоротечное говно, а биртикс от один ас вечен? Потому что запад все?
21 2298166
>>298152
Потому что это старые проверенные технологии. А битрикс в россиюшке больше актуален. Ангуляр кстати первый кандидат на свалку истории. От него уже сейчас отказываются в пользу реакта. Через несколкьо лет реакт станет никому не нужен, появится очередной новомодный фреймворк. И так по кругу.
Снимок экрана 2022-02-15 в 17.39.54.png115 Кб, 850x765
ПАМАГИТЕ!!! 22 2298168
Почему так может происходить? Я ничего не понимаю...
https://qna.habr.com/q/1116024
23 2298176
>>298166
Гугол перейдет на реакт? Ты фантазер?
24 2298179
>>298140
Вот ты на чём пишешь? Почему не на битриксе/жквери? М?
25 2298200
>>298168
Можете не помогать, все решилось
14412356737741.jpg45 Кб, 460x581
26 2298310
>>2297938 →
бамп

Посоветуйте где учиться нормально проектировать архитектуру для телеграм ботов.
27 2298317
>>298310
Лучше посоветуйте, где почитать нахуя они вообще нужны и где на практике применяются, что нубы так носятся с их изучением.
28 2298334
>>298317
Очевидно же чтобы деньги на лохах стричь биткоиноаферами.
29 2298338
Подключил в реакте через index.html бутстрап и font awesome.По какой причине они могут не работать?Другие стили сработали , а иконки почему то нет
30 2298351
>>298338

>fortawesome

31 2298353
>>298317
Собственно только нубы наверно и не понимают зачем может быть нужен телеграм бот. Это платформа где за тебя уже половина всего реализована и роль фронта выполняет самый популярный в снг мессенджер.

А по теме >>298310 ты просто доку https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md внимательно прочитай и часть вопросов сама отпадет.
32 2298355
>>298353
Ну вот скажи мне несколько самых полезных ботов, которыми ты пользуешься. Очень интересно.
33 2298402
Кто-нибудь шарит за firebase? можно ли с помощью поля reference получить данные из другой коллекции? все ответы которые находил старые и не выходят у меня либо я тупой.
Если будет понятнее, то делаю плеер с возможностью создания плейлистов из общей числа треков, может вообще нахуй этот firebase и с чем то другим работать?
34 2298408
>>297966 (OP)
Я могу как-то в переменную получить ссылку на "нестандартную" канву (например, создаваемую svgtoolkit, fabric.js или canvas2svg от gliffy), чтобы потом передать ее другой либе, и она все рисовала в ней, думая что это обычная канва?

НЕ СЕТКУ ПИКСЕЛЕЙ

Задача: конвертнуть векторизуемые элементы canvas (всякие круги, квадраты, градиенты) в svg не через массив пикселей, а через "парсинг" и "трансляцию" правил рисования канвы в правила рисования svg.

Умеющие такую магию библиотеки требуют, чтобы я рисовал свою канву в объекте их класса (например, var ctx = new C2S(500,500); для http://gliffy.github.io/canvas2svg/), и мне надо как-то изобразить для библиотеки, которая собственно предполагаемую к конвертации канву и рисует (к примеру тот же fabric.js или к примеру не умеющая рендерить svg, только канву https://www.chartjs.org/, или например вот этих парней https://codepen.io/wildminder/pen/wJgbLb), что она рисует на обычной канве, чтобы уже затем успешно конвертировать результат. Если что, исходник canvas2svg
https://cdn.jsdelivr.net/gh/gliffy/canvas2svg@master/canvas2svg.js
На кодепене выше можно поиграться, добавив ее.
image.png30 Кб, 478x410
35 2298412
Анон обоссы не бей, почему это не работает ? Как вообще из этих аяксов получать данные.
Я залетный с бека , просто оч нужно однуштуку написать
36 2298413
>>297966 (OP)
Господа сеньоры, ну поясните уже. Вебпак всё? Перекатываемся на esbuild?
37 2298415
>>298413
Тащемта уже перекатываются на Rome и SWC.
38 2298452
>>298119
path.resolve(__dirname, './dist')
и
path.resolve('./dist')
возвращают одно и то же.
39 2298488
>>298412
Во первых юзай fetch
Во вторых у тебя фигня какая-то вместо урл-а. Это же http запрос, ему нужен путь, куда он будет запрашиваться. А у тебя вместо него 'get_number_of_clicks'
40 2298524
>>298452
https://nodejs.org/api/path.html#pathresolvepaths

>If, after processing all given path segments, an absolute path has not yet been generated, the current working directory is used.


То, что в твоём хелловорлде это один и тот же путь, не значит, что в сетапах посложнее они будут равны.
41 2298542
>>298415
Сколько можно перекатываться? Этому придет конец?
42 2298551
>>298488
ну он же дрисывает путь так localhost:post/url(который ты написал) У меня кст этот вариант заработал. Надо было просто датаТайп указать текст.
43 2298740
Аноны, хелп плиз. В режиме просмотра с телефона, при изменении размеров экрана все подстраивается кроме img. В чем может быть причина и как решить?
44 2298747
>>298740
Куда подстраивается, к твоей жопе?
46 2298750
>>298749
Ты в курсе что у картинки css-стили существуют, weight, height, нет не слышал?
47 2298751
>>298749
Походу нет, пиши в css : img { max-width: 100%; height: auto }
48 2298753
Реквестирую стек для сайта суши бара, блюд мало, меньше 100. MERN норм? Монга вообще подходит для серьезных разработок? Слышал что для прототипов сайтов хорош, но серьезно его никто не юзает.
49 2298755
>>298751

>height: auto


нахуя?
он и так авто.
мимо
50 2298756
>>298755
Не факт
51 2298758
>>298753
Любая cms-ка для магазина хоть вордпресс. нафиг заморачиваться?
52 2298759
>>298758

>вордпресс


А как на нем суши бар написать? Плагины какие-то знаешь?
53 2298760
>>298759
Про ТЗ ты видимо не слышал
54 2298762
>>298760
Какой еще тз? Я это для себя пишу.
55 2298764
>>298762
Для себя тоже с налету ничего не делают. вначале определись что будет на сайте потом уже думай на чем. это же просто сайт скорее всего с каким-нибудь каталогом меню формой и корзиной. для этого готовых решений до жопы.
56 2298779
Что из себя вообще представляет удаленка фронтендера? Получиться удаленно работать, если я в час иду в колледж, и в 3 возвращаюсь домой? В некоторые дни вообще не иду.
57 2298801
Создал функцию SCSS с делением. Использовал обычное, мне вебпак посоветовал использование math.div(). Включил его, получил ошибку. В док-ции функция использована схожим образом.
Что не так?
58 2298803
>>298801
С calc работает. Для всех math нужен какой-то отдельный модуль?
59 2298806
Двачик, нужно при клике на картинку менять адрес в браузере(без перезагрузки, как navlink) как это реализовать?
Стикер127 Кб, 512x512
60 2298839
Анонии. Не подскажете, где можно почитать про баг браузеров при высчитывании элементов position: absolute? Т.е. изначально элементы с position: absolute корректно отображаются. Проблемы начинаются, когда надо зумить экран. Тогда они встают не совсем корректно и где то есть пробелы. Я долгое время знал про эту проблему, но не видел ни одного issue с этим. В интернете не нашёл.
61 2298840
>>298801
Ну так импортируй math.div сперва.
https://sass-lang.com/documentation/modules
62 2298874
>>298806
window.location.hash = "huy"
63 2298879
>>298840
Спс.
64 2298885
>>298839
Да я тебе так объясню, если координаты заданы в пикселях при зуме возникнут дробные значения и из за округления при отрисовке могут возникать пробелы
65 2298895
Сап, двач. Вкатился в макаки-наносеки 1,5 года назад. Работаю в небольшой аутсорс конторе на удаленке, сама контора в моем родном Мухосранске, живу в Дс2, пишу на Реакте, Редаксе, немного на шарпе, немного пайплайны ci/cd настраиваю, немного конфиги докера пишу для всего для чего можно и для чего нельзя и т.д.

Суть в том, что мой тимлид считает, что я уже крепкий мидл и иду в сеньеры постепенно, но по моим субъективным ощущениям я тяну максимум на крепкого джуна и то смотря где.

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

Так вот, теперь вопрос. Есть шансы с таким бэкграундом вкатиться в нормальную контору Дс2 на ставку хотя бы 120к-130к чистыми (моя текущая зп с учетом годовой премии)?
66 2298905
>>298895

>по моим субъективным ощущениям я тяну максимум на крепкого джуна и то смотря где


Пройди собес на вакансию, где обтекаемо должность написана вроде "мидл+/синьор", там тебе пояснят, на кого ты тянешь.
67 2298912
>>298895

> с учетом годовой премии


Откажешься от премии, ради свободы Донбасса?
68 2298920
>>298905

>Пройди собес на вакансию, где обтекаемо должность написана вроде "мидл+/синьор", там тебе пояснят, на кого ты тянешь.


Не хотелось ходить на собесы, пока на этом месте ещё работаю, а то вроде и люди все нормальные, приятно с ними работать, но для себя не вижу перспектив здесь, только деградация... видимо придется на собесы ходить так, действительно, чтобы понять на что я тяну перед тем как увольняться...
69 2298923
>>298905
Да, ещё забыл написать, что я в тестирование вообще не умею, пытался у нас его внедрить по гайдам Кента Доддса, но хуйня полная получилась с кучей дублирования кода... потом тупо времени не было вникнуть.
Стикер255 Кб, 512x512
70 2298940
>>298885
Эвоно как. А есть возможность как-то обойти такую проблему оперируя пикселями? Кто-нибудь задавал данный вопрос на той же bugzilla или bugs.chromium.org, чтобы получить более детальную информацию?
71 2298947
>>298923
Тестирование фронта - тот ещё анал-карнавал. А уж если натягивать это дело на кодовую базу без тестов (а значит и пайплан без них), то там можно и вешаться.
Вот тебе кстати и детектор синьора, TDD в мире вротенда - это марксизм-ленинизм позднего совка. То есть никто в него не верит и не практикует, но все его лекалы должны от зубов отскакивать и ты должен рассказывать о пользе TDD на интервью.
72 2298950
>>298940
так я тебе детально объяснил
73 2299104
Можно ли принудительно ограничить intput type datetime-local до 4 символов года? И в целом зафиксировать формат независимо от локали?
74 2299149
Ну вот я сижу учу ваши жс,кссы и реакты уже пол года. Открыл хх, а там везде еще пхп нужен. Как вкатиться на галеру то? Помогите а то мамка выгонит если работу не найду
75 2299168
>>299149
Добавь к реакту ларавел и mysql. На ларке пет сделай с очередями. За 40-60k реально устроится на небольшую галеру для начала
76 2299173
>>299149

>а там везде еще пхп нужен


Где, лол, почти не встречал, а где встречал то вордпресная битриксная параша.
77 2299184
>>299173
Хуя ты теоретик. Ларки полно в мелких галерах
image2022-02-16201358.png105 Кб, 945x1003
78 2299236
Хуле это дерьмо не работет. Вы бы еще больше всякой хуйерги на крутили. Для работы нужно знать React, но вот незадача, модули в браузере не работают, тебе нужен вебпак, Что говоришь?,Вебпак искаробки с реакт не работает, тебе нужен Babbel, что и бабел не работает, так у тебя какого то лодера нету.
Пиздец вам там заняться нечем, хуле это дерьмо из каробки не работает.
Где взять этот ебучий лоадер, чтобы вебавк понимал JSX синтаксис. Как же мне печёт ни одного нормального гайда на ютубе.
79 2299240
>>299104
input.addEventListener("input", (event) => {
value = event.target.value;
event.target.value = transformDate(value)
})
80 2299241
>>299236
А чего файлы не в формате jsx?
81 2299244
>>299236

>Как же мне печёт ни одного нормального гайда на ютубе.


Видосикодебилы должны страдать. Тебе нужно копать в сторону babel-loader.
82 2299246
>>299241
Да я не знаю. ток React открыл. Кручу верчу. Мне бы чтобы эта хуерга. Для начала хотя бы запустилась.
23123.png57 Кб, 746x725
83 2299250
>>299244
babel-loader. это отдельный файл, или часть webpack.config.js или часть package.json.
Безымянный.png94 Кб, 1530x630
84 2299258
>>297966 (OP)
Подскажите пожалуйста как это говно заставить работать, есть инпут в него записываются данные нужно чтоб данные брались с дома и вводились ниже инпута
babel-loader - Google Search.png33 Кб, 718x399
85 2299259
>>299250
Сам подумой. С русиком кстати далеко не уедешь, так как все гайды по ручной нстройке реакта даже на англюсике устарели. И это ещё вебпак даже на ESM не мигрировал.
Безымянный.png32 Кб, 703x344
86 2299261
>>299258
и конкретно вот это не понятно
87 2299273
>>299258
>>299261

>если наш филд имеет value


Это пишется коротко, if (field.value)
Ну и внутри аппенд пиши свою переменную, куда ты записал результат функции "создать задачу"
88 2299284
>>299259
>>299259
Я все на инглише исчу. Почти.
Кароче у меня все заработало. Но я точно не смогу объяснить как я это сделал, если у меня попросят помочь.
ну я по сути гуглил ошибки. Добавил какую то хуергу в webpack.config.
89 2299331
>>299258
Попробуйте установить React
90 2299355
стоит вкатываться? сколько времени учить до джуна, сколько в среднем до первого офера?
91 2299360
>>299355
3 года
92 2299362
>>299355
Дрочу уже почти год, до сих пор без оффера, и это при том, что я молод и с вышкой. Но возможно это потому что я тупой, у тебя все обязательно получиться за полгодика.
93 2299365
>>299362
вышка по программированию или левая?
94 2299368
>>299365
Информатика и вычислительная техника, брат.
95 2299371
>>299355
Месяц попробуй потратить на это. Я скоро год как дрочу, но мне в процессе начало нравиться, когда после верстки начал жс дрочить.
Сейчас начал пет-проект на реакте и тайпскрипте, как доделаю, начну откликаться на все подряд.
96 2299375
>>299371
сколько времени тратишь в день?
97 2299379
>>299375
6 часов минимум трачу, брат.
98 2299396
Начав делать тестовые, заметил что очень сильно плаваю по серверной части (api, запросы, реквесты, JWT и т.д.). Вообще не понимаю, приходиться копипастить чужие решения. Как можно вкатиться в бекенд, будучи фронтендером?
99 2299408
>>299371
Че за пет если не секрет?
100 2299409
>>299408
мувисерчер
101 2299418
>>299375
Тролль какой-то за меня отвечает, рака жопы ему.
У меня около 6 часов в день свободно, но я не могу после работы мгновенно переключиться, еще и работаю удаленно, т.е. тупо RDP отключить и запустить вебшторм это сложно, я ем, смотрю видосик какой-нибудь, плюс производительность невысокая, т.к. после работы учиться сложно.
>>299408
С апишки дергаю данные и картотеку делаю, чтобы показывало несколько карточек и при клике на нее буду делать роутинг на полную информацию. Но я выбрал неудачное апи (pokemon), так что другое что-то поищу.
102 2299515
>>299418
>>299362
Хуёво резюме составил, не умеешь себя продавать
103 2299524
>>299515

> Хуёво резюме составил,


Написал что я закончил, свой стек. Написал, что я, якобы, делал работы для студентов на заказ и что у меня B1 английский. Описал по каким курсам у меня есть сертификаты. Оставил ссылку на гитхаб и самый сложный свой проект. В конце добавил, как у меня горят глаза и как я хочу дорасти до миддла. И что не так?

> не умеешь себя продавать


Это правда, я до этого никогда себя не продавал. Понятие не имею как это делать.
104 2299683
>>299362
Ты мз ДС?
105 2299705
Гутен таг, господа. Пытаюсь освоить webpack. Пока сборка работает, однако есть вопрос: зачем нужен index.js? У меня там лишь одна строка с импортом стилей. Что-то там ещё следует добавлять?
106 2299725
Есть массив объектов, у объектов есть поле id нужно получить самое большое значение id среди них. Как это сделать?

P.s метод length не сработает, тк айди идут не по порядку
107 2299727
>>299725

>массив


Array.sort по значению id.
Либо же пройтись по массиву, сравнивая и сохраняя наибольшее id.
108 2299730
>>299725
Все вопрос закрыт, я долбаеб айди итак правильно получал, забыл добавить онклик для кнопки ;)
109 2299735
>>299705
Что значит "импорты стилей"?
тестовое.PNG63 Кб, 989x794
110 2299736
Что думаете о тестовом на джуна?

Мне HR сказала что его обычно за пару часов делают, я уже часов 12 ебусь, осталось ток рефакторинг сделать. Его вообще реально(джуну) за пару часов замутить?
111 2299737
>>299168
А сколько времени изучение пхп лапавел займет? Вернее именно знание и понимание бэкенда. Я из бэкенда знаю толтко как хттп работает, какие бывают заголовки и код ответа.
112 2299738
>>299725
const maxID = Math.max(...arr.map({ id } => Number(id)))
113 2299742
>>299736
Тут зависит от того, сталкивался ли ты с похожими задачами или нет. Я бы наверно справился, здесь нет ничего такого, что я не делал.
114 2299744
115 2299745
>>299736
Накинь по часу за каждый пункт, уже 6 часов получится. За пару дней реально сделать, за два часа точно не
116 2299748
>>299745
Ну учитывая что я джун, то с большинством нет, много всего приходилось по ходу гуглить
>>299742
Ну вот прям взять все время что я кодил + гуглил, убрать время на покурить и залипание, то где-то 8 выходит, плюс рефакторинг нужно сесть делать, это думаю займет пару часов еще. крч 6-12 часов более реальная цифра. А то я прям охуел и думал это я такой долбаеб медленный
117 2299749
перепутал ответы, ну да хуй с ним
118 2299756
>>299748
С настроенным пайплайном можно и за два часа. Вот только если у тебя есть настроенный пайплайн, то ты уже мидол. Так что скорее всего хрюша передала то, что мидол ей сказал.
119 2299757
Помогите с гитхабом пожалуйста. Создаю в нем репозиторий. Скидываю на комп командо git pull <адресс репа>.
Делаю все нужные изменения. Делаю коммит. И хочу залить обратно. Делаю командой git push <адрес репа>. Но какого то хуя он создает новую ветку в репозитории. Основная ветка main а та которую заливаю master. Как сделать чтобы сразу в main заливались файлы?
120 2299762
>>299757
git push <адрес репа> main
121 2299784
>>299762
Пишет
error: src refspec main does not match any
122 2299798
>>299735
Глобальных.

import './theme/styles.scss';
Всё. Больше там ничего нет.
upa.png15 Кб, 226x194
123 2299818
Есть какая нибудь удобная либа для создания подобных элементов?
124 2299821
>>299818
npm install @zaebis/counter
125 2299827
>>299818
canvas + что-нибудь для его обертки
126 2299828
>>299784
git pull адрес main.
Потом прост git push адрес
react flow.png38 Кб, 1167x1080
127 2299837
>>299736

> Мне HR сказала что его обычно за пару часов делают


Пиздит.

Есть вопрос по реакту. Вот решил я значит весь такой правельный, делать максимально чисто по гайдам. Верстраем значится виджет, есть у нас корневой компонент который держит весь стейт и логику его обработки, внутри от него по дому уже идут функциональные компоненты без состояния.
Но ведь если в условном компоненте Ж, произойдет событие, состояние корневого компонента изменится, и реакт после изменения состояния заререндерит всех потомков заного? Чего бы я там себе в голове не на мемоизировал, это его дефолтное поведения и я должен сказать спасибо, ведь соседние виджиты не заререндерелись?
128 2299839
>>299757

>master


♂♂♂ прямо в ASS

>>299818

>подобных элементов


Это называется gauge.
129 2299851
>>299837
Хуйня у тебя гайды, стейт приложения надо выносить из компонентов, если он используется в нескольких местах и объявлять в самом компоненте, если он используется только в нем, иначе будет всё дерево ререндерится на каждое изменение стейта, если не мемоизировать всё через React.memo.

"Функциональные компоненты без состояния" - это тоже звучит как что-то из древнего прошлого, сейчас всё пишут на функциях и компоненты с состоянием и без, классы нужны только в особых кейсах типа ErrorBoundary.
130 2299853
>>299837
Пихай значит всё в редух, там не нужно ничего перерендеривать, всё саамо делается.
131 2299873
>>299839

>gauge


Мне не только такие, разные формы телеметрии
upa2.png1 Кб, 135x110
132 2299877
>>299827
Попробовал такой же нарисовать с помощью canvas, хуево как то выглядит
133 2299889
Попытался настроить вебпак так, чтобы он компилировал разные блоки в разные файлы.

Появилось два файла. Я посмотрел. В двух файлах много похожего кода. Так и должно быть или я что-то неправильно сделал?
134 2299895
>>299851

> иначе будет всё дерево ререндерится на каждое изменение стейта


Разве рякт не умный и не проверяет че там изменилось перед тем как ререндерить?
135 2299905
>>299851

> и объявлять в самом компоненте, если он используется только в нем


Но ведь он может быть очень сложным, какая-нить хуебуга которая оперирует несколькими объектами предметной области. И на пулреквесте можно хуев насобирать из-за нарушения separation of concern принципа.

Алсоу, вопрос был, будет ли он ререндерить все компоненты, или только те, пропсы которых поменялись? На сколько я понял из доки, отререндерятся все, чего бы я там не хотел.
136 2299918
>>299889
Конечно нет, потому что ты не читал вебпаковский гайд для вкатунов.
137 2299919
>>299905

>Но ведь он может быть очень сложным, какая-нить хуебуга которая оперирует несколькими объектами предметной области.


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

>И на пулреквесте можно хуев насобирать из-за нарушения separation of concern принципа.


Какие нахуй пулл реквесты, ты блять компоненты не можешь скопозиционировать. Оуть, сейчас бы разметку делать учётом потенциальных пулл реквестов.
138 2299920
>>299919
Если не знаешь ответа на вопрос, так бы и сказал. Зачем агрессируешь на вкатуна?
139 2299937
>>299918
Где оно? По ссылке ОП-поста есть ссылки на ролики про вебпак 15-го года.
140 2299973
>>299920
Ответы на дебильные вопросы никто не знает.
>>299937
https://webpack.js.org/guides/getting-started
141 2300026
Киньте пожалуйста годные ссылки по тайпскрипту
143 2300059
>>300041
Рекойлу 200 лет, его уже пора менять на что-то поновее
144 2300061
>>300026
На рутрекере вбей тс + фреймворк который хочешь использовать. Любой курс с удеми тебе подойдёт.
146 2300082
>>300059
https://github.com/pmndrs/jotai
Во всём лучше. Меньше размер, интерфейс, лучше тупскрипт и т.д.
147 2300095
Можно ли как-то скомпелириовать стили из разных папок при помощи webpack, не импортируя их руками в файл стиля.

Почему-то он видит один файл стилей, но не видит стили в разных папках.
148 2300100
>>300095
Если подробнее, то сперва настроил вебпак. Был файл один файл стилей, который он воспринимал, и js файл, который импортировал стили.

Добавил папку с блоком. В блоке был также код стилей и файл js с импортом стилей. Файл JS он проигнорировал, стили не скомпилировал.
Пришлось руками импортировать стили в самый первый файл стилей.
149 2300104
>>300100
Сделай импорт блока
150 2300114
>>300100
Бля, как ты думаешь вебпак знает, какие файлы являются частью бандла, а какие нет? Он блять импорты анализирует.
151 2300115
>>300104
Блок и так есть на странице.
Стилей нет. Импорт через JS файл не работает.
Единственная возможность подключить стили — напрямую импортировать их в другой scss файл, стили которого вебпак почему-то видит и применяет. Однако что-то мне подсказывает, что это не лучший подход.

Почему-то он один файл компилирует, а другой игнорирует.
152 2300119
>>300114
И почему он один импорт видит, а другой нет? Хотя у обоих есть js файл, который их импортирует. Я не вижу между ними разницы. Вебапк же отказывается видеть один из фйлов вовсе.

Первый файл он видит. Третий он не видит.
153 2300126
>>300119
И как он у тебя увидит импорт блока, если он не импортирован во входную точку?
В стилях он его у тебя "видит", потому что за импорт стилей отвечает отдельный лоадер.
154 2300128
>>300126

>И как он у тебя увидит импорт блока, если он не импортирован во входную точку?



Я импортировал, заработало. Но разве это сильно отличается от ручного импорта в те же стили?

Почему нельзя просто написать один импорт и ебись оно всё конем?
155 2300141
>>300128

>Я импортировал, заработало. Но разве это сильно отличается от ручного импорта в те же стили?


В какие стили блять? Ты импортируешь джаваскрипт модули, которые включают в себя в том числе стили.

>Почему нельзя просто написать один импорт и ебись оно всё конем?


Бля, как ты думаешь вебпак знает, какие файлы являются частью бандла, а какие нет? Он блять импорты анализирует.
Если тебе так охото говнокодить, то вебпак не нужен. Просто складывай свои скриптики в папку public и ссылайся на них в шаблонах.
156 2300149
>>300082

>Во всём лучше.


Jotai делает не пейсбук, а значит он не нужен.
Безымянный.png6 Кб, 641x145
157 2300153
>>300141

> Просто складывай свои скриптики в папку public и ссылайся на них в шаблонах.


Не, я нашёл и скомуниздил эту срань. Стыдно, что код уворовал, но такие времена.
158 2300161
>>300153
MAXIMUM GOVNO
Тебе не нужен вебпак, проследуй в gulp
image.png97 Кб, 500x259
159 2300168
>>300161

>MAXIMUM GOVNO


Почему?
160 2300175
>>299895
Есть рендер, как изменение dom-дерева, а есть render, как изменение virtual-dom и то и то может вызывать тормоза. dom-дерево реакт ререндерит только если что-то изменилось, virtual-dom на каждый чих, если плохо понимать, что делаешь
161 2300182
>>299877
Потому что он тебе хуйню посоветовал, такие вещи через svg делаются
162 2300194
>>300115
Не в тему, но советую pugbem поставить еще, удобнее элементы писать без прописывания названия блока
.page
._header
вместо
.page
.page__header
163 2300230
>>300161

>GOVNO


Почему говно?
164 2300233
>>300194
А как на паге сделать так, чтобы тег в разметке имел класс как элемента блока, так и сам был блоком? Вот так <header class="page__header header"></header>
При этом, чтобы бок был вынесен в отдельную папку и не содержал ничего лишнего.

Я только дошёл до этого, но это же извращение и боль для глаз.
165 2300251
А этот ваш pug имеет какой-то смысл если я рякт использую?
166 2300259
>>300251
Нет.

Он нужен для того, чтобы руками много хтмл кода не писать.
167 2300275
>>300153
И чем это лучше импорта? И там и там тебе нужно ссылаться на файл строчным литералом. Вот только то, что ты использовал, никакой статический анализатор не поймёт, так как это мокрописечка вебпака.
168 2300279
>>300275

>И чем это лучше импорта?


Предполагается множество папок и файлов. Импортировать каждый по отдельности лень.
169 2300283
>>300279
Ты с таким говном очень быстро пососёшь хуйца на рекурсивных зависимостях.
170 2300287
>>300279
Множество папок и файлов подразумевается в любом проекте. Как потом собираешься к этим модулям обращаться? Мокрописить то, что тебе вернул `requireAll()`? Или будешь всё в глобал скоупе хранить? Для последнего вебпак только вредить будет.
171 2300290
>>300287
Получается, стоит импортировать каждый файл по-отдельности?
172 2300296
>>300290
В смысле стоит? Так ES модули работают.
173 2300297
>>300290
Руками вообще ничего не стоит импортировать, стоит юзать ts и автоимпорт.
174 2300301
>>300233
Я так сильно не делю. Есть блок - выношу в компонент. Элементы в блоке всегда, нечего их туда-сюда таскать.
Хотя я на самом деле уже член положил на паг, т.к. реакт изучаю, там это не нужно все, а разметку маленького компонента за 5 минут несложно сделать.
175 2300303
>>300301

>Я так сильно не делю. Есть блок - выношу в компонент.


Быстро соснёшь с таким подходом, когда элемент будет одновременно являться несколькими блоками.
176 2300416
Подскажите как вкатиться в бэкенд. Через фронтенд или как еще(чисто год поработать)?
177 2300427
>>300416
Так ты особо бэк не будешь учить, когда во фронт вкатишься. В свободное время разве что. Но зачем учиться на фронта, а потом учить бэк, если можно учить бэк?
178 2300440
>>300416
Идешь в пхп тред. учишь пхп, устраиваешься, получаешь опыт, при желании переучиваешься на другой язык.
image.png39 Кб, 678x230
179 2300516
Аноны, тыкаю ради интереса один курсик, делаю примитивную браузерную игрушку, словил какое-то говно когда делал кнопку резета игры, объясните плз, почему когда я делаю for от 0 до 1 у меня просто нихера не срабатывает, а когда я убираю for и вручную дублирую все строки с нулем и единицей (пикрил) все срабатывает. Мне кажется что-то совсем глупое в синтаксисе делаю не то, но что - не пойму.
180 2300517
>>300516
Ну т.е. иными словами почему закомменченный код не работает, а незакомменченный который делает те же вещи, но в большее количество строк работает.
181 2300520
>>300517
for(let i = 0; i < 2 ; i++ )
182 2300521
>>300520
Спасибо, заработало. А я рылся, думал все ломается из-за того, что я пытаюсь на всякий случай убрать класс, которого может и не быть. А в чем принципиальная разница между i<2 и i===1 в данной ситуации?
183 2300524
>>300521
Ты бы хоть основы языка выучил прежде чем пукать
for выполняется пока i удовлетворяет условию
184 2300560
>>300521
Чел, даже чисто визуально

>let i = 0; i === 1


>ноль равен одному?


>let i = 0; i < 2


>ноль меньше двух?


Мм, да, в чем же принципиальная разница между этими принципиально разными условиями, загадка, ебать.
185 2300623
>>300560
Да сел после большого перерыва, начинал изучать месяц назад и забросил из-за ковида, сейчас чутка в себя пришел и вспоминаю, вот и тупанул.
186 2300673
>>300623
Да всем поебать куда ты там сел и как давно. Тем более в интернете. Ты пытаешься оправдать себя перед самим собой, что первопоказательно твою низкую мотивацию и заинтересованность.

Всем глубоко похуй вкатишься ты или нет. Понимаешь ты что или нет. На тебя вообще всем насрать. Это тебе должно быть не все равно. Поэтому вместо того, чтобы сопли размазвать и подбирать причины собственных неудач займись уже собой.
187 2300735
>>300673
двачую этого мотивационного тренера
188 2300873
Я могу как-то в переменную получить ссылку на "нестандартную" канву (например, создаваемую svgtoolkit, fabric.js или canvas2svg от gliffy), чтобы потом передать ее другой либе, и она все рисовала в ней, думая что это обычная канва?

НЕ СЕТКУ ПИКСЕЛЕЙ

Задача: конвертнуть векторизуемые элементы canvas (всякие круги, квадраты, градиенты) в svg не через массив пикселей, а через "парсинг" и "трансляцию" правил рисования канвы в правила рисования svg.

Умеющие такую магию библиотеки требуют, чтобы я рисовал свою канву в объекте их класса (например, var ctx = new C2S(500,500); для http://gliffy.github.io/canvas2svg/), и мне надо как-то изобразить для библиотеки, которая собственно предполагаемую к конвертации канву и рисует (к примеру тот же fabric.js или к примеру не умеющая рендерить svg, только канву https://www.chartjs.org/, или например вот этих парней https://codepen.io/wildminder/pen/wJgbLb), что она рисует на обычной канве, чтобы уже затем успешно конвертировать результат. Если что, исходник canvas2svg
https://cdn.jsdelivr.net/gh/gliffy/canvas2svg@master/canvas2svg.js
На кодепене выше можно поиграться, добавив ее.
189 2300922
>>300873
Нахуй так жить. И мы еще смеемся над абстрактными фабриками, вон сами полиморфизм слоями наворачиваем.
190 2300947
>>300516
Что за игра?
191 2300957
>>300922
А какие варианты? Переписать половину кодовой базы библиотеки чтобы вытащить наружу движок рисования и надеяться, что сделал это без багов?
>>300922

> вон сами полиморфизм слоями наворачиваем


Так сам по себе полиморфизм не что-то плохое, как раз вот для подобных задач, только я не уверен, что он тут применим, классы-то "неродственные" могут быть.
192 2300975
Файрфокс скоро ФСЁ
193 2300983
>>300975
Пруфы?
194 2300991
>>300983
Доля в 5% и бабки от конкурента,чем не ФСЁ?
195 2300995
>>300991
Чем это отличается от ситуации год-два-три назад, и почему тогда было не фсе?
196 2300999
>>300995
Доля падает,чехарда в руководстве и технологиях.
Скоро хромиум станет окончательным монополистом
197 2301002
>>300999
Насколько скоро? До или после того, как умрет пхп с жабой? Хочу быть готовым просто.
198 2301005
>>301002
А пхп и джава каким тут боком?
199 2301006
>>300999

>Доля падает,чехарда в руководстве и технологиях.


Опять же, чем это отличается от ситуации... Да вообще за последние 10 лет
200 2301008
>>300999

>бабки от конкурента


будут продолжаться, чтобы местная антимонопольная не набутилила за

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

201 2301009
>>301005
Они тоже скоро фсе, ты разве не знаешь? Уже лет десять умные люди об этом твердят, а ты все еще не в курсе.
202 2301010
>>301009
Скока там сайтов исп пых,а тырпрайз джаву?
И твоя анология не верна
203 2301014
>>301010
Я не желаю слышать претензии к моим аналогиям от того, кто на серьезных щщах спорит с таким жирным сарказмом.
204 2301016
>>301014
Ну как там,заменил джаву в тырпоайзе?
А мозилла скоро заменят вообще
205 2301017
>>301016
Кажется, у кого-то уже началась весна.
206 2301041
>>301017
Есть что сказать по делу?
207 2301108
я тупой

let array = [1,2,3];
let secondArray = [];

array.forEach(еl => {
secondArray[еl] = 'test';
})

console.log(secondArray)

> [undefined ,"test" ,"test" ,"test"]



возвращает аррай где первый елемент пустой, как этого избежать?
208 2301109
>>301108
блять, я понял
забейте

можно оббосать, мамка куртку постирает
Безымянный.png184 Кб, 1765x879
209 2301240
>>297966 (OP)
Друзя, подскажите как это реализовать. Тудушка на ваниле. конкретно не понятно, как добавить чекбокс к появляющейся таске и вообще как правильно это написать по данному гайду. Заранее спасибо
210 2301346
>>301240
Просто не забудь сделать append
16156687543660.jpg79 Кб, 736x736
211 2301468
>>301240

>велью инпута


>прокидывает объект

212 2301476
>>301240
Не понял архитектуру твоей тудушки, но допустим будет типа такого

function createTask(){

//тут мы создаем DOM элемент таски
let task_element = document.createElement("DIV");
let task_text = document.createElement("SPAN"); task_text.textContent = "Я таска."
let task_checkbox = document.createElement("INPUT"); task_checkbox.setAttribute("type", "checkbox");
task_checkbox.classList.add("status"); // добавляет ебаный статус как хочет автор гайда, получите, распишитесь.
task_element.append(task_checkbox); // тот самый апенд чекбокса к таске.
task_element.append(task_text);

// навешиваем листенер с реагированием на клик и функцией completeTask
task_checkbox.addEventListener("click", completeTask);

}

function completeTask(event){
// проверяем чекнут ли чекбокс или нет event.target.checked true/false
}

Но мне непонятно зачем делать срабатывание чекбокса по клику, а не по change.
213 2301499
Аноны, какая сейчас зп у мидлов?
Цены выросли неслабо, есть ощущение что застоялся и мало повышаю, но и наглеть не хочу.
Сколько получаете? Что делаете на работе? Как устраивались?

Сам получаю 2500, 1.5 лет опыта фулстак node\vue
214 2301587
Нужно ли для вката на react-джуна учить redux-saga?

Часто ли в реальной жизни saga применяется? Или в 99% случаев можно обойтись thunk'ом?
image.png71 Кб, 1836x324
215 2301705
Не душите сильно за нубские вопросы голова просто пухнет и простейшая инфа иногда ставит в тупик.

Тыкните носом пожалуйста, почему при нажатии кнопки не срабатывает функция?
216 2301713
>>301587
Бля, от проекта ж зависит, чо ты
Достаточно просто знать, на собесе один хуй будешь отвечать, что a.getUser() вернет undefined))0)
217 2301715
>>301705
All убери и работай нормально, как с единичным элементом.
Если много кнопочек и всем надо листенер, for of юзай.
218 2301717
>>301705
Хз, выглядит как будто должно работать. И у меня работает.
image.png8 Кб, 488x142
219 2301744
>>301715
В том и дело что без ALL работает(на пикче), я просто не понимаю почему с ним не хочет.

>Если много кнопочек и всем надо листенер, for of юзай.


Спасибо, возьму на вооружение.

>>301717
Хм, спасибо что попробовал, повтыкаю еще, полюбому же я где то что то запорол.
220 2302034
Я на ютубе курс нашел слегка староватый по реакту, там redux redux-thunk применяется в уроках.

Подскажите, насколько сложно переделывать код с redux на redux-toolkit?
221 2302150
>>302034

>с redux на redux-toolkit


Так они же одинаковые
image.png46 Кб, 908x471
222 2302185
Подскажите, почему код не работает?
223 2302202
>>302185
Потому что ты выводишь (и возвращаешь) свойство checkProp, чтобы вернуть свойство по значению checkprop использую квадратные скобки.
224 2302217
>>302202

>ты выводишь (и возвращаешь) свойство checkProp, чтобы вернуть свойство по значению checkprop


Так object.property и должно возвращать значение свойства, разве нет?
225 2302231
>>302185
return obj["checkProp"]
226 2302238
>>302217
Когда обращаешься как a.b оно думает что существует реальный ключ b, а не подставляет реальное значение переменной, поэтому тебе нужно a["b"]
мимо
227 2302239
>>302231
obj[checkProp]
228 2302418
Зачем подключать скрипт в самом конце body, если можно подключить в head с атрибутом defer, чтобы он его предзагрузил и выполнтл после загрузки dom?
229 2302433
>>302418
Потому что подключатор старый гайд прочитал.
230 2302440
>>302433
Объясни, пожалуйста, как всё-таки правильнее делать
231 2302443
>>302440
Правильнее делать в хэде с type="module".
232 2302681
Подскажите, как подписаться/отписаться на стрим в уже существующем вебсокете? Подключаюст через ws:

const WebSocket = require ("ws")
const ws = new WebSocket(URL)

ws.onopen = () => {
ws.send(JSON.stringify(Данные для подписки));
}

ws.onmessage = (message) => {
console.log(message.data, message.message)
}
ws.onclose = () => {
console.log("Disconnected..")}

ws.onerror = (error) => {
console.log(`WebSocket error: ${error}`)
}
233 2302699
>>302681
Очевидно же отправлять сообщение на сервер и реагировать на ответно сообщщение.
234 2302734
>>302699
Но как? сокет запущени по ws.send подучена подписка, как отписаться или добавить еще одеу?
235 2302763
>>302734
Ну так гугли API сервера и посмотри, как поменять "подписку" на существующем сокете.
236 2302767
>>302763
Я знаю, что нужно отправить. Как это сделать, в рамках уже запущенного сокета? Если есть туториалы, отправте туда, я почитаю.
237 2302773
>>302767

>Я знаю, что нужно отправить.


Ну так отправляй.

>Как это сделать, в рамках уже запущенного сокета?


Очевидно же если сервер не поддерживает твою фантазию, то никак.
238 2302778
>>301109
>>301108
Почему?
239 2302791
>>302773

>Ну так отправляй.


Ну так как? Ответы уровня двача, лол.
240 2302798
>>302791

>Ну так как?


Так же, как ты отправляешь все другие сообщения на сервер через вебсокет.

>Ответы уровня двача, лол.


Какой вопрос, такой и ответ.
Безымянный.png108 Кб, 1765x879
242 2302873
>>301476
хмм почем то чекбокс так и не появляется
243 2302878
>>302873

>textContent

244 2302893
>>302873
Тебя так и не смущает ничего на 19-й строке? Там ведь даже подчеркивается.
245 2302943
Фронтендеры, посоветуйте рецепты смузиков для вката в ИТ.
image.png15 Кб, 834x99
246 2303058
аноны, привет, почему код в then работает правильно только если я оборачиваю его в async/await, разве сам then уже не должен мне гарантировать что код будет выполнен асинхронно?
247 2303069
>>302943
Имеешь нужные скилы
@
Вертишься в нужных кругах

Всё как и везде, анон.
248 2303093
Пасаны такой вопрос. Сказали что разрешат мне вкатиться если быстро освою NEXT js. Насколько он сложен в сравнении с обычным реактом?
249 2303095
>>303093
Чуток сложнее, если ты при макакинге реакта не понял HTTP.
250 2303096
>>303095
Понял, бэкенд изучал, не так хорошо как фронт конечно но помокакить получалось. Значит попробую, спасибо.
изображение.png5 Кб, 578x49
251 2303103
>>303058
Отвечает Александр Друзь синтаксис языка / справочник на главе async/await / однострочник в консоли для проверки. А, нет, обознался, в 22к2 году это уже не модно, лучше кидать скрины с кодом на двач и ждать ответа часами.
252 2303115
>>303103

>Александр Друзь


Назвался Друзем - полезай отвечать
image.png5 Кб, 428x63
253 2303199
Не могу установить vue-cli, на каком-то этапе ошибка. Написано, что из-за проблем с сетью, но интернет нормально работает. В браузере ссылку нормально открывает. Что за хуйня и как лечить?
Invalid response body while trying to fetch https://registry.npmjs.org/graphql-subscriptions: Socket timeout
254 2303315
>>303103
Анон, двач это единственное сообщество где я могу задать вопрос, больше я нигде не сижу, так что да, всю свою головную боль я несу сюда. И, нет, ты не прав, я погуглил справочники но ответа на мой вопрос там не нашел.
255 2303326
>>303315
Тогда описывай буковками нужное тебе поведение, прикладывай код который не работает, прикладывай код который работает
256 2303490
Подскажите, как в реакте можно при изменении url'а возвращать позицию скролла в начальное состояние?
image.png650 Кб, 764x1080
257 2303608
Где можно найти темплейт или хотя бы пример реализации таблицы на html + jqery + bootstrap 5 со страницами, поиском, фильтрами и сортировкой?
258 2303628
>>303490
Начальное состояние чего?
259 2303669
>>303315

>ответа на мой вопрос там не нашел


Пиздобол. Первая же ссылка в гугле, пятое предложение от начала статьи.
Не говоря уже о том, что сделать ctrl+c ctrl+v аргумента в нодную/браузерную консоль - дело пяти секунд.
260 2303724
>>302893
дружище глянь плс https://telegra.ph/Pishem-Todo-List-Gajd-dlya-zelenyh-09-08 как прировнять филд велью к пустйо строке?
Безымянный.png173 Кб, 1765x879
261 2303745
>>297966 (OP)
так и не получается повешать чекбокс на таску ._.
262 2303757
>>303608

>jqery + bootstrap 5


А нахуя жквери, если ее в 5 версии бутстрапа вырезали?
263 2303759
>>303724
Приравнять это значит поставить одно равно. Одно равно обозначает переопределение переменной.
Когда ты пишешь два равно, это проверка, равны ли два операнда, в результате возвращается ложь или истина, т.е. у тебя эта часть по-другому работает.
264 2303765
Не бейте палками, я бекендер, решил поучиться на электроне поделать. Как рут проекта определить, от которого можно уже ссылаться на другие каталоги с шаблонами и прочими вещами?
265 2303821
>>303765
Открой документацию, бэкендер.
image.png39 Кб, 1083x668
266 2303823
>>303745
Тебе выше указали на строчки, где у тебя ошибка, которая затирает чекбокс. Если программа работает не так как ожидается, пиши в сомнительных строчках console.log(peremennaya) чтобы отследить как меняется значение нужной тебе переменной, или освой дебаггер жса в DevTools в своём браузере.
267 2303878
>>303821
Открыл, т.к. знал что высер будет примерно такой. Странно что целый час ждал, а не через 3 минуты появился
5EE20170-A236-4B6B-986B-B96BF18402CA.jpeg31 Кб, 780x405
268 2303992
269 2303993
>>303765
Хранить каталоги в SQLite, так как один хуй при билде пути будут другие, особенно если балуешься вебпаком.
изображение.png184 Кб, 378x293
270 2304214
Сколько просить в вакансии реакт макаке? Стек: React, Typescript, Mobx, webpack/vite, axios/graphql, небольшой опыт работы с Docker. В свободное время пилю фуллстак проект, стак MERN + Next на фронте. Опыт работы год.
16336510894230.png511 Кб, 600x600
271 2304248
Рекатобояре. Есть стейт. В нем есть массив из обьектов. Как манипулировать этим стейтом (круд операции)? В интернете прочитал, что в рекате изменение состояния происходит путем полного замещения, а не слияния. Т.е если я хочу добавить новый обьект в массив, я должен скопировать состояние (через спред или Object.assign) добавить в массив мой новый обьект (через метод пуш) и обновить состояние (setState). Енто так?
272 2304268
>>304214

>React, Typescript


>Опыт работы год


От 90
273 2304311
>>304248
const newState = oldState.concat(newItem)
274 2304340
Аноны, я в js совершенно ничерта не понимаю, но тут скачал проект сайта с гитхаба, и хочу его запустить по крайне мере локально. Сама папка с проектом имеет такое содержимое - Пик 1, на втором пике папка src. Собственно как всё это дело заставить показывать сайт?
D473FCEC-2E18-444A-A245-9E2CE867EC18.jpeg258 Кб, 800x450
275 2304344
Как вы первый раз заработали на javascript?
276 2304347
>>304344
На работе зарплату получил. Полностью черную
277 2304349
>>304344
не снимая свитер
pR2KGjW1LEM.jpg7 Кб, 252x168
278 2304374
Сколько просить в вакансии Vue макаке? Стек: ХТМЛ, Цсс, Ванильный Жабаскрипт, Vue, webpack/vite, axios, небольшой опыт работы с Docker. В свободное время душу питона и смотрю Владилена Минина. Опыт работы 3 месяца.
279 2304379
>>304374
А ты няшный?
280 2304392
>>304340
В пакаге.жсон должна быть команда чтобы всё это запустить на дев сервере или собрать. Наверное ноду нужно будет поставить https://nodejs.org/en/ /
281 2304401
Кто использует styled components? Внутри бэктиков приходится вручную CSS вбивать, автозаполнение не работает. Как это исправить можно?
282 2304403
>>304379
Да, а как это к прогерству относится?
283 2304411
Поясните за мемоизацию в реакте. Вот есть у меня тудушка в реакте. Есть главный компонент (App.js), этот компонент рендерит список задач (ul) и форму ввода задачи. Каждая задача имеет кнопку 'удалить'. Когда нажимаю на эту кнопку происходит рендер как и список задач так и формы. Это же не ок, что при изменении списка у меня заодно и рендерится форма, с которой я никак не взаимодействовал.
Причем форма инпута перерендывается из-за того, что я передаю в нее функцию добавления новой записи в App.js (из самого же компонента дергаю эту фунцию в качестве пропса)
Ну я тут прочитал про мемоизацию, да и обернул функцию добавлению в useCallback да и сам компонент формы в memo.
И тут вопрос: я все правильно сделал? Это не выстрел в голову? Ведь сейчас, когда я взаимодействую со списком (меняю чекбокс, удалаю элемент) рендер формы не происходит, только самого списка?
284 2304418
>>304401
Поставить ide/плагин к редактору
285 2304426
>>304374
От 65-70.
Про Минина только не говори ничего и не смотри его желательно. Он многое объясняет не так, как оно работает, а так, как он понял. И понял он не всегда правильно. Почему он не может открыть доку, трудно сказать.
изображение.png9 Кб, 855x123
286 2304433
>>304392
Нашёл вот это. Что с ним делать? Ноду поставил
287 2304434
>>304433
пиши в консоли node run dev-server
или node run build
В зависимости от твоих целей
288 2304436
>>304433
А и node install сначала чтобы зависимости были.
289 2304438
>>304436
>>304434
Бля, не node, npm конечно.
290 2304439
>>304436
Это сделать в директории программы или system32? Или разницы нет?
291 2304440
>>304439
в директории хуйни с пакаге.жсон
изображение.png20 Кб, 679x303
292 2304441
Поставил короче в system32 с флагом -g
Вот такое пишет
293 2304444
>>299736
На какую зп? Вакансия был с опытом или без?
16031722700870.jpg34 Кб, 414x360
294 2304453
>>304426
А че так много?

Про владилена - я на самом деле тоже плох в доке, учился с самого начала тупо на примерах, потому что непонятно куда эти куски кода вставить, как их использовать, как изменять. А когда на примере, то сразу понятно что и где. Короче другой подход, наверное. Некоторые только доку прочитав уже начинают проекты пилить, а я походу тугой.

Спасибо за ответ, кстати
295 2304464
>>304453

>А че так много?


Я перепутал, у тебя тайпскрипт не указан, поэтому на 5-10к срезай минимальную планку.
Не работайте блядь за 40к, вы ебанулись что ли. Особенно с коммерческим опытом более месяца.
296 2304469
>>304464
Спасибо, пойду смотреть в сторону тайпскрипта.

А насчет месяца как-то непривычно, это же всего месяц, вообще непривычно, что новички могут получать даже 40 к, при том без специального образования и все такое

офигеваю, короче
297 2304476
>>304441
Бамп. Что делать?
298 2304477
>>304469
Если не знаешь, сколько попросить, просматривай вакансии, где указан доход и примерно среднее число проси.
Ну или доверься данным хабр карьеры, у них джуны во фронте 50к в среднем зарабатывают.
Алсо, ты 3 месяца отработал и продолжаешь работать, просто ищешь место потеплее? Или уже уволился и ищешь новое? Сколько получал или получаешь?
299 2304497
>>304477
20 получаю, это вообще первая работа, до этого месяца 3 пилил мелкие проектики и учился, потому еще есть ощущение, что вообще ничего не могу. Даже 20 к на этой галере стыдно было поначалу получать.

А думаю о вакансиях, потому что в этйо компании платят 50 к "бате бекендеру"...(который кстати меня и дрочит по люббой мелочи в коде, что тоже иногда заставляет задуматься) Ну типа это несерьезно же для человека, работающего 4 года. Я о зарплате.

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

Ой, чет я много написал
300 2304508
>>304497
Бля, жизненно, только получаю еще меньше. 18 лвл, пилю интернет-магазин на реакте и ноде. Считай, фуллстеком за еду работаю. Но с ментором повезло, славный парень, за несколько месяцев столько информации в меня вбил.
301 2304516
>>304497
>>304508
Пиздец, это из-за вас столько наглецов, предлагающих бесплатные 3-месячные стажировки и требующие дохуя за нихуя.
Немедленно обновляйте резюме и откликайтесь, за зарплату меньше 45 харкаете в ебало и идете дальше.
302 2304520
>>304516

> за зарплату меньше 45 харкаете в ебало


Да я бы с радостью, но живу в ДНР, тут такие копеечные зарплаты буквально у всех. Посижу еще хотя бы полгода на этом месте, окрепну как джун, пет какой-нибудь сделаю и буду пытаться в российские компании на удаленку устроиться.
>>304508 -кун
303 2304521
>>304520
Как там у вас сейчас? Почему не переехал?
304 2304529
>>304521

> Как там у вас сейчас?


Херово. Непонятно, что дальше будет. На улице ополченцы молодых парней ловят и отправляют воевать с невидимым врагом.

> Почему не переехал?


Некуда, да и у родителей столько денег нет. Планирую копить на переезд.
305 2304530
>>304476
Ладно, с этим разобрался. Как понять, какой jsx файл за какую страницу отвечает?
306 2304536
>>304520
Так ты наверное и сейчас на удаленке стажируешься? Или все таки локальный айти бизнес в днр еще шевелится?
307 2304540
>>304530
Нет, в офис хожу. Айти это громко сказано, у нас даже такого отдела нет, просто "отдел продаж". А так, программистов, ученых и прочих головастых тут не любят. Зато 100500 вакансий а-ля таскать мешки или город обустраивать. Ну или вояки.
308 2304548
>>304529
Пыня же там кого-то эвакуировал, не?
309 2304551
>>304548
Да, есть такое, сейчас эти эвакуировавшиеся хуй без соли доедают вдалеке от дома. Не так много людей эвакуировалось, на самом деле.
310 2304555
Сегодня знакомился с коллективом. Взяли на джуна. Одни блядь армяне в компании. В отделе со мной из 10 человек 4 армяна. Откуда их столько в it? Притом что некоторых лет по 40 и такой вид у них словно еще вчера арбузами на рынке торговали.
Безымянный.png80 Кб, 1765x879
311 2304561
>>303823
>>303759
спасибо большое исправил, но вот именно в этом коде если таск. текст контент велью оставльять то таска пишется но нет чекбокса если убрать велью то стакается чекбокс но таска не пишется. хочется понять что хочет именно этот автор гайда https://telegra.ph/Pishem-Todo-List-Gajd-dlya-zelenyh-09-08
8619723b3f52c210c4133.png23 Кб, 708x367
312 2304572
313 2304576
Анончики! Программисты, ну что же вы? Триста тыщ в микросекунду, неужто не поможете вкатунцу риактридаксовскому переменную объявить?
314 2304578
>>304555
Деанон по количеству армян в команде
315 2304590
>>304555
Зависит от твоего места жительства. На Кубани вероятнее всего будет куча армян, в ДС тоже может повезти, а вот в Сибири.....
316 2304646
Какой видеоплеер лучше всего?
317 2304655
Использует кто recoil на галере? Пожалели, что отказались от классики или все гладко?
318 2304683
319 2304688
>>304590
ДС. А так в целом не мешают. Думал начнутся смехуечки типа "гыыыы 30 лет и только джун" но наоборот только поддержали типа только долбоеб смеется над ищущими свой путь людьми.
320 2304691
>>304530
Бамп.
Ещё попытался поднять сайт на firebase, но у меня ничего не выходит, хотя делал по инструкции. Сам сайт - https://github.com/itfeelsharsh/shop
Буду очень благодарен, если вы мне поможете. Там ниже есть инструкция, я делаю по ней, потом по инструкции firebase:
firebase login
firebase init
firebase deploy
Пишет, что deploy успешен, но при открытии ссылки ошибка, и в firebase версия проекта не появляется.
321 2304716
>>304692 (Del)
пошел нахуй, репорт
323 2304750
Господа, есть следующая проблема. В зависимости от размера страницы, нужно навешивать класс на body, чтобы отрегулировать поведение выпадающего меню. На больших размерах достаточно ховера, на малых нужен клик по меню для его открытия.

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

Нужно, чтобы класс также менялся и при изменении экрана. Желательно, ниже определённого размера. Такое только с resize() можно решить? Есть какие-нибудь решения лучше?
324 2304762
>>304750

>Так как события изменения размера могут срабатывать с высокой скоростью, обработчик событий не должен выполнять дорогостоящие операции, такие как модификации DOM.



Навесить класс дорогая операция?
325 2304775
>>304750
А ты без классов сделай через адаптив
а в js уже смотри размер экрана и в зависимости от этого навешивай события. при window.width<768 например события для моб.версии а при большем для обычной
Безымянный.png12 Кб, 398x344
326 2304782
Код не слишком плохой с точки зрения той же производительности?

>>304775
Поведение прописано в стилях в зависимости от того, какой класс есть. Собственно, там и был адаптив. Проблема была в том, что если я меняю экран через инструменты браузера, то первоначальный класс не менялся.

Событие клика срабатывает при наличии элементов для клика и нужного класса.
327 2304787
>>304782
https://stackoverflow.com/questions/45905160/javascript-on-window-resize-end
тут описывается как сделать что-то вроде resizeend
хотя хз нахер надо. оно ж у тебя все равно выполнится 1 раз при загрузке сайта. или ты думаешь пользователь будет сидеть окошко браузера менять? это делаешь только ты.
Безымянный.png20 Кб, 983x273
329 2304795
Почему не находит переменную, если она есть?
330 2304799
>>304795
Экспортировать значение в виде еще одной переменной нельзя.
331 2304804
332 2304812
>>304804
А ты вебпак точно так же настроил? Может он компилирует до экспорта в жс.
Безымянный.png17 Кб, 1038x553
334 2304827
>>304812
Порядок лоадеров тот.
style - css - sass
335 2304835
>>304795
Ты не показал, как его импортируешь.
Безымянный.png5 Кб, 694x114
336 2304849
337 2304851
>>304835

>его импортируешь


Кого именно его?
Я просто с вебпаком плохо лажу.
338 2304862
>>304849
Так что там возвращается? Попробуй import {default as variables} from "..path".
1645539460127610898.jpg25 Кб, 478x400
339 2304908
https://www.youtube.com/watch?v=Uo3cL4nrGOk
даже старые мемесы переписываем и транспайлим
340 2304914
>>304691
Бамп
>>304741
Спасибт
341 2304922
>>304914

>Спасибт


Спасибо, фикс
342 2304927
>>303069
Спасиб, это всё есть. Рецепт смузи хотелось...
343 2305127
>>304818
огромнейшее спасибо анонче что потратил время!, очень поможет, есть что обмазговать
344 2305243
каким хуем удержать столько знаний в голове.
345 2305258
Подскажите интересную идею для веб приложения.
346 2305261
в js все массивы по дефолту это массивы переменной длины? как они расширяются, мы же не задаем размер массива сами
347 2305273
>>305243
Тоже интересно
348 2305277
>>305243
Каких знаний?
349 2305278
>>305277
По вротэнду
350 2305282
>>305278
Опыт уже решённых каких то задач и проблем
351 2305376
Есть тут знатоки vue? Вопрос по добавлению готовых компонентов.

Допустим создано 3 компонента:
- в первом кнопка добавления
- во втором пустое поле
- третий - это тот компонент, который нужно добавить внутрь второго

В первом(с кнопкой) прописываю вот такую функцию, она срабатывает и третий компонент создается, но естественно появляется только один компонент

methods: {
ShowComponent() {
createApp(component3).mount('#component2')
}
}

Каким образом создать список одинаковых компонентов, чтобы при каждом нажатии добавлялся еще один
352 2305399
>>305376
Документация, раздел рендеринг списков.
Алсо,

>createApp внутри уже работающего приложения


Поправляйся скорее.
353 2305437
>>305261
Длина задаётся через сеттер.
354 2305530
есть функция
function getPersistence(num) {
let i = 0;
let number = num;
while (number > 9) {
i++;
let [a, ...b] = number.toString();
for (const k of b) {
a *= k;
}
number = a;
}
return i;
}
линтер ругается что б должна быть константой, как пофиксить?
355 2305532
>>305530
Задать b константой.
356 2305533
>>305532
куда ее задать? все решение по пизде идет
357 2305555
>>305533

>куда ее задать?


В лексический скоуп.

>все решение по пизде идет


Ну охуеть, заместо одно строчки придётся использовать две, кокой ужос.
358 2305562
>>305555
я не понимаю о чем ты, какой лексический скоуп?
360 2305603
Бля пацы помогите плиз. Пытаюсь запихнуть в реакт факл с firebase. И пишет такую ошибку

Uncaught ReferenceError: Cannot access '__WEBPACK_DEFAULT_EXPORT__' before initialization

С чем связано?
361 2305658
>>305603
Пытаешься вызвать переменную до её инициализации.
362 2305662
Объясните зачем нужны замыкания и где они вообще используются? Везде вижу пиздежь, что замыкания супер важны, то нигде не виду примеров тх использования на практике. В каких соучаях они незаменимы?
363 2305670
>>305662
Реакт один большой пример замыканий
364 2305673
>>305662
Напиши-ка обработчик события без замыканий, наркоман.
365 2305676
>>305662
Любая ф-ция в жс замыкание, чел.
366 2305702
>>305673
>>305676
Можно писать всю эту хуйню не зная замыканий.
367 2305703
>>305662
Счетчик лайков, просмотров
368 2305706
>>305702
конечно можно, за 30к где-то. На большее тебя никуда не возьмут без выдроченной теории
369 2305716
>>305706

> 30к


За 60к.
370 2306045
>>305676

>Любая ф-ция в жс замыкание, чел.


Чего? Замыкание не функция, это более широкое понятие.

https://ru.wikipedia.org/wiki/Замыкание_(программирование)

>>305673

>Напиши-ка обработчик события без замыканий, наркоман.


Легко. Взял пример с MDN и сделал без замыкания. Мой код:

https://jsfiddle.net/zLn5vwkt/

Оригинальный код:

https://jsfiddle.net/vnkuZ/7726/

>>305706

>конечно можно, за 30к где-то. На большее тебя никуда не возьмут без выдроченной теории


Какой еще теории?
371 2306049
>>306045

>Взял пример с MDN и сделал без замыкания.


Почему не работает без замыкания? Фактически код делает то же самое.
372 2306068
>>306045
Не уверен что такое замыкание, но по-моему ты вообще не понимаешь что ты нахуй пишешь.
373 2306103
>>306045

>Легко. Взял пример с MDN и сделал без замыкания. Мой код:


Так он у тебя и не работает. Самоотсос засчитан.
el-risitas-laughing.gif31,1 Мб, 640x480
374 2306149
>>306045

>обработчик события без замыканий


>Легко


>в теле обработчика берет document из внешнего скопа

375 2306180
>>306149

>в теле обработчика берет document из внешнего скопа


Не гони, Вась. Должно работать. Разберусь с этим позже. С какого внешнего? Если не возвращать функцию из функции, то ничего не меняется по факту.
376 2306190
>>306180
Ща меня сеньоры поправят, но я понял что зымакание это про то,что функция запоминает необходимые данные на момент создания и если они изменятся вне этой функции, то функция не узнает об этом, беря документ из внешней области видимости, ты не можешь гарантировать актуальность свой функции на момент ее вызова.
377 2306192
>>306180
Ща меня сеньоры поправят, но я понял что зымакание это про то,что функция запоминает необходимые данные на момент создания и если они изменятся вне этой функции, то функция не узнает об этом, беря документ из внешней области видимости, ты не можешь гарантировать актуальность свой функции на момент ее вызова.
378 2306202
>>306049
Тут не в замыкании дело, не работает оно потому что обработчик событий ожидает колбэк с аргументом `Event`, а процидурки он уже выполнил. Так что делает он не то же самое.
379 2306204
>>306180
У тебя функция makeSizer ничего не возвращает. Поэтому у тебя в переменных size12, size14 и size16 будет храниться undefined.
И потом ты эти undefined-ы присваиваешь атрибутам onclick. Это же пиздец, ну.
380 2306223
>>306190
Замыкание - простая херня. Но с далеко идущими следствиями. Замыкание состоит из 2 важных моментов. Но во многих "умных" объяснениях делают упор только на одном моменте. Поэтому многие путаются.

2 момента:
1. функция имеет доступ к внешним переменным
2. Эти переменные "существуют" пока существует функция

1. В примере с MDN внутри функции, которая возвращается из makeSizer доступна переменная size, т.к. она является для этой функции "внешней" переменной.
2. Эта переменная остается существовать (оказывается замкнутой) пока существует функция, которая ее "видела".

И собсна все, это и есть замыкание. Функции, которые "видели" эту переменную size присваиваются атрибутам onclick и в момент вызова используют значения из этих переменных size.

Нахуя оно нужно? Тоже просто. Нужно для того, чтобы не срать в общий скоуп переменными size, но иметь к ним доступ для тех ф-ций, для которых эти переменные требуются.
изображение.png44 Кб, 764x308
381 2306261
Хочу выцепить вкшный токен из адресной строки. Но ебучий линт меня нахуй посылает при попытке подцепить парсер на hashchange. Я это делаю как-то "неправильно" и надо по-другому?
382 2306280
>>306261
window.addEventListener
383 2306387
>>306202
>>306204
Оригинальный пример на локали не работает вообще.
384 2306391
Пацаны, я осознал почему бывает больно с динамическими языками, особенно со слабой типизацией. Этот >>306045 код не работает у меня на локали и я даже не знаю как это дебажить. Хотя в jsfiddle все работает.
202002051304IMG6245.JPG1,2 Мб, 1962x1553
385 2306394
Я тут сайтик погоды написал, оцените, насколько все плохо...
Такое можно показывать в портфолио?

Сайтик в работе: http://178.62.218.79:3001
Код: https://github.com/vertically-challenged/weather
386 2306399
>>306394
Мне нравится. Только динамики нет никакой. Графику сам рисовал? Интересная.
387 2306401
>>306399

>динамики нет никакой


А какая должна быть?

>Графику сам рисовал?


Нет, отсюда взял https://icons8.ru/icon/set/погода/dusk
388 2306406
>>306401

>А какая должна быть?


Ну чтоб что-нибудь кликалось. Можно сделать выбор города из списка при клике на поле ввода и автодополнение там же.

>Нет, отсюда взял https://icons8.ru/icon/set/погода/dusk


Такие ламповые, аж детство вспомнил.
389 2306418
>>306394
Неплохо, но не хватает какого-то информирования, если я ввел вместо города белиберду
390 2306434
>>306391
Где-то накосячил значит. Должно работать.
И динамическая типизация не запрещает дебажить, дебажь на здоровье.
391 2306460
>>306434

>Где-то накосячил значит. Должно работать.


JS исполнялся до полной загрузки страницы.

>И динамическая типизация не запрещает дебажить, дебажь на здоровье.


Ну и как? Из-за выполнения JS до полной загрузки страницы, функция возвращала null. Как такое дебажить?
392 2306470
>>306460
Выполняй его после загрузки страницы. Охуеть блять, динамический язык ему в жопу насрал.
393 2306474
>>306470
Вася, как дебажить если null? Он может быть по разным причинам.
394 2306479
>>306474
Так ты же сказал причину:

>Из-за выполнения JS до полной загрузки страницы

-4Ih8RiljrA.jpg73 Кб, 720x940
395 2306501
Сап, анон, я вкатун, то есть ни разу продакшен не делал, так что нужна помощь.
Суть такова:
Написал приложение на react native, замутил ему простенький бэк на ноде + экспресс, и теперь мне нужно заставить их работать. Насколько я понял мне нужен VPS/VDS сервер, на который я с помощью докера или просто руками закину приложение, затем на этом сервере нужно запустить node app.js, а в приложении на native делать запросы по ipшнику сервера, так? Возникает пара вопросов:
1) Насколько это дебильный костыль? В продакшене в нормальных компаниях так и делают или я хуету какую-то неандертальскую придумал?
2) Если же даже я сделаю так, то как лучше реализовать перезапуск бэка если VPS перезагрузится или с ним еще какая хуйня произойдет?

С меня как всегда, парни.
пикрандом
396 2306509
>>306501

>1) Насколько это дебильный костыль? В продакшене в нормальных компаниях так и делают или я хуету какую-то неандертальскую придумал?


Ты типичную клиент-серверную архитектуру дебильным костылём назвал? Ну храни тогда секретные ключи и запросы в БД на мобилке юзера, зато недебильно будет.

> 2)Если же даже я сделаю так, то как лучше реализовать перезапуск бэка если VPS перезагрузится или с ним еще какая хуйня произойдет?


Так это не проблема бэка, а инфраструктуры, которая этот бэк шатает. И однострочного ответа на этот вопрос нету, иначе бы девопс не был бы отдельной профессией.
397 2306523
>>306501
При перезагрузке vps системд загружает докер, а докер поднимает обратно контейнеры, которые не были остановлены.
398 2306535
>>306509
Да я не назвал ее дебильной, а лишь поинтересовался является ли она дебильной. Просто привык уже к тому что учишь что-нибудь, делаешь, а потом выясняется что это хуета и так никто не делает уже. Я так читал про http, сделал сервер, сижу довольный с мыслями типа "Ну и нихуя тут сложного!" и только после узнал что просто http уже никому нахуй не упал, давай блять сертификаты для https, хуё моё!

>>306523
То есть мне скрипт на баше написать какой нибудь или все из каробки так работает?
399 2306544
>>306535

> То есть мне скрипт на баше написать какой нибудь или все из каробки так работает?


https://docs.docker.com/config/containers/start-containers-automatically/
400 2306576
>>306479

>Так ты же сказал причину:


Не морочь голову. Это сейчас по этой причине, а вообще если null, то как дебажить?
401 2306578
>>306501

>Насколько это дебильный костыль?


Уже ответили.

>как лучше реализовать перезапуск бэка


Демонизация.

https://www.8host.com/blog/podgotovka-prilozheniya-node-js-k-proizvodstvu-v-ubuntu-20-04/
402 2306580
>>306576
Дебажат всегда одинаково. При любой типизации. Почитай про команду debugger и дебажь как батя.
403 2306596
>>306576
Действительно, в каких случаях Document.getElementById() может возвращать null?
404 2306601
>>306180
Речь не про то, должно работать, или нет, а про то, что ты воспользовался замыканием, сам того не подозревая, перед этим сказав, что легко этого избежишь.
405 2306603
>>306580

>Почитай про команду debugger и дебажь как батя.


Спасибо, испробую.

>>306596

>Действительно, в каких случаях Document.getElementById() может возвращать null?


Так в каких же?

>>306601

>Речь не про то, должно работать, или нет, а про то, что ты воспользовался замыканием, сам того не подозревая, перед этим сказав, что легко этого избежишь.


Не могу понять зачем там замыкание. Мне кажется можно обойтись без него, но пока не понял как.
406 2306615
>>306509
>>306544
>>306578
От души, парни, буду делать.
407 2306661
Посоны, война войной, а дебильные задачи по расписанию. В прошлый раз не ответили, извините, репощу.

Я могу как-то в переменную получить ссылку на "нестандартный" canvas (например, объект канвы/контекста, создаваемый либами типа svgtoolkit, fabric.js или canvas2svg от gliffy), чтобы потом передать созданную переменную с канвой другой либе, и вот эта вторая либа все рисовала в ней, думая что это обычная канва? Такой типа полиморфизм.

НЕ СЕТКУ ПИКСЕЛЕЙ, НЕ КОПИЮ СОДЕРЖИМОГО КАНВЫ и т. д.

Задача: конвертнуть векторизуемые элементы canvas (всякие круги, квадраты, градиенты) в svg не через массив пикселей, а через "парсинг" и "трансляцию" правил рисования канвы в правила рисования svg.

Умеющие такую магию библиотеки требуют, чтобы я рисовал свою канву по правилам канвы, но не в любой канве, а строго в объекте их класса (например, var ctx = new C2S(500,500); для http://gliffy.github.io/canvas2svg/), и мне надо как-то изобразить для этой библиотеки, которая собственно предполагаемую к конвертации канву и рисует (к примеру тот же fabric.js или к примеру не умеющая рендерить svg, только канву https://www.chartjs.org/, или например вот этих парней https://codepen.io/wildminder/pen/wJgbLb), что она рисует на обычной канве, чтобы уже затем успешно конвертировать результат. Если что, исходник canvas2svg
https://cdn.jsdelivr.net/gh/gliffy/canvas2svg@master/canvas2svg.js
На кодепене выше можно поиграться, добавив ее.
image.png346 Кб, 640x446
408 2306674
>>306661

>конвертнуть векторизуемые элементы canvas (всякие круги, квадраты, градиенты) в svg не через массив пикселей, а через "парсинг" и "трансляцию" правил рисования канвы в правила рисования svg.


Бери и конверти, зачем тебе для библиотеки изображать что она рисует на обычной канве? Ну сделай вторую канву, на первой библиотечной ты рисуешь круги и она их конвертит в свг, но одноврменно рисуешь и на второй своей канве для своих нужд. Но зачем?
409 2306681
>>306603

>Не могу понять зачем там замыкание


Чел, ты шиз какой-то, без обид. Тебе указали на медицинский факт - ты хотел избежать замыкания и жидко это не получлось. И ты в ответ нас спрашиваешь "зачем оно там"?
Ну как бы, чтобы работало, не? Это просто показывает очередной раз, что бОльшая часть функций в жиэсе есть замыкания, даже когда вкатыши-диссиденты теории утверждают обратное.

>можно обойтись без него


Без замыкания у тебя получится функция уровня (a,b) => a+b. Ебаться с аргументом обработчика, чтобы получить из него то, что и так доступно из внешнего скопа, никому не уперлось и никто так не пишет.
410 2306687
>>306045
Как кстати такая хуйня назвается? Похоже на каррирование, но там же типа когда несколько аргументов, а остается меньше. А тут один аргумент и всё убирается полностью.
411 2306702
>>306603

> Не могу понять зачем там замыкание. Мне кажется можно обойтись без него, но пока не понял как.



Тебе же написали для чего. Прочитай по слогам:

> Нахуя оно нужно? Тоже просто. Нужно для того, чтобы не срать в общий скоуп переменными size, но иметь к ним доступ для тех ф-ций, для которых эти переменные требуются.

412 2306704
>>306681

>бОльшая часть функций в жиэсе есть замыкания


Правильно говорить функция с замыканием.

>>306687
Не совсем понял о чем ты.

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

>>306681
>>306702
Вы оба сами замыкание не понимаете. Научились только копировать код с замыканиями, а что, зачем, почему и как, вы не понимаете и не знаете.
413 2306708
Про замыкания
http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/#closure
объёмная и сложная, но очень годная выжимка.
Прям ща даже ещё раз перечитаю всю.

алсо
https://www.kinopoisk.ru/film/1162915/

>Старшеклассница мечтает избавить мать от пьющего отчима-абьюзера. Якутская драма о зарождении ненависти


на вечер субботы
414 2306709
>>306704

> Но ведь в замыкании всё наоборот


Нет, не наоборот. Любая переменная находится в определенном лексическом окружении. Либо глобальном, либо локальном. Замыкания находятся в локальных лексических окружениях, недоступных в глобальном скоупе никак иначе, кроме как через ф-цию, на которую они были «замкнуты».

В этом смысл. В глобальном окружении «суслика не видно, но он есть»
415 2306713
>>306704

>Вы оба сами замыкание не понимаете


Но написать обработчик без замыкания почему-то не можешь именно ты, иронично.
416 2306714
тест
417 2306715
>>306709
Ты не понял. Функция с замыканием, это та функция, у которой нет связанных переменных. Все переменные в ее теле не связанные. По простому, это значит, что в эту функцию не передаются аргументы, все переменные берутся из вышестоящего окружения.

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

>>306713
Я пока и не пытался.
418 2306719
>>306708

>объёмная и сложная, но очень годная выжимка


Есть целая книга на эту тему {Вы пока еще не знаете JS} Область видимости и замыкания
На либген есть.
419 2306727
>>306715

> Функция с замыканием, это та функция, у которой нет связанных переменных


Нет. Функция с замыканием это функция с доступом к внешнему скоупу (поэтому все ф-ции в js это ф-ции с замыканием). Есть ли у нее связанные переменные или нет - вообще не важно.
420 2306729
>>306715

>Не правильно когда функция зависит от внешних для себя переменных. Использовать несвязанные переменные нужно осторожно. В функция должна зависеть только от входных данных. Короче, такой способ программирования приводит к бардаку.


Ну так напиши обработчик события без замыканий, посмотрим какой там небардак будет.
421 2306733
>>306715
Вообще тебе стоит определиться со своей позицией.
Ты либо не знаешь, что такое замыкание и зачем оно нужно и тогда тебе пояснят. Либо ты знаешь что такое замыкание и заявляешь, что «оно нинужно». Тогда тебя просто пошлют нах, чего с психом дискутировать.
422 2306738
>>306727
Ты не знаешь что такое замыкание.

Замыкание (англ. closure) в программировании — функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся её параметрами.

>>306729
Обязательно напишу, хотя бы попробую.

>>306733
Я знаю что такое замыкание. Но у меня нет опыта работы с DOM. Я не вижу его необходимости в работе с DOM.

Ты тоже не знаешь что такое замыкание как и он >>306727
423 2306739
>>306727

>Функция с замыканием это функция с доступом к внешнему скоупу


Любая функция имеет доступ к вышестоящему окружению. Будь то функция, в которой она объявлена, или же глобальное окружение модуля. Ты не понимаешь замыкание, да и многие вещи вообще.

>поэтому все ф-ции в js это ф-ции с замыканием


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

Во всех языках программирования функции имеют доступ к вышестоящему окружению. Но это не делает их функциями с замыканием.
424 2306742
>>306738

> Я знаю что такое замыкание. Но у меня нет опыта работы с DOM. Я не вижу его необходимости в работе с DOM.


Ему показали где используется - а он все равно не видит. Охуеть история :D
Ну допустим. Где же тогда, по твоему, нужны замыкания? В дом, как мы поняли, ты считаешь, что не нужны. А где нужны?
425 2306743
>>306739

> Функция с замыканием это функция ссылающаяся на свободные для себя переменные


Ты говоришь слова, значение которых не знаешь. Что по твоему значит, что функция «ссылается» на переменную?
426 2306748
>>306743

>Что по твоему значит, что функция «ссылается» на переменную?


Там же в одном предложении все четко объяснено.

Ссылается это значит использует в своем теле. При этом переменная не является параметром. Он взята из внешнего по отношению к этой функции окружения. Это не обязательно глобальное окружение.
427 2306752
>>306748
Если ты все это понимаешь, то вообще не ясно, как ты не видишь смысл замыкания в мдн примере. И пишешь свою нерабочую версию без функции высшего порядка, возвращая из нее undefined. Ты хоть где-то ранее использовал замыкания?
428 2306757
>>306752
Но ведь функция высшего порядка - архетипичный пример использования замыканий, даже похлеще дёрганья глобала.
429 2306768
>>306752

>без функции высшего порядка


В коде с MDN нет функции высшего порядка. Ты короче плаваешь во всех темах.
430 2306774
>>306768
Убей себя, дебил.
function makeSizer(size) {
return function() {
document.body.style.fontSize = size + 'px';
};
}
431 2306781
Вот я вкатун простой, хочу работать за две еды. Если я возьму рандомные макеты разной сложности, с какого нибудь сайта фриланса например, и исполню их это сойдёт за ПЕТ ПРОЕТЫ?
Этого хватит что бы меня хотя бы поговорить пригласили? Своих идей нет, могу только чужие исполнять.
432 2306782
>>306768
Нет ты.
Функция высшего порядка - это функция, которая принимает или возвращает другую функцию. Это и происходит в примере мдн. Если ты этого не видишь, то даже не знаю чем тебе помочь.
433 2306789
>>306781
Для устройства в гугл - нет, не хватит. Для устройства на работу в какие-нибудь нижние перды - может легко хватить. Тут уже от нижних перд зависит, какие тебе попадутся.
434 2306790
>>306781

>Если я возьму рандомные макеты разной сложности, с какого нибудь сайта фриланса например, и исполню их это сойдёт за ПЕТ ПРОЕТЫ?


Да.

>Этого хватит что бы меня хотя бы поговорить пригласили?


Да.

>Своих идей нет, могу только чужие исполнять.


Да. Идеи не нужны. Научись копировать.
435 2306793
>>306774
>>306782
Затупил, да это ФВП. Все равно не вижу зачем нужно возвращать функцию, если можно выполнить все то же самое в самой функции.
436 2306795
>>306781

>рандомные макеты разной сложности, с какого нибудь сайта фриланса например


В телеге каналов полно, сиди выбирай, намного лучше же верстать то, что понравилось и тема которого интересна.
Верстать сайты с вагинальными тренажерами успеешь в бою
437 2306800
>>306789
Я написал, что работать за две еды желаю, а не в Гугл ну только если когда-нибудь во мне проснется кабанчик
>>306795
Дайте каналы тогда, пожалуйста. И если есть каналы для вкатунов с вакансиями, то и их давайте.
438 2306801
>>306793

>Затупил, да это ФВП. Все равно не вижу зачем нужно возвращать функцию, если можно выполнить все то же самое в самой функции.


В какой функции, наркоман?
439 2306809
>>306793

> Все равно не вижу зачем нужно возвращать функцию


Для чего, по твоему, нужны ФВП? Вот для этого она и используется в примере мдн
image.png115 Кб, 737x855
440 2306812
>>306800

>Дайте каналы тогда, пожалуйста


Чел, ты
441 2306814
>>306812
Да,я. Я даже не знал что в телеге есть поиск.
442 2306830
>>306801
Дураком не прикидывайся

>>306809

>Для чего, по твоему, нужны ФВП?


Для того чтобы оперировать не только примитивными данными, но и целыми функциями.
443 2306832
>>306830

>Дураком не прикидывайся


Прикидываешься тут дебилом ты, так как пиздишь про обработчик без замыканий, но так и не смог его высрать.
444 2306837
>>306832
Ты делаешь вид, что понимаешь что-то, а сам только копипастить можешь. Если ты понимаешь зачем там возвращать функцию, то объясни зачем. Можешь? Сомневаюсь.
445 2306840
>>306800

> Я написал, что работать за две еды желаю, а не в Гугл


Все будет зависеть от твоих зарплатных ожиданий. За 30к устроишься почти наверняка. Если фартовый и/или харизматичный, то есть шанс и на 60к залететь. Больше - уже вряд ли. Если только совсем повезет.
446 2306846
>>306840

>За 30к устроишься почти наверняка.


Что нужно уметь для этого? Можно ли на удаленку?
447 2306847
>>306830

> >Для чего, по твоему, нужны ФВП?


>Для того чтобы оперировать не только примитивными данными, но и целыми функциями.


Нет, не для этого. Они нужны (среди прочего) для того, чтобы реализовать отложенный вызов. В примере с мдн это и происходит. ФВП возвращает функции, которые будут отложенно вызваны в момент обработки события с параметрами, замкнутыми в них.
448 2306852
>>306846
Это тебе расскажут уже на месте, я не нанимаю)
Как повезет. Может будут просить просто говнокодить на жкверях, может еще будут просить шкафы из кабинета в кабинет переставлять. Как добазаришься короч.
За 30к имхо многого просить от работника грешно. Не вредит - уже хорошо лол
449 2306864
>>306847

>Они нужны (среди прочего) для того, чтобы реализовать отложенный вызов.


Это частный случай оперирования целой функцией вместо примитивных данных.

>ФВП возвращает функции, которые будут отложенно вызваны в момент обработки события с параметрами, замкнутыми в них.


Здесь ключевое не замкнутые переменные, а отложенный вызов. Как ты узнал, что будет отложенный вызов? Где об этом написано, что в таких случаях это происходит?
450 2306866
>>306837

>Если ты понимаешь зачем там возвращать функцию, то объясни зачем.


Я уже обьяснил, так твой твой обосрамс засчитан.
451 2306868
>>306864
Дебил, прочитай уже сигнатуру Event.addEventListener() и хватит тут срать в тред своей тупизной.
452 2306877
>>306866

>пук



>>306868

>кукарек



В общем, как и ожидалось.
453 2306888
>>306877
Да, твой жиденький обосрамс ожидаем.
454 2306894
>>306864

> Как ты узнал, что будет отложенный вызов?


Какой-то странный вопрос. Есть событие, которое ты хочешь обработать. Если оно произойдет - будет и вызов. Если не произойдет - не будет. Все просто.
455 2306897
>>306894
Но там нет колбека.
456 2306909
>>306897

> Но там нет колбека


Он там есть. Неявно в атрибуте onclick и явно в методе addEventListener. Любая обработка события использует именно колбеки.
1530890160203.png65 Кб, 713x483
457 2306991
Объясните популярно как проверить имплементирует ли некий объект интерфейс?
Я правильно понимаю что тайпскрипт сам так не умеет и нужно писать функцию с is, которая вручную будет проверять че там и как, а потом возвращать булеан, типа проверило?
458 2306993
Антуаны, тупой вопрос. Есть 2 страницы, которые представляют собой 2 разных компонента. Нужно получить данные по API. Ествественно, URL разные.
Получается, мне для каждого компонента надо писать componentDidMount и в нем заново писать запрос? Или это бред?
459 2306995
>>306991
То есть это конечно работает, но чет оче громоздко выглядит. Или это типа так чтобы компилятор мог легко откинуть всё тайпскриптовое и не добавлять проверку сам?
460 2307016
>>306991
>>306995
Все верно. Компилятор и не будет добавлять никаких проверок, потому что их слоган "мы не будем добавлять никаких проверок".
Чтобы не делать это вручную можно взять либу типа runtypes
461 2307020
>>306991

>Объясните популярно как проверить имплементирует ли некий объект интерфейс?


Писать джейсон-схему для объекта и по ней валидировать объект.
>>306993
Бля я в шоке от этого вопроса. Нет конечно же, загружай вообще всё при открытии любой страницы.
>>306995
Имплементация интерфейса не про валидацию в рантайме. Конкретно "имплементация интерфейса" существует только в контексте классов и тайпскрипт тебя будет по рукам бить если твой условный class Zalupa implements IZalupa {} неправильно реализует конструктор для интерфейса.
А за пределами классов это более гибкая замена жсдоковским тайпдефам.
462 2307030
>>307020

> джейсон-схему


Чо это? Типа
{
zalupa: function (value){return isZalupa(value),
huinya: function (value){return isHuinya(value)
}
?
463 2307038
>>307030
Нет, вот это:
https://json-schema.org
464 2307202
>>306204
Понял. А что должно возвращать по идее?
465 2307204
>>307202
Ну и вопросы у тебя. Функция должна возвращать то, для чего ее написали и для чего собираются использовать. Если ее используют для генерации колбэков - очевидно, она должна возвращать функции. В примере мдн она должна возвращать функции, что она и делает.
466 2307214
>>307204
Почему она должна возвращать именно функцию? Ты гонишь не по теме.

<button type="button" onclick="document.getElementById('id1').style.color = 'red'">
Нажми меня!
</button>

Вот рабочий код. Есть событие, оно меняет стили. Не нужно никаких колбеков, никаких возвратов функций. Даже объявлять или вызывать отдельную функцию не нужно. Так теперь объясни почему нужно возвращать функцию, фанатик?
467 2307217
>>307214
Не, не фанатик. Просто знаю матчасть.
Ты не знаешь как работает инлайн атрибут событий в теге. Когда ты присваиваешь инлайн-атрибуту выражение, оно под капотом оборачивается в функцию, которая будет вызвана при обработке данного события. Если же назначать обработчик не в инлайне тега, а в свойстве объекта - там ничего дополнительно не происходит и сразу присваивается ф-ция.

Подробнее можешь почитать, например, у Кантора.
468 2307227
>>307217
Почему так не работает событие? При загрузке страницы функция срабатывает автоматически, а при событии не срабатывает. Ее можно выполнять из консоли, все будет работать, но не в событии.

function test(size) {
document.body.style.fontSize = size + 'px';
}

document.getElementById('test').onclick = test(20);

Если же изменить функцию, чтобы она возвращала другую функцию, то событие работает.

function test(size) {
return function () {
document.body.style.fontSize = size + 'px';
}
}
469 2307234
>>307227
Потому что ты плохо учил программирование и невнимательно читаешь ответы, которые тебе пишут.
Еще раз - в поле onclick должна храниться функция. Эта функция будет автоматически вызвана при возникновении события. Если вместо функции в onclick записать ее вызов, то в onclick, что очевидно, будет сохранено значение, которая эта функция возвращает. Поэтому в первом случае у тебя ничего не работает, а во втором работает.
Вообще же, это весьма детские вопросы. Все они пропадут, как только почитаешь какой-нибудь учебник.
Вертска 470 2307252
Вкатываюсь в JS и, естественно, начинаю с верстки.
Прошел 2 темы пока что в freecodecamp в Responsive Web Design
Поделился с другом, который сам вкатывается, но уже больше 7 месяцев, говорит, что вертска на фрикодкэмпа устарела и смысла сейчас там ее проходить нет. Так ли это и стоит ли забить на фрикодкэмп и осваивать другие источники?
471 2307275
>>307234

>в поле onclick


В свойстве

>Еще раз - в поле onclick должна храниться функция.


В обоих случаях у меня функция.

>>307234

>Если вместо функции в onclick записать ее вызов, то в onclick, что очевидно, будет сохранено значение, которая эта функция возвращает.


У меня в обоих случаях вызов присвоен onclick. Просто не дописал такую же строку document.getElementById('test').onclick = test(20); для второй функции.

Разница в этих двух функциях в том, что первая просто присваивает css атрибуту значение, а вторая возвращает функцию, которая присваивает css атрибуту значение. Непонятно почему первая не работает на событии, а при принудительном вызове работает.
472 2307276
>>307252

>говорит, что вертска на фрикодкэмпа устарела


Не слушай умника. Таких пол России. Диванные эксперты.
473 2307278
>>307275

>У меня в обоих случаях вызов присвоен onclick. Просто не дописал такую же строку document.getElementById('test').onclick = test(20); для второй функции.


Ты просто дебил блять, пиздуй уже на завод.
474 2307291
>>307275

> В обоих случаях у меня функция


Нет. Учи матчасть, чем отличается функция от ее вызова. Это снимет твой вопрос.
475 2307294
>>307252
там бета версия этой темы есть, вот там не устаревшая, можешь ее попробовать, если ты обычную проходил
476 2307300
>>307291
Не тупи. Вот 2 функции

function test1(size) {
return document.body.style.fontSize = size + 'px';
}

function test2(size) {
return function() {
return document.body.style.fontSize = size + 'px';
}
}

Вот 2 вызова на событии

document.getElementById('test').onclick = test1(20);

document.getElementById('test').onclick = test2(20);

Почему первая не работает на событии? Он выполняется при загрузке страницы или если вызвать вручную в консоли.
477 2307305
>>307300

> Не тупи


> Почему первая не работает


Потому что ты не знаешь самых базовых вещей. Не знаешь настолько, что даже не понимаешь ответы на свои вопросы. Читни кантора, рили, сразу попустит
478 2307307
>>307300

>Не тупи. Вот 2 функции


Тупишь тут ты, уебан.
Что возвращает первая функция?

>Вот 2 вызова на событии


Это не вызовы.
1604524061688.png12 Кб, 463x210
479 2307322
>>307300
Чел, посмотри что возвращает твои функции и какой из результатов больше похож на что-то, что должно стоять в onClick. Напиши вот это в консоли и помедитируй над результатами.
480 2307328
>>307322
Я не знаю что должно быть в onclick. Первая функция не возвращает, но она переписывает css. Вторая возвращает функцию, которая переписывает css.
481 2307329
>>307328

>Первая функция не возвращает


То есть возвращает, но я пробовал без возврата просто переписывать css. На событии не срабатывает, а срабатывает при загрузке страницы.
482 2307346
>>307328

>Я не знаю что должно быть в onclick


https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onclick

>Первая функция не возвращает, но она переписывает css.


Она не переписывает css, она присваивает значение ключу style элемента body.
483 2307357
>>307328

> Я не знаю что должно быть в onclick


Функция, которая будет вызвана если случится событие.
484 2307365
>>307346

>она присваивает значение ключу style элемента body


??? Изменяется font-size тега body.

>Она не переписывает css


Почему это? Значение меняется, шрифт увеличивается. Только это происходит не по событию клик, а в момент загрузки страницы.

>>307357

>Функция, которая будет вызвана если случится событие.


Значит у меня все правильно. Почему тогда не работает?

document.getElementById('test').onclick = test(20);
485 2307367
>>307328

> Я не знаю что должно быть в onclick


Что мешает узнать? Мамка запретила?
486 2307397
>>307365

>??? Изменяется font-size тега body.


Показывай тогда как там у тебя в "стилях" что поменялось.

>Почему это? Значение меняется, шрифт увеличивается. Только это происходит не по событию клик, а в момент загрузки страницы.


Да что ты говоришь?

>Значит у меня все правильно. Почему тогда не работает?


Что возвращает твоя функция, уебан?
487 2307404
>>307397
Ну на смотри https://jsfiddle.net/seym8pzt/
Если кликнуть run, то сработает моя функция test. Если потом нажать 12, 14 или 16, то сработает событие с функцией makeSizer. Функция тест рабочая, но не работает на событии, а только при загрузке страницы. Все здесь орали, что она не может работать. Вот смотрите, она работает, шрифт становится 30px если нажать run. Она не возращает функцию, а возвращает напрямую изменение атрибута css.
488 2307406
>>307367
Уже узнал, у меня там всё правильно.

document.getElementById('test').onclick = test(30);
image.png49 Кб, 1333x419
489 2307467
>>307406
Где функция, dolboeb?
490 2307471
>>307406
Good for you
491 2307478
>>307404
Смотри, вас тут двое - ты и жс. И кто-то из вас тупой пидор. Если ты говоришь, что у тебя все правильно, значит можешь расслабиться - тупой пидор тут жс, а ты мамин пирожочек
Изи
492 2307495
>>307478
Дуру не гони. В onclick должен присваиваться вызов функции? Да, и у меня в этом все правильно document.getElementById('test').onclick = test(30);

test(30) это вызов функции и эта функция корректно работает без события. Так что научись выражать свои мысли. Если ты хотел что-то другое сказать, то говори на нормальном языке.
493 2307500
>>307495
В onclick присваивается функция, пидор.
494 2307504
>>307495
Че ты меня уговариваешь, я на твоей стороне. Ебучий жс говно в жопу заливает, очевидно же. Держись брат
495 2307523
>>307467
Алё, Вася. Я не знаю почему после присваивания document.getElementById('test').onclick = test(30) в document.getElementById('test').onclick оказывается null. Это не ко мне вопрос. Если в консоли ввести document.getElementById('test').onclick = test(30), то увидишь, что возращает "30px" и при этом произойдет увеличение шрифта на странице до этих самых 30px.

>>307500

>В onclick присваивается функция


Ещё один. А это по твоему что? document.getElementById('test').onclick = test(30)
Это присваивание результата функции. Вы короче сами не шарите вообще.

>>307504
Ok. Прорвёмся!
496 2307533
Испытываю дежавю, кажется, в каком-то соседнем треде тоже недавно видел подобный жыр тупостью.
497 2307547
Функция test(30) возвращает "30px". Как может после присваивания её вызова в document.getElementById('test').onclick = test(30) возвращаться null? Что за тупость?
498 2307550
>>307547
UPD. Есть подозрения, что в onclick нужно присваивать не просто вызов функции, а ссылку. Но этого местные фанатики конечно же не знают.
499 2307559
>>307533
Соглы, выглядит уныло. Конечно бывают совсем отшибленные пОциенты, но с ними обычно интересней
500 2307562
>>307523

>Если в консоли ввести


Так мне и тебе не надо чтобы в консоли, надо чтобы по клику
501 2307563
>>307550

> Но этого местные фанатики конечно же не знают


Куда уж им. Слава богу ты с нами и в случае чего сможешь всем пояснить!
502 2307566
>>307495
Функция и вызов функции это разные вещи если что.
image.png28 Кб, 1261x165
503 2307569
Хм
504 2307573
>>307569
Ой, что это
505 2307575
>>307569
Какое хм? Там всё прекрасно написано
506 2307578
>>307569
Какое хм? Там всё прекрасно написано
мимо
507 2307579
>>307547>>307550
Кстати, на этом примере полностью показано, как нас зомбируют по теме js. До этих ваших v8 все программировали на самом правильном движке js - IE5.5. А нам говорят, что мы научились программировать только с приходом node и нынешних браузеров. Только у IE5.5 был js, а все остальные программировали на FORTRAN.
Я поэтому и говорю, что с присваиванием вызова функций нас опять обманули. Потому что если вы, как программист, то вы должны знать присваивание вызовов функций древнего js:
void function{} with typeof === document new this return
Так присваивали наши предки! А когда нам придумал гугл с эплом js липовый, с этого началась подмена программирования. Фальшивый js. На нем программировать - только обманывать и ограблять DOM.
508 2307583
>>307579
Дед, таблетки
509 2307588
>>307559
Ну тут-то начиналось все за здравие, а потом, не вынеся бремени задачи "напиши обработчик без замыкания", он решил скатить все в клоунаду. Но позора ему все равно не избежать, анонимус все помнит, у меня все скриншоты треда нотариально заверены.
510 2307589
>>307583
Ты че, пес, я в самом расцвете сил, не нравится про программирование - могу про историю рассказать. А вот ты знаешь, например, что Украину Ленин изобрел?
511 2307591
>>307588
Может еще чего придумает, подождем посмотрим
image.png20 Кб, 590x590
512 2307592
>>307589
Лучше бы твой Ленин commi js изобрел, чтобы все были равны
513 2307593
>>307589
Двачую адеквата
Ленен изобрел украину и жс
Поэтому все так как есть а будет еще сильнее
514 2307594
>>307579
Липовый дед спалился по строгому сравнению в выражении.
515 2307599
>>307594
То, что ты не узнал оператор битовой деструктуризации события, говорит исключительно о том, что тебя зомбировали, а ты и не заметил.
Ну ничего, мне больше void-ушек достанется.
516 2307605
>>307592
Вот да, налицо неразрешимые противоречия js. Для построения комми-js предлагаю пока временную меру в виде
#define false true
, тогда принципы всеобщего равенства будут достигнуты в масштабах отдельного движка. И назовем это социал-джаваскрипт.
517 2307612
>>307566
Я то знаю, но ты определись, нужно присвоить функцию или вызов.
201907111919IMG5252.JPG155 Кб, 960x960
Рейт резюме 518 2307615
С таким резюме уже можно стучаться на разные вакансии джуна или стажера, или пока рано и нужно сделать что-то получше?

https://vertically-challenged.github.io
519 2307616
>>307588

>Ну тут-то начиналось все за здравие, а потом, не вынеся бремени задачи "напиши обработчик без замыкания", он решил скатить все в клоунаду.


Я сделал. В этом примере без замыкания https://jsfiddle.net/mxa7d4uo/1/
520 2307617
>>307615
Задачи с какой то книги или сам придумывал?
521 2307618
>>307616
Как это без, если с замыканием.
Что тут происходит?
мимо
522 2307620
>>307618
Пчел не может в сигнатуру ивент листенеров, а насрал в жопу джавакрипт.
523 2307621
>>307617
Сам, что в голову приходило, то и писал
524 2307622
>>307615
Чел, может ты уже попробуешь вместо того, чтобы спрашивать, готов ли ты?
525 2307623
>>307622
Сам я уверен, что совсем не готов, но вдруг кто-то скажет, что уже и с этим можно, тогда бы я попробовал
526 2307624
>>307618

>Как это без, если с замыканием.


Это не замыкание. Просто анонимная функция.

document.getElementById('test').onclick = function() { document.body.style.fontSize = '30px'};

>>307620

>ивент листенеров


Какая взаимосвязь?
527 2307625
>>307620

>Пчел не может в сигнатуру ивент листенеров


Я смог. Потому что можно функциональное выражение. Это легально. Вот и доказательство, что можно без замыкания. Шах и мат!
528 2307628
>>307623
Если ты уверен, что не готов, значит у тебя есть четкое представление, что делать, чтобы стать готовым. Следовательно, делаешь все, чтобы стать готовым.
Но скорее всего это просто самоедство, которое в случае успешного устройства на работу перейдет в стадию вечного синдрома самозванца. Короче таблетки прими
529 2307629
>>307624
А если десять колбэков нужно будет навешать, будешь десять функций писать? И кстати я не вижу document в параметрах твоей функции.
530 2307632
Нормально что в проекте на гитхабе будет лежать апи ключ? Я не хочу пока бэкэнд пилить.
531 2307636
>>307624

>Это не замыкание. Просто анонимная функция.


>function makeSizer(size) {


> return function () {


> document.body.style.fontSize = size + 'px';


> }


>}


Сайз не захвачена, понял
532 2307653
>>307628

>четкое представление, что делать, чтобы стать готовым


А что делать, если вообще не понятно какой уровень требуется, чтоб считать себя готовым? Что если пройтись по собеседованиям и там спросить какой уровень требуется для того, чтоб взяли работать? Ибо тексты вакансий нихуя не дают инфы из-за того, что в абсолютном большинстве случаев просто навалено дохуя технологий , и если пытаться освоить все, то ты должен в домашних условиях стать фуллстэк сеньором.
533 2307656
>>307636
В предыдущих сериях уже определили, что поциент не понимает, что такое замыкания и даже глядя на него в упор не сможет его увидеть
534 2307659
>>307632
Давай ты ключик пока подержишь в .env файле тогда
535 2307662
>>307653

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


Именно это грамотно будет, когда тебе при отказе дадут фидбек, чего не хватает в знаниях, подтянешься. Просто еще же и компании разное хотят, где-то пролезешь, где-то нет.
536 2307666
>>307579

>void function{} with typeof === document new this return


Между прочим, довольно складная считалка, для распределения тасок между фронтанами самое то.
537 2307671
>>307659
Это конечно можно, но мне же потом на гитхаб пагес это заливать, там то он один хуй будет виден.
538 2307677
>>307671
Положишь ключик на страницу СИКРЕТИКИ на гитхабе.
Естественно его будет видно в нетворке, но хотя бы вид то надо сделать что ты знаешь что делаешь
539 2307682
540 2307777
>>306674
Так я-то откуда знаю, какая команда подается первой канве? Мне нужно сконвертить нарисованную либой канву в свг в случаях, когда сама либа этого не умеет делать. Есть другие способы конвертации произвольной канвы в векторный (!) свг? Не конвертация массива пикселей, а в настоящий как угодно скалируемый свг?
541 2307790
>>307777

>Так я-то откуда знаю, какая команда подается первой канве?


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

>в случаях, когда сама либа этого не умеет делать.


Если не умеет, значит возвращает ошибку, детектишь ифом и передаешь рисунок в другую либу, если не получится, в третью и тд, рисунок хранится отдельно от всех либ.
542 2307850
>>306661
Все твои либы принимают canvas/context. Просто передаешь в них свой специальный канвас, проблемс?
543 2307986
ПЕРЕКАТ >>2307985 (OP) ПЕРЕКАТ >>2307985 (OP) ПЕРЕКАТ >>2307985 (OP)
544 2319571
>>307850
>>307790
КАК? Можете пример на жсфиддле или кодепене кинуть? Пробовал, не получается нихуя. Пишу в удаленном треде
545 2409725
>>305662
Тебе никто и никогда не сможет объяснить что такое замыкания в ЖС, это уже стало чем-то типа мема. Можешь в каждом треде об этом спрашивать хоть до тепловой смерти вселенной
Тред утонул или удален.
Это копия, сохраненная 5 августа 2022 года.

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

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