Это копия, сохраненная 11 сентября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в Ад.
Для программирования на HTML https://jsfiddle.net/
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: что я хочу получить, что я для этого делаю, что я вместо этого получаю. Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Руководство для вката:
https://pastebin.com/9yRADC0s
Как к такому типу селекторов [class*=""] добавить :hover и прочие псевдоклассы?
Так и добавить
https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
div:not([lang]) {
font-style: italic;
}
У вас даже намерения несерьёзные. У вас нет ни заурядной уже вышки (что бы тут не кудахтали про ее нинужность другие вкатыши вам), ни даже какого-нибудь сертификата курса. Вы же нищие в большинстве своем и на курс у вас денег не хватило, спиратили небось, но кого вы тут хотите обмануть, без взаимодействия с преподавателем эти курсы ничто. Ваши знания HTML, CSS и JS только кажутся существующими, но без преподавателя это не остаётся в голове. Сейчас в вакансиях часто просят сертификаты о курсах с хотя бы базовой вёрсткой. И как вы собираетесь конкурировать с теми, кто потратил 15к за него и имеет этот сертификат + вышку?
Забейте, рынок перегрет, и это правда.
Мимо senior frontend dev
Зацените исходники. Уже вбрасывал раньше. Запилил рендеринг на стороне сервера и хуки вместо классов
https://github.com/vlr-hub/pricing-tools
Блядь, да во фронтенд любой даун вкатиться может. Все эти JS, HTML, CSS и прочая фронт-залупа просто в обучении и не требует охуительно развитого интеллекта.
Совет ньюфаням:
Если ты тупой как пробка, но хочешь в программирование и при этом еще и зарабатывать нормально, не думая вкатывайся во фронтенд.
Мне нужны псевдоклассы, а не атрибуты.
Ты в value передал объект и рендеришь его.
>hover
>var div = document.getElementsByTagName("div")[0];
>var style = window.getComputedStyle(div, "hover");
https://stackoverflow.com/a/1285212/2337281
>>680330
>This won't work, because getComputedStyle expects a pseudo-element as the second parameter
сорян, не посмотрел, не работает это решение
судя по всему :hover только так https://stackoverflow.com/a/6407021/2337281
тут еще глянь https://medium.com/how-tos-for-coders/https-medium-com-kaushalshah1307-get-pseudo-elements-using-javascript-b64c88a96c46
Реакт-редукс+thunk стек.
В апи для запроса объектов нужно указать рэнж, например 0-16, чтобы получить первые 16 объектов. Поэтому в экшене за запрос передаю параметр из стейта counter, который следит за индексом последнего объекта.
Типа
const getBrarishki = (counter, step) => { вся хуйня }; После выполнения запроса этот экшон диспатчит изменения счетчика.
Для первоначальной загрузки объектов использую useEffect, где вызывается функция getBratishki(counter, step), counter и step в этом случае берутся из пропсов, куда приходят через connect()().
-------------------
Суть проблемы - сейчас у меня в зависимостях useEffect стоит пустой массив, чтобы срабатывало только после маунта компонента. Реакт ругается, мол добавь counter в пропсы, че ты епта. Но если его добавить, useEffect залупливается, потому что getBratishki обновляет counter, а значит useEffect срабатывает снова.
Как можно пофиксить это? Мож я с архитектурой проебался?
Да, я тоже натыкался на него, но немного не вдупляю - что оборачивать в него - сам экшон? Прям в креаторе?
так вот интересует вопрос: какими штуками такое делается? не голым жсом же.
пробовал pjax jquery - выходит ебаная рваная хуита.
Там Вуе стоит, он и делает всю работу.
Это по сути просто табы. А как их сделать - сразу все грузить или подгружать по клику, это дело десятое. Можно хоть на чистои ЖС запилить, хоть на реакте, хоть на чем.
Страница на гите с прикрученным доменом от рег ру
>>680552
да проблема только в том что не могу я на этот ебучий проект заказчика такую громоздкую хуйню как фреймворки подключать, вот и все. поэтому и сижу изъебываюсь
>>680551
хорошо. то есть мне стоит написать новый контроллер который будет работать с моделью и аякс запросами все это реплейсить чтоли? стандартный контроллер рендерит мне полностью всю страницу и возвращает ее. такой движок у cms.
да чего ты паришься, если ты на ваниле пишешь. Сделай табами, епта. Получаешь сразу все варианты товара, складываешь фотки и описание комплектами друг под друга, по клику на кнопку показываешь нужный комплект, остальные скрываешь.
Решил эту залупу. Оказывается трабл был вот в этом. Без деструктивки не работает.
а нет, хуйня полная, наебал. Парадокс в том, что если законсолить провайдер, то он все знает. А вот useContext нихуя не работает. Он просто не знает че ему делать и рушит код
все я до конца разобрался. Я конечно знатно гавна похавал. Век живи, век учись. Косяк был вот тут блять (выделил строчку). Я пытался вывести объект и не знал, что объект нельзя вывести таким образом.
>Сейчас в вакансиях часто просят сертификаты о курсах с хотя бы базовой вёрсткой.
Шиз из /wrk/ опять подал голос.
Сертификаты это наоборот пунктик, по которому отсеивают вкатышей.
github gist
Привет, аноны. Кто то знает подробный и годный гайд по RXJS. Если будет с примерами на Ангуляр то вообще отлично, но в общем это не принципиально.
Я походу тупой, и у меня если нет четкого гайдлайна, то вообще ничего не выходит. Я по отдельности все понимаю, а в общую картину это не складывается
Аноны, как называются такие тренды в веб-дизайне. Почему он такой хуевый и ебущий глаза?
Что со старого моника, что с телефона, что с большого телевизора.
Что не так с этими ебаными шрифтами???
Зачем ебашить такой контраст от белого до нахуй черного?
Видел много подобного, но вот что смог по памяти найти.
Типо, чтоб можно было бы где-угодно запустить консоль, прописать в ней "node scriptname.js" и скрипт запускается?
Так это типичный результат работы алгоритмошизика, которых отбирают на фронт кручением деревьев.
НУ такое, я сразу с TypeScript и ангуляра начинал, JS по ходу подтягивал, не особо на нем останавливаясь. Для сайтиков хватало, а вот теперь серьезный проект пилю, и вот стало не хватать.
Дебаггером лисы дев эдишон
>по отдельности все понимаю, а в общую картину это не складывается
>НУ такое, я сразу с TypeScript и ангуляра начинал,
тайп же коньпилируется в жс все равно, не перепрыгнуть сразу вот так)))))
А так основы важно знать, иначе понимания не будет что происходит на фреймворке. freecodecamp или w3schools несколько повторений.
>>681715
Необходим.
Выбирай https://github.com/gothinkster/realworld#frontends
>>681827
Несколько раз повторять, с 21 раза наверняка запомнится и поймешь что к чему.
Ну если ты даже CSS не в состоянии осилить, то о каком фронтенде вообще можно говорить?
Не, ну прям такие основы я знаю. FreeCodeCamp полностью прошел еще пару лет назад, когда к собесам готовился. А вот книжку Фленагана забросил где то после сотни страниц. В общем у меня с js не настолько плачевная ситуация, но суть в том что js код на проде я никогда не писал, хз, влияет ли это на понимание или нет
>FreeCodeCamp полностью прошел еще пару лет назад
хз тебе лучше знать, если действительно уверенно помнишь основы.
На
> что js код на проде я никогда не писал
На ангуляре у тебя что-то получается и понимаешь что происходит?)
Если да то просто посмотри example app's нужной тебе либы, посмотреть методы применения, на ютубе туториалы на английском неплохие бывают.
Бамп вопросу.
>Пишу на классах и не знаю как это сделать, кроме того, как переделать и сделать общего родителя в котором будет состояние левого списка.
Что значит статическое добавление элемента?
То есть хуки учить а потом туду доделывать?
>Что значит статическое добавление элемента?
Ну просто через попап вводишь название и он добавляется в разметку
>На ангуляре у тебя что-то получается и понимаешь что происходит?)
Мне казалось что я все понимаю. Не припоминаю что бы я не мог сделать задачу, все вроде с помощью гугла и какой то матери решалось. Перешел на другую работу, и тут нужно было обновить проект с 4 ангуляра до 9 (а может и до 10 уже, смотрю там некоторые пакеты уже ставятся 10 версии). Ну и в общем при переходе с 5 на 6 версию RXJS есть куча depricated методов. Ну и я подумал, ну хули, сейчас будем пилить, список методов то известен. А оказалось, что я нихера не понимаю зачем эти методы нужны. Ну да ладно. Я пока взял курс на Udemy, Reactive Angular Course, попробую за выхи его глянут, может прояснится что то.
Можно и на классах, но зачем?
Подумай лучше над тем, что ты хочешь видеть в итоге. Мб стоит задуматься о подключении базы данных или хотя бы localStorage, чтобы не хранить в состоянии вообще все свои данные (нахуя?)
>c 5 на 6 RXJS
Там же по сути теперь все в .pipe() пихать нужно, ну и некоторые depricated, да.
По гайдам по rxjs гугли angular-university, todd moto (ultimatecourses), frontendmasters возможно тоже чето есть, не помню уже. Первых двух должно хватить.
Собственно хотел сделать querySelectorAll столбиком для удобства занесения новых элементов...
Потому что конкатенация в первом варианте не приводит к строке во втором варианте.
И как ответить на вопрос вида "почему сложение "abc" c "bca" не приводит к "abc bca", а приводит к "abcbca"?"
попробуй в скобочки взять выражение с +
Да что же вы беспомощные такие? В гугле и ютубе уже только макака не написала туду на реакте, в т.ч. на хуках.
>Просто в реакт документации все на классах примеры показаны
А это что?
https://ru.reactjs.org/docs/hooks-intro.html
Вот я и спрашиваю это у того долбоеба. Откуда там пробел должен взяться между .сlass# и .class# чтобы получилась строка как во втором варианте.
бамп вопросу
express.js?
я конечно не экперт, но попробуй ставить запятую за апострофами.
Пацаны, насколько стар и неактуален AJAX? Я-то никуда не вкатываюсь, просто пилю для себя сайт потихоньку, надо закинуть минимальный js-код для форм, чтобы rest-запросы отправлялись без перезагрузки страницы, AJAX вроде то что надо мне, но потом я прочел что это весьма старая технология. Что сейчас в основном юзают вместо него?
function findFibo(i) {
var value = 0;
if (i < 1) return 0;
if (i == 1) return 1;
return findFibo(i-1) + findFibo(i-2);
}
console.log(findFibo(i1));
}
Фигурная скобка самом низу случайно приклеилась.
Бамп
И что тебя не устраивает?
>надо закинуть минимальный js-код для форм, чтобы rest-запросы отправлялись без перезагрузки страницы
C Event.preventDefault() можно хоть чем отправлять без перезагрузки, по крайней мере для дефолтных событий, если я тебя правильно понял.
>Да и в целом лучше будет самому накатать, т.к. в дальнейшем еще придется прибегать к жсу тот же плеер красивый на сайт надо запихнуть, чат написать и т.д.
Читай тогда Кантора.
WebSocket ?
Копипаста со StackOverflow
Прямого аналога Ajax как отдельной технологии пока что не существует.
Но, важно понимать, что то, что раньше делалось исключительно с помощью Ajax - сейчас можно сделать с использованием других технологий.
Например, раньше типичный чат или динамически обновляемый контент (первые всплывающие сообщения в вк работали с использованием ajax) на странице делался только с помощью Ajax (по кулдауну дергался сервер, что создавало неимоверную нагрузку), сейчас это намного быстрее (как в плане скорости разработки так и в плане быстродействия написанного), качественнее и проще сделать с помощью WebSocket. Советую Вам почитать о веб-сокетах, а раз Вы пишите на PHP попробуйте Ratchet.
Понимание работы и представление о том, что можно сделать с помощью websocket'ов значительно поможет Вам не использовать ajax, где это можно легче сделать на сокетах.
Чтобы другие могли нагляднее строить ракеты, удобнее совершенствовать медицину, смотреть рекламки о приближении бессмертия
>Я мог бы строить ракеты, совершенствовать медицину, приближать бессмертие
При потолке ЗП в 3 МРОТа. Ракетчикам вообще зп месяцами задерживают.
>но я трачу свою жизнь на жс фреймворки.
Пыночек порешал. Зайди что ли в /wrk/, посмотри какие там зп в профильных тредах и сравни условия с крудошлёпством.
А как определил, что не тупой? Мамка сказала, самомнение? Программирование - это так или иначе про алгоритмы. Да, на начальных позициях у фронта их мб и будет немного, но если хочется быть именно программистом, придётся ими заниматься. Если совсем не нравится, смотри смежные области. Может, UI/UX-дизайн.
>>682495
Это говно, а не решение. Да, рекурсия, но корявая рекурсия для данного случая. Уже к 50 будет тормозить, как сука, а на слабой машине вообще не посчитает. Надо либо обычным циклом, либо мемоизацией. Рекурсию тоже можно, но не так.
>>682561
Пока ты просто ноешь на борде. Действительно хотел бы строить или совершенствовать, уже бы делал это.
для кармочки
А как вообще исторически сложился хейт в сторону фронтенда? На данный момент минимальным набором для вката является js, css, html, хотя бы (!) один из фреймворков (Angular, React, Vue), знание основ бека, т.е. умение запилить простой CRUD с авторизацией на ноде, знание БД. Знание сетей, алгоритмов и английского нужно почти любой нормальной компании.
> в сторону фронтенда?
>знание основ бека,
Так frontend или fullstack? В нормальной компании каждый занимается своим делом, если конкретно фронтындырщик то это просто нашлепать текст и формочки под api.
> т.е. умение запилить простой CRUD с авторизацией на ноде, знание БД
Если уверенное знание js - особо нет проблем, глянуть туториалы и все.
Понять ответ на этот вопрос можно только после изучения языка программирования, а не прокладки между хтмл и браузером для создания динамических страниц. Только тогда ты начинаешь осознавать как всё работает и как всё устроено, код становится кодом, а не магическими заклинаниями, которые просто дают результат.
Это я говорю как человек, который начинал с JS
Я начинал с плюсов, если не брать в рассмотрение паскаль. Есть свои нюансы, но не более
Начинать можно по разному. На плюсах макак еще больше, чем на жс, потому что их в любом пту/вузе суют, в итоге порождая армии долбоебов, которые даже жопаскрипт освоить не в состоянии, но при этом выучив 1/100 базового синтаксиса плюсов, мнят себя программистами и думают, что их лабы## являются подтверждением.
Я начинал с жс, могу только сказать, что он замедлил мое вкатывание в нормальный язык, потому что пришлось всё в голове перестраивать и осознавать, что жс это не про программирование, а про дерганье готового api.
>Что лучше, Angular, React, Node.js или Vue? Или у них всех разные задачи?
>Или у них всех разные задачи?
Да
React это frontend
Node.js backend
Angular middleware
Vue frontware
>Что лучше, Angular, React, Node.js или Vue? Или у них всех разные задачи?
Фронтенд фреймворки.
Что "лучше" глупо спорить, каждый из них выполняет задачи, со своими особенностями. Вакансии глянь, там увидишь что востребованее.
На пиках код этих хуёвин.
После плюсов ещё изучал питон, а только потом JS. Из рекомендаций хз. Чуть больше углубиться в описание сложных тем на learn JS, тогда поймешь что к чему.
Ды собственно писал что-то серьезнее лаб, но все равно не могу понять превосходства одного языка с разными задачами над другим
>? В нормальной компании каждый занимается своим делом, если конкретно фронтындырщик то это просто нашлепать текст и формочки под api.
Ничего подобного кстати. Во многих компаниях есть очень четкий тренд на создание универсальных команд, внутри которых люди делятся компетенциями, то есть конечная задача -сделать всех фулл-стаками условными.
>>683023
https://devcenter.heroku.com/articles/node-websockets
>У тебя жизофрения? Планируешь делать сайты, но не вкатываться в айти? Иди шлёпай говно на тильду/вордпресс.
Успокойся не хочешь отвечать-не надо. Я хочу освоить основы сайтостроения и всего лишь спросил что под этим подразумевается.
Ты хочешь освоить, строительство машины, не зная основ вроде работы с металлом, механики и электроники. Это тебе не майнкрафт, чтобы строить дом, не зная базы.
>основы сайтостроения и всего лишь спросил что под этим подразумевается.
html/css/js
А так может тебе проще на вордпресс тему поставить как выше написали, смотря какая задача.
Ну на, держи. Но я рекомендую сразу токарить, делаю тебе большое одолжение, экономлю твоё время.
https://github.com/kamranahmedse/developer-roadmap
Спасибо
Это смайлик "|="
pipe() он имел ввиду.
Сам напиши
В Jest'е пытаюсь затестить свою обертку над axios. Ничего не получается. В тестировании новичок, как и что мокать непонятно, особенно axios.create() и axios.interceptors.
https://codesandbox.io/s/jest-axios-testing-kx8gu — вот ссылка, пытаюсь написать тест на функции модуля client.js.
Буду очень рад вашей помощи, советам и подсказкам
Не слушайте этого пиздуна, лезьте в пхп, сисярп или другую любую поеботу, потому что фронтенд на современных связках ТЯЖЕЛЕЕ.
Я вообще не понимаю, откуда взялся пиздешь этот про легкость фронтенда, рынок перегрет дебилами после курсов, которые не могут нихуя
https://www.youtube.com/watch?v=8bt1Okboa8E
говорят, что манифест и файл регистрации воркера создается при создании Vue проекта, если выбрана опция PWA. Но манифеста в папке public у меня нету, только файл для создания воркера, что я не так делаю?
Карты можно из любого фейкера на основе алгоритма Луна -например (https://github.com/VRMink/credit-card-generator), со счетами наверняка что-то похожее есть.
>>683399
Что мешает перед отправкой запроса проверять, есть ли содержимое? Можно ещё мемоизацию использовать.
В самом componentdidmount()? Пробовал сразу, но инпут элемент перестал заполняться, делал условие если пусто - не делать mount. Попробую ещё раз и отдебажить
вообще перестал понимать, что у тебя происходит тогда. почему не сделать запрос в апи по сабмиту формы на отдельный хэндлер? зачем в didmount делать запрос, который тебе ничего не приносит?
Ты прав, сложно без деталей понять. В любом случае, спс за совет в проверкой, я нашёл ошибку, рендерил в выпадающем меню пустой стейт, а значения в другой запихивал
Функция принимает число, складывает его со своим полиндромом и возвращает результат (ну например 21+12 = 33)
Но, есть числа которые должны несколько раз пройти эту процедуру (96 например).
Имеет ли смысл пользовать циклы, или тут можно как-то более, ну, изящно решить задачу?
какие блеять циклы. тебе нужно привести число к строке, поделить пополам и скапнуть по середине
Ну в смымсле цикл 96+69 = 165, 165+561 = 726, 726+627 = 1353, 1353+3531 = 4884(Вуаля, возвращает искомое). А к циклу прикрутить проверку на поилндромность...но оно выглядит всё как чудовище доктора Франкенштейна, я наделяся кто-то более изящное рещение посоветует.
Оказывается они убрали манифест из паблика с переходом на vue-cli-4, но написать об этом в доках конечно же никто не подумал, а все туториалы еще по старой версии рассказывают.
>>683625
> А к циклу прикрутить проверку на поилндромность
Делишь строку пополам и сравниваешь первую часть и реверснутую вторую, если подходит - возвращаешь число, если нет - идешь дальше. Можешь рекурсивно сделать.
Не работать будет только с числами меньше 10, но это легко исправить если добавить цикл который будет однозначное число доводить до двузначного и только потом делать всё остальное.
Это не Lychrel's number?
Я просто вспомнил что для 196 нет решения, но мб у тебя немного другая задача, поэтому работает
https://en.wikipedia.org/wiki/Lychrel_number
>айти-камасутру
Хуета полная, рассказывает кое-как так и ещё план изучения весьма ебанутый.
Лучше почитай офф. доку, а после посмотри курс от Юрия Бура React + Redux. Он там все основные вещи разбирает.
Спасибо анончик.
Для одностраничных сайтов и "сайтостроения" хватает верстки и свистелок на jquery
Извиняюсь, не видел файл этого хука
Да не, просто сложение больших чисел не правильно происходит из-за того что они ограничены типом Number. Для правильного нужно использовать BigInt
например юзер редактирует таблицу, и я хочу через 2 секунды после того как он закончил триггернуть сейв в апи, но при этом только один раз, то есть если он продолжает редактировать в течении этих двух секунд нужно чтобы сейв отменился, ну вобщем то стандартная задача
че то не хочется городить говно вроде setTimeout
реакт тайпскрип если что
Возможно у тебя включен/выключен один из 1000 флагов в хроме, а после очередного обновления всё пошло по пизде, потому что какие-то флаги инвертировались, какие-то полностью исчезли, а какие-то новые появились?
https://levelup.gitconnected.com/debounce-in-javascript-improve-your-applications-performance-5b01855e086
Типа вот такого ищешь?
мимо-совсем-ньюфаг
В дока же написано. Для ссылки на html элемент в коде. Не на реакт элемент.
const ref = useRef();
return (
<button ref={ref}>Click mr</button>
)
https://ru.reactjs.org/docs/hooks-reference.html#useref
например смотришь как кто то пишет код для определенной задачи так у него все так быстро и главное работает с первого и раза, но когда ты начинаешь делать тоже самое то выходит все через одно место или может просто как говорится не все сразу?
Нюанс в том что это не просто страница а небольшое приложение на реакте, то есть я думаю что window.onload мне не поможет.
И что это?
Зачем тебе вызывать конструктор без new?
Так то да, или пиши классы через функции или обертка, и это не "через жопу", а factory function ))))
Зачем? А как мне с базой данных работать? Как себе представляю? Хз поэтому и спрашиваю.
В прототипном ООП это через жопу.
Я не про фабрику тебе.
А про built-in like contstructors
Object\new Object
Function\new Function
String\new String
etc
>Зачем тебе вызывать конструктор без new?
Чтобы не переусложнять API и при этом сохранить возможность прямо наследоваться от ссылки на конструктор без оверхеда, любыми способами и по старинке (Constructor.cal(this)) и через class extends.
Все примеры, что видел подразумевают систему регистрации-логина юзера, но мне же не надо всех регистрировать, а только себя, плюс я уже есть в консоли этого файрбейса как владелец, вот и спрашиваю, как связать это всё. Я могу конечно сделать страницу регистрации и логина и всех перенаправлять с этих страниц на главную например, но что-то много лишней работы как по мне.
Я делаю админку, и через неё вношу изменения, но мне же надо как-то сообщать что это я, напрямую понятно что через консоль файрбейса можно работать.
Можешь зарегать один аккаунт прям в консоли, а потом у себя на страничке спрашивать пароль, без ввода логина
да, в гугле ответтов на свои вопросы не нашел
Ну я в принципе так и сделал, создал юзера, а какой запрос конкретно делать не понял, если есть пример дай ссыль, я видел метод который имейл пароль спрашивает, но как конкретно прописывать хз.
Вместо email всегда ставишь тот, на который зарегал аккаунт, а пароль из формочки или алерта, как хочешь
Буду пробовать, спасибо
ну вот есть один. страница размечена, а под ней скрипты стоят которые потом половину страницы с бэка перезагружают. как мне эти скрипты реинициализировать когда я на другую страницу перехожу?
Вот что пишет, то есть он не видит юзера? Данные естественно верные ввожу.
const BoxScreen = () => {
return (
<View style={styles.viewStyle}>
<Text style={styles.textStyle}>Child #1</Text>
<Text style={styles.textStyle}>Child #2</Text>
<Text style={styles.textStyle}>Child #3</Text>
</View>
);
};
const styles = StyleSheet.create({
viewStyle: {
borderWidth: 3,
borderColor: 'black',
alignItems: 'flex-end'
},
textStyle: {
borderWidth: 10,
borderColor: 'red',
}
});
Переписал, проверка правильно отрабатывает, но теперь потерялась ссылка на $router, подскажите как исправить.
только что посмотрел на оф сайте, с ios borderwidth работает как надо, с андроидом фигня какая-то
А всё, отбой, я же запретил вход в админку, а как теперь пускать юзера после аутентификации?
this потерялся из-за стрелочной функции.
>А всё, отбой, я же запретил вход в админку, а как теперь пускать юзера после аутентификации?
можно например в router.beforeEach проверять если у юзера токен или нет.
Потому что конструкторы нахуй не нужны были даже в классовых компонентах? Не говоря про сейчас когда все на функциях и без редакса
Ну вообще так просто удобнее читать код. Незачем без лишних на то причин засорять конструктор. Для этого есть лайфсайкл методы типа componentDidMount. Ну и в целом для сервер сайд рендеринга так лучше.
и он мне возвращает объект например <script assync>alert('hui')</script>
так вот, как мне его заново запустить то? пытался через eval() - он просто не рееагирует. консоль пуста. куда копать?
>>680550 - кун
Вроде бы разобрался, посмотри, так норм?
глянь ссылку что до этого кидал. мне надо сделать переключение между товарами как в той ссылке. когда я захожу например с главной страницы сюда, то все нужные скрипты грузятся спокойно и все работает там половина функционала и самой страницы завязаны на жс
но когда я кликаю по какому то другому товару, находясь в карточке товара, то контент меняется, а скрипты заново не инициализируются. поэтому и надо их сначала собрать, а после перезагрузки страницы их заново проинициализировать. надеюсь понятно объяснил, лол
Дебич, зачем самому городить велосипед, если можно посмотреть как это правильно делается и скопипастить.
На самом деле позже нашел что в Material UI уже есть свой debounce
>>685217
https://pastebin.com/KRZPgkU5
рестарт всех, но рабоать ту тебя нихуя все равно не будет
> мне надо сделать переключение между товарами
> но рабоать ту тебя нихуя все равно не будет
Да и слава Эйку. Нахуй-нахуй таких ребят.
У жопаскриптеров вообще есть хоть какие-то стандарты? Чтоб не плодить говнокод?
У меня есть объект { a: 1}. Я хочу его превратить в JSON вида
{
"a" : "1"
}
Как такое провернуть?
Т.е. что-то в этом стиле?
JSON.stringify(
object,
function (key, value) {
return `"${key}" : "${value}"`;
}, 2 );
Пользуйся. Только учти, если я правильно помню, там только первое совпадение заменит. Если в объекте много пар ключ-значение то нужно функцию в replace передавать. Но там уже в доке метода не сложно нагуглить.
>Или это мой радужный манямирок и сабж требует нихуевых знаний?
Скорее нихуёвых инвестиций в инфраструктуру. Самая прорывная технология транскрипции на данный момент - сгонять толпу нищуков в Толоке записывать тексты за доллар в день.
Лол я не так давно проходил небольшой курс по интеграции этого говна в мой django (сейчас остановился на реакте)
Почему на других компах (на которых архив уже скачивали), скачивается старая версия архива с тремя файлами, а не с пятью? Я понимаю что это кеширование на стороне браузера - как запретить? Именно по отношению к файлам скачиваемым напрямую?
а подробней?
Подучить то есть. И ноду а не году
Смотря куда ты там вкатываешься
Монго и носкл вообще - узконаправленный инструмент, бесполезный без ответа на вопрос "нахуя?" во время проектирования. Самое для начинающей макаки - не стрелять себе в ноги нон-блок движком, который еще и натягивается на нодовский асинк
Мейнстрим бека на ноде нет. Экспресс хоть и самый популярный, но спокойной может быть смещён какой-нибудь новой хуйнёй типа Nest'a.
Осилить круд может любой за ~неделю в худшем случае
Важнее понимать архитектуру и задачи для тех или иных решений
Бек на ноде малопопулярен, поскольку есть всяике джанги с рельсами, где из коробки тонны всяких профайлеров, миграторов, тестов и прочего.
Мне казалось что хайп на ноду набрал огромную скорость и дальше только больше, а Джанги и тем более рельсы узконаправленны.
Хмм, пожалуй тогда не буду мудрить и буду знания по реакт и жс улучшать.
Вопрос в том, сильно ли я проёбываюсь в плане незнания актуальных технологий? Насколько сегодня в продакшене распространены все вот эти хуки, стейт менеджеры, графклы, аполлы, цсс-ин-жсы и прочие хипстерские вещи? Чувствую, что повышения на текущем месте ждать бессмысленно, потому что какого-то ощутимого роста в плане скилла я объективно не показываю, а потому всё чаще задумываюсь о том, что надо бы менять место работы.
Интересно послушать про рост в целом и что посмотреть/попроходить для повышения скилла в частности.
С одной стороны, чисто хуки мало где используются. В больших конторах куча старых классов которые никто переписывать в ближайшее время не собирается.
С другой, если у вас и редакса нет то все совсем плохо.
> С другой, если у вас и редакса нет то все совсем плохо.
Говорю же, есть редакс, но далеко не везде. Стоит сказать, что без него на самом деле очень хорошо живётся, я до устройства в эту контору и не думал, что кто-то делает продакшн без редаксо-подобных свистоперделок.
Получается ситуация, что с одной стороны простота стека и условия в целом меня вполне устраивают, с другой — хочется больше денег, сейчас меньше сотни получаю. Причём вертикальный рост мне не подходит, а горизонтальный в процессе самой работы не получается, нужно в свободное время пердолить технологии.
Ну вот если деняг хочешь то нужно редакс знать. Суть даже не в том свистоперделка это или реально нужная вещь. За это платят бабки. Так-то и тайпскрипт нахуй не нужен, но платят за него больше чем за жс.
Через год будешь на том же уровне
Это же просто инструменты, не бывает такого что если знаешь хуки то +20к, а если редакс то ещё +10. Обычно в команде есть какой-то стиль и ты его придерживаешься, иначе mr не заопрувят. Если есть силы и желания пропихиваешь другой стиль, объясняешь чем лучше.
>- как запретить
Меняй название файла. У тебя же новая версия, вот и добавляй в название новую версию. Если у тебя в коде привязка к имени файла, то сделай привязку не к файлу, а к папке, либо к части имени файла.
Есть пет - приложуха на ноде. С passport.js. в методе десериализации сессии - стандартный подход из документации. Всякий раз когда идет десериализация пользователя по id из сессии - по id в базе(sql) имещтся пользователь, и возвращается в метод десереализация.
Я так полагаю что это не верно, на каждом маршруте лезть в базу?
Видимо из этого идет следующий косяк - если зарегаться под юзером, а потом быстро рефрешить страницу - вываливается исключение :
Error: Failed to deserialize user out of session
at pass (C:\JS\express\app_1\node_modules\passport\lib\authenticator.js:344:19)
at deserialized (C:\JS\express\app_1\node_modules\passport\lib\authenticator.js:349:7)
at module.exports.deserializeUser (C:\JS\express\app_1\routes handlers\handler_access.js:45:3)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
п.с. часть проблемы с отвалом сессии я обнаружил - сессия банально была выставлена на 60 секунд.
Но вот если несколько раз в секунду рефрешить страницу - все равно выпадает та же ошибка. И что странно - через некоторое время (секунд 30) ошибка пропадает сама, и можно снова рефрешить страницу до упора.
Короче разобрался. Все упирается в ошибку 'Error: Too many connections' - слишком много соединений с базой.
Использую mysql2, с пулом коннектов равным 10.
И теперь объясните пожалуйсто мне дауну как правильно работать с базой данных?
Очевидно что нормальные приложения не зависают к хуям после 10 запросов к базе данных. Приложения поддерживают тысячи пользователей одномоментно, и от этих пользователей идет множество запросов к базе данных. И все это работает.
Означает ли пул в 10 коннектов то что в не более 10 запросов одномоментно в sql базе может исполняться? И что остальные запросы ждут пока эти 10 исполнятся где ждут? самому очередь формировать??
У меня ошибку 'Error: Too many connections' выдает даже если я просто рефрешу страницу - там простой код который несколько статей из базы достает. Неужели я где то так обосрался что эти мои простенькие sql запросы где то в базе залипают? Я вроде соединение освободжаю в коде.
Очевидно я дебил , но объясните как это должно нормально работать?
Запрос в базу и коннекшн это не то же самое
Когда ты бэк подымаешь, то он устанавливает конекшн с базой, а в рамках этого конекшна запросов может быть сколько угодно.
Так что да, ты явно где-то сильно обосрался. И это уже не очень jsовская тема
Что за дрочево на редакс кстати? Юзал сагу, юзал без саги. Не могу сказать, что охуенно удобная вещь. По статистике удовлетворенность редаксом и его популярность неотвратимо падают
Да я уже понял где налажал.
Я при выполнении обработчика роута каждый раз создавал пул коннектов к базе. Естественно что все жопой накрывалось.
Юзаю на проекте с хуками редакс, там все просто.
Проблемы редакса имхо постоянные ререндеры из-за изменения пропов, логику которых порой невозможно держать в голове, вечная боль при выборе между стейтом компоненты и редакс стейтом, необходимость написания кучи кода, не особая дружба с тайпскриптом и т.д.
Распробуют хуки плеваться будут, имхо.
Ах, да, еще баги от копрокодеров, которые делают newstate = { ... state} на сущности в глубину этак в 5 слоев
Сначала загрузить содержимое, а потом взять оттуда ссылку на файл. Проверяешь начало названия и если совпадает, то тянешь этот файл.
Есть HTML-элемент, на который навешаны события mouseover/mouseout, и есть другой элемент с position:absolute, физически располагающийся на первом элементе. Соответственно, при проведении курсором по первому элементу, когда курсор попадает на второй элемент, происходит mouseout. Как можно этого избежать?
Это хорошо, конечно, но там три поста в сутки от силы.
Вопрос по реакту и ts
Есть контекст который инициализируется пустым значением (null).
Тип контекста на пике 1.
Есть корневой элемент который передаёт сеттеры стейта в контекст.
При попытке обращению к сеттеру через контекст вылетает пик 2.
Как обойти предупреждение, не проставляя везде "!" после имён сеттеров и не меняя ts.config?
Хочу начать вкатываться с помощью курсов (яндекс или moscowcoding). Я понимаю, что курсы для ленивых долбаебов, которые не умеют гуглить - я именно такой. Да и времени из-за работы нет, а деньги есть, так что хочу иногда получать фидбек от ментора, а не срать постоянно в тред вопросы.
Вот, может быть, ктото обучался на этих курсах или имеют отзывы?
Спасибо
А я его скипнул как раз, потому что там вначале кучу всяких уроков о командной строке, жизни погромистов. Вангую, конечно, что это важно, а я просто ебанько
В двух словах можешь сказать, в чем профит их?
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Build_Documentation
Но при этом получилась статическая либа размером ~600 (!) мегабайт и яваскриптный шелл (экзешка) весом ~200 (!) мегабайт.
Я даж configure флагов на первый раз никаких не докидывал, просто один в один как в инструкции.
Что не так делаю?
Если убрать partial, то как инициализировать контекст? Сеттер ведь передаётся не при инициализации, а через контекст провайдер в корневом элементе.
Ну так всё по делу же сказал. Стремящийся в lastSym присвоил temp, то есть просто перезаписал переменную. Модератор ему и ответил, типа "а ты точно массив изменил?!"
Профит в структурированной инфе без лишней шелухи, достаточно простая подача и обучение хорошим практикам современного жса. Я после них устроился реактером (перед этим два года верстал с жикваери).
Это не модератор, а ментор. И как ментор он должен был объяснить, почему код этого хомяка-долбоеба не работает. Но вместо этого он написал какую-то хуйню, посоветовав распечатать результат на принтере.
Результат мы видим - хомяк ничего не понял, а ментору похуй на дальнейшие уточнения, потому что он такой же хомяк, просто ментор.
Ну так перетаскивай так чтобы ts не ругался, а не костыли пили. Это тоже самое что на все ограничения типа писать any и потом говорить, что ты c js на ts перетаскиваешь.
Через null!
Ты же наверняка в контекст всегда передаёшь value, так что падать не должно. Ну или можешь придумать нормальное defaultValue с noop например вместо функций.
Модератор/ментор — я уже не помню их названия, но это не суть. У них на хекслете такой подход, не давать готового решения, а натолкнуть ученика, дать направление, чтобы он сам додумался.
Так он не натолкнул, он просто нахуй послал, потому что сам не знает. Подход у них такой - натолкнуть на хуй, а потом игнорировать уточнения.
https://www.youtube.com/watch?v=NvWTnIoQZj4
Какие языки вы еще используете кроме js (в работе или для себя)?
Фронтенж выбрал в хекслет? Я тоже выбрал но по 30$ отдавать не хочу. Почитаю так книжки.
думаю выбрать
деньги есть и не умею их тратить, так что лучше на это
так бы хоть на практику яндекса за 80к
чет не въехал, с каких пор js фреймворками можно верстать?
хуевый сервак чет
const obj = {
str: 'abc',
obj: {
str: 'abc'
}
}
Как описать её тип таким образом, чтобы можно было обращаться к элементам через индекс? (obj[key])
Пытался объявить как {[key: string]: (string | [key: string]: string}, но при попытке обращения пишет что к "string | [key: string]: string" нельзя обратиться через индекс типа string
Не понял вопрос. Ярус вложенности один, или структура глубже? Обращаться к элементам на первом ярусе, или ко всем по цепочке? obj[][][]
Ну а как ты ожадаешь оно будет работать, если ts не знает, стринга там или объект? Можешь каждый раз кастить, лол
все топят за него, но я не вижу VUE в крупных, богатых компаниях в основном какие-то помойки уровня "стартап на 10 страниц"
Интернет магазин на 5 экранов
Freecodecamp там есть задачки по алгоритмам, структурам данных и прочем, в разделе интервью. На месяц минимум хватит.
кобол
Кресты, на них можно модули для ноды писать и уже и теоретически для браузера через WebAssembly.
Не, кресты не мое. Писать на них мне пытка. Не потому что сложно, а тупо не мое. Больше тянет на простоту питона, функциональщину и прочее.
я так и не понял,какое реальное применение у ноды.кроме как запустить скриптик жс и посмотреть что получиться
Ну ты же не маленький, посмотри сам. Если кратко, то нет.
https://www.netguru.com/blog/top-companies-used-nodejs-production
то что ты скинул это не "бек на ноде"
это "парочка сервисов на ноде" внутри всей инфаструктуры бека, как правило чаты и прочая хуйня
опять промазал, это все виноват плохой дизайн макабы
Ну нетфликса бэк на ноде, а не просто чатик сбоку, к чему это ты
И вообще, говоришь как будто нода неюзабельна для бэка, почему спрашивается?
Не понимаю почему такая ошибка при запуске вебпака. Бабель установлен.
Отлично, теперь удаляй бэбле, бабль, бубль и прочее и импорти babel вместо bable
Очевидно хуки реакта. useContext и useReducer.
Что ты там выбирать собрался? Контекст доступен изкаробки, а для редакса надо мокрую писечку ставить.
Курсов никаких не просят, но то, что я самоучка как-то без энтузиазма воспринимают. Проходил ли я курсы спрашивали на всех собесах.
мимо
Об этом будешь кричать когда тебя добавят в чорнiй спicок из-за сертификата от очередного цигана.
Хуле мне кричать, вкатыш? Если работодатель смотрит на фактическую сторону, то есть на то, что ты делал и как учился. Твои пет проектики уровня индус кода на гитхабе, писженные с ютуба - никому не интересны.
>инфоцыгана
Зачем ты утрируешь, вкатун? Есть всякая хуйня, начиная от гикбрейнсов, заканчивая яндекс практикумом. Понятно, что курсы сделаю тебя синьёром от владилена минина, с которых кекали в соседнем треде, котироваться не будут и тебя пошлют нахуй.
Кстати это не агитация покупать курсы. Вас все равно там ничему не научат.
У меня 50% хочется денег и 50% "хочу выучить". Есть дип шараги "техник- программист" и вышка инженера авиации.
В шараге учил Паскаль, немного html.
Держи в курсе.
У них не бэк на ноде, а какие-то отдельные сервисы во всей системе. Основной бэк у них на чем-то другом написан(уже не помню).
Хуйню бы не нес.
Все работает, просто я сейчас работаю на VanillaJS и здесь в консоль выводится промис. На среакте все работало нормально
есть пакет express-session - хранилище дефолтное в памятиредис у меня на шиндовс старой ток версии, и он глючит
поверх этого пасспорт ставится. И я не очень могу понять как это все друг с другом взаимодействует.
И как например убить сессию текущего пользователя правильно?
Я набросал типа такой метод:
req.session.destroy(); -- метод express-session
req.logout(); -- метод пасспорта
res.clearCookie('connect.sid', { path: '/' }) - удаляю куку
res.redirect('/');
Не должен ли req.logout() в себе вызыввать req.session.destroy()?
И почему даже после выполнения моего метода в консоли в req.session все равно вываливается вот такое-
Session {
cookie: {
path: '/',
_expires: 2020-05-15T23:18:23.316Z,
originalMaxAge: 60000000,
httpOnly: true
}
}
Тоесть никто не зареган в приложении в данный момент, но все равно объект сессии чем то заполнен.
Запутался я во всей этой поебени.
Как сессию рабоают я понимаю. Писал свою реализацию, где новая сессия хранится в мапе, или в фале на диске.
есть пакет express-session - хранилище дефолтное в памятиредис у меня на шиндовс старой ток версии, и он глючит
поверх этого пасспорт ставится. И я не очень могу понять как это все друг с другом взаимодействует.
И как например убить сессию текущего пользователя правильно?
Я набросал типа такой метод:
req.session.destroy(); -- метод express-session
req.logout(); -- метод пасспорта
res.clearCookie('connect.sid', { path: '/' }) - удаляю куку
res.redirect('/');
Не должен ли req.logout() в себе вызыввать req.session.destroy()?
И почему даже после выполнения моего метода в консоли в req.session все равно вываливается вот такое-
Session {
cookie: {
path: '/',
_expires: 2020-05-15T23:18:23.316Z,
originalMaxAge: 60000000,
httpOnly: true
}
}
Тоесть никто не зареган в приложении в данный момент, но все равно объект сессии чем то заполнен.
Запутался я во всей этой поебени.
Как сессию рабоают я понимаю. Писал свою реализацию, где новая сессия хранится в мапе, или в фале на диске.
>как сессии работают знаю
>испугался печеньки
Нихуя ты не знаешь. Пиздуй основы учить, а то уже весь тред засрал своим паспортом.
Да блядь, ну офк там будет до жопы всяких апп и сервисов на разных языках, ок.
Но вопрос был в том, используют ли это в больших проектах. Да.
Ну а в своем собственном личном проекте ноду поднять вообще раз в десять проще.
Ну и если ты пипец умный - поясни мне вот какую хуйню, которая мне выносит мозг.
https://ideone.com/k8gsyM
Там лютая дичь, но я готов к тому что я тормоз
Схуяли кто-то вообще должен что-то тебе объяснять? Чтобы ебаные макаки вроде тебя потом демпинганули весь рынок работы?
Ебать ты днище. макаки его пугают, проиграл с тебя. Макак только макаки и шугаются.
if (obj[key] !== undefined) {}
КалоСкрипт убивает весь проект, а в консоли пишет мне obj[key] is not defined
А теперь панчлайн во входных данных obj[key] DEFINED блять
Из бд тянутся сущности (вершины графа) и связи (ребра).
Задача минимум - красиво отрисовать их на стороне у клиента (с возможностью кастомизации дизайна блоков в зависимости от их типа) + они обязательно должны быть интерактивные (при нажатии на вершины обрабатываться события).
Задача максимум это ручной редактор такого графа с возможностью добавления вершин и связей и изменения свойств вершин на соседней вкладке (вроде того как это сделано на draw io).
Есть какие-то готовые решения для такой задачи? Если нет то за сколько ориентировочно можно такое заказать у фрилансера?
>creately.com
Нет, у меня другой замысел. Это нужно для образовательной платформы. Бэк сам пилю, а со фронтом всё плохо, максимум что могу бутстрап натянуть, чтобы не совсем страшно выглядело.
Backend meetup
Ruby, GO, Rust, Node.js, Python, Elixir
https://metaconf.net/backend-meetup-2020
Ну и вкатывайся, потом найдешь себе галеру и будешь шлепать галактический круд на аутсорсе. Если надо будет, перекатишься в реакт, там апи на 8 строк.
По dx - почти все из коробки, роутер, формы, хттп. Кроме, наверное, стейт менеджера, но их всего 2.5, а можно и без них, а еще можно грабить корованы.
Когда поймешь rxjs и di будешь бегать и махать руками от радости. Когда поймешь что формы без типов и компонентами как в реакте не покрутишь - будешь бегать помедленней.
А я ебу что я перепутал. Скачал два фильма с торрента, в одном мелькало что-то про avi, в другом mkv. Mkv запускается в хроме, но без звука.
>Mkv запускается в хроме, но без звука.
Потому что звуковой кодек не поддерживается.
Нахуй ты вообще скаченное с торрента кинцо в брузере смотришь?
Чтобы смотреть с дружбанами в онлайн режиме. Еще субтитры подключу, которые можно будет переводить
Бампану свой вопрос. Может кто подскажет.
Опишу вкратце суть - фактически кроме зареквайреных:
const express = require('express');
const passport = require('passport');
const session = require('express-session');
const cookieParser = require('cookie-parser');
и один обработчик маршрута и в сущности все.
app.get('/',(req,res)=>{
req.logout()
})
в приложении ничиго нет
Трабла в том что в данном обработчике, в объекте req хуй пойми откда вылез метод logout(). Такого метода нет ни в node ни в экспресс. Этот метод добавляется из пасспорт.js. Но у меня пасспорт просто реквайрится. Ни в каком мидлвэйре я его не использую ( в примере вообще мидлвэйров нет ).
Каким образом появляется тогда req.logout() я никак не могу понять.
Даже редактор мне тускло подсвечивает зареквайреный пасспорт, говоря что он нигде не используется.
Но если строку с реквайром пасспорта закоментить- то уже интерпретатор на req.logout() выдает исключение - что не определен.
Это как бы жить не мешает.
Просто разобраться хочу. Или я что то в упор не вижу или я хз.
Какие методы есть отслеживания модифицированния объекта в жс?
Я пока что рефлексией пытаюсь этот момент зарешать.
https://repl.it/@USABoy/SnivelingUrbanLaws
Хочу вывести в консоль результат работы функции, которая завершится через секунду после вызова.
Но в консоли получается undefined. Если я правильно понимаю, то в момент consol.log'a функция ещё не готова и по-этому выдает лог undefined. Как это исправить?
>Еще субтитры подключу
Тут максимум manyamiroque просто. У тебя браузер через раз видео поддерживает, а ты ожидаешь поддержку сабов с подвыпердами, лол. Смотри в сторону стриминга, а не пердолься с вебом. Стримь свой плеер с сабами через дискорд или стим. Можно и на твиче, но там нужно скакать уметь, чтобы не отлететь за копирайт. VLC ещё может стримить изкаробки, но там опять поддержка кодеков ограничена.
Правильно понимаешь на момент вызова console.log т.е. сразу твоя функция ничего не возвращает.
Исправить - вызывай консол лог в колбеке setTimeout()
> Тут максимум manyamiroque просто
Вообще то субтитры подключаются через track элемент. Я правда пока не знаю, можно ли выделять слова мышкой, но если можно, то обработать это событие и направить запрос к апи переводчика проще простого.
> Смотри в сторону стриминга, а не пердолься с вебом
Но я хочу пердолиться с вебом, нахуя мне стриминг?
Спасибо.
А как мне быть, если я хочу потом в другой функции использовать значений из функции с таймаутом? Условно, мне надо чтобы функция с таймаутом возвращала число и я потом его хочу передать в другую функцию и что-нибудь с ним сделать.
>>689452
Погуглю, но я сейчас на задачке которую вроде как без этого надо решить. Всё равно спасибо.
>>А как мне быть, если я хочу потом в другой функции использовать значений из функции с таймаутом?
В том контексте о котором ты думаешь - никак. Добро пожаловать в асинхронность. Тот код который вне setTimeout - уже выполнен, тебе условно говоря некуда возвращать. Это и есть фундаментальная особенность асинхронности.
Если совсем примитивно - то все остальные действия с результатом функции в колбэке таймаута ты можешь выполнять только в этой функции. Считай это как временной пузырь чтоли.
Для решения этого были придуманы промисы, ну и над промисами были реализованы async/await. Что в сущности позволяет писать в синхронном стиле асинхронный код. Чисто читать/писать удобнее, а под капотом все также.
let fileSizes = {
testFile1: 65,
testFile2: 48,
};
function plus10(a) {
return a + 10;
};
function getFileSize(filename, cb) {
const result = new Promise(resolve => {
setTimeout(() => {
resolve(cb(fileSizes[filename]));
}, 1000);
})
result.then(value => console.log(value));
}
getFileSize("testFile1", plus10);
>как мне быть, если я хочу потом в другой функции использовать значений из функции с таймаутом?
Возвращаешь значение этой функции.
Лол. блядь. минимальный вариант этого безумия.
const express = require('express');
const passport = require('passport'); //если закомментить - будет ошибка req.logout is not a function, а console.log(req.logout); вернет undefined
const app = express();
app.get('/', (req,res)=>{
console.log(req.logout); //возвращает [Function]
req.logout(); //откуда это блядство. Откуда этот метод. И как он тянется из passport
res.end('end');
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
Аноны, разверните у себя такой конфиг, проверьте пожалуйста, кому не лень.
Я щас пизданусь уже.
app.get('/', (req,res)=>{
console.log(req.logout); //возвращает [Function]
req.logout(); //вот этой функции не может по идее быть в объекте req
res.end('end');
});
выведи консол логом req.logout - если не закоменчен пасспорт - консоло лог выдаст [function]
А стоит закоментить - будет undefined
Как у объекта req появляется метод logout
Ну вот я тебе ссылку кинул, почитай
>>Passport exposes a logout() function on req (also aliased as logOut())
Как он ее предоставляет? Этого не понимаю, ни в какой мидлвэйр пасспорт я не интегрирую, я его вообще не запускаю.
пасспорт интегрирован в экспресс так, что достаточно просто появления его объекта в области видимости модуля в котором app экспресс запускается что бы модифицровать объект req?
Это такая тема что если обратить внимание - вызывает ступор. Я полдня уже ношусь кругами и кукарекаю. Охуеть
Как ты заебало уже спамить своим пасспортом и ныть, что сейчас пизданешься. Поскорее, пожалуйста.
Что блядь тебе не позволяет внутрь модуля посмотреть или банально догадаться, что паспорт блять что-то записывает в прототип при импорте?
>> что сейчас пизданешься.
Я таки догадался.
Но про monkeypath-и впервые услышал.
Спасибо, и не батхерти няша
мне 1 чувак показал как там все просто, реально удобней чем в реакте, но почему эту хуйню не выбирают?
какие там подводные то?
Тебе просто опыта не хватает. Большая часть задач - однотипное говно, где меняется только незначительная часть. Некоторое время поработаешь, и всё само в голове уляжется.
В реакте есть хуки. Очень крутая фича. Если в вуе такого нет то он нинужен
Если есть то нет особой разницы чем пользоваться. Просто реакт появился раньше и занял нишу. Соответственно чтобы рынок отошёл от него нужно что-то действительно революционное в сравнении с ним а не "более простой реакт". Тем более что фичами типа хуков которые в реакте раньше всех появляются он хорошенько удерживает аудиторию. Да есть крупные игроки которые на вуе сидят но если вы не для себя пишете, то реакт лучший выбор поскольку работы там непаханное поле и очень востребован. И ещё долго будет.
при чём тут стейт и хуки довен
хуки это переписывание в функциональный вид то что без них делается в ооп, к стейту они не имеют отношения
в вуэ все больше на реакт хуки похоже по умолчанию
для стейта в реакте есть ридакс, а во вью - вьюкс
вьюкс удобнее просто в разы
Довен тут как раз таки ты. Благодаря хукам как раз таки редакс больше не нужен в реакте.
Сказали vue макаке
они по прежнему требуют пропсы или единый стейт от ридакса
в вуэ жизненный цикл по умолчанию сделан удобнее чем в реакте, через хуки своего рода, а для стейта есть удобный и родной вьюкс
Забей. Это макака у которая даже про useReducer не знает который заменяет редакс
1280x720, 0:13
На видео происходит то, чего мне не надо, то есть когда я навожу мышь на переведенное слово, браузер думает, что я убрал мышь с видео. Как убрать это? Можно как то элемент сделать "прозрачным"?
>в вуэ жизненный цикл по умолчанию сделан удобнее чем в реакте
В реакте внутреннее АДТ полностью соответствует итоговым фпшным компонентам, написанными программистом
Вуй крутится на велосипедном шлаке натягивающем темплейты с императивщиной, из-за чего и утечки памяти в случаются в разы чаще
Ты тролль какого то рода?
Твои lifecycle hooks уже давно не lifecycle hooks https://github.com/reactjs/reactjs.org/pull/1237
Вот пост из свитера трапа - https://twitter.com/sophiebits/status/1055711617604759552
Обрати внимание на "behavior" и "effect", и на отсутствие "lifecycle"
долбаеб.
тебе потребуются обертки и менеджмент всего этого и в итоге на выходе у тебя получится тот же редакс
Долбоеб тут ты раз не понимаешь что эти обертки в разы удобнее с хуками. Чел выше был прав. Вуе макака это диагноз
Попробуй поработать не в ООО рога и копыта. Много нового узнаешь
Пфф, естественно переписывать, ты же не хочешь на днище легаси сидеть.
В этой серии ИНЖЕНЕРЫ догадались изобрести named observables, положить их в глобал скоуп и подписать на них компоненты. Сахара почти нет - ваши щёчки в безопасности.
Да ты просто нормальный сахар никогда не видел.
ты идиот
usereducer не имеет никакого отношения к ридаксу
абсолютно никакого
вообще как можно такую чушь писать если ты хоть дерьмовый пеи проект писал на реакте
есть реакт-ридакс хуки - usedispatch, useselector, но они менее удобны чем вьюкс все-равно
Так если мокрая писечка не даст мне проебаться с оптимизацией, почему бы её не взять?
Вот есть у меня абстрактный личный кабинет, который с апишки тянет музыку и юзер добавляет/удаляет песни.
Не проебусь ли я с бесконечными ререндерами если выберу контекст?
Facebook has open sourced an experimental state management library
Для пет-проектов пойдёт, в пром такое тащить никто не будет пока, но приятно, что хуковый синтаксис. Там ещё местами саспенс, а он тоже экспериментальный.
Централизованное хранилище стейта ты как будешь делать? Заменить редакс юзредьюсером это лол. Редьюсеры это лишь часть редакса, так что одним хуком ты его не заменишь.
Vue - штука для неосиляторов Реакта. Он проще во всём, но местами менее удобен для больших проектов. Ты не совсем прав насчёт хуков. Хуки + контекст вполне заменяют Редакс. На нём сидят не от хорошей жизни. Зачастую проект уже слишком большой, чтобы взять и переехать на что-то ещё, хотя в глубине души многих Редакс так задолбал, что если будет решение менеджмента - все поедут быстро в другую сторону.
>Хуки + контекст вполне заменяют Редакс
Только в разрезе апи. Все оптимизации проебаны, их надо руками писать, не оче удобно.
С точки зрения макаки и пхп удобнее как выше писали. Но мы то понимаем...
>Хуки + контекст вполне заменяют Редакс
Не заменяют. В редаксе как уже сказали есть оптимизации. Ты сам костылять свой велосипед будешь что ли? Или для тебя нормально иметь охулиард лишних реренедрингов? Перформанс для лохов?
Ничем. Вуе макаки думают что если проще значит лучше.
Анончики знакомые с нодой сориентируйте плиз. В общем вводная - лет шесть до этого был фуллстаком с питоном (и джангой / аиохттп / торнадо) на бэкэнде и первым ангуляром / реактом на фронтэнде. В последние года полтора в конторе я как ололо фронтэнд работаю. Чистый реакт. Не верстаю.
Помимо основной работы один хер имею дела ещё и с бэкэндом. Есть кучка легаси на джанге. Ну и периодически новое прилетает.
Вопрос - как дела на рынке с нодой обстоят? Серьёзно думаю переводить весь новый бэкэнд на ноду что бы у меня опыт везде релевантный был. Вакансии на всяких hh и моих кругах смотрел. Хотелось бы услышать совет от анона, работающего с данным стеком
Анон ты не прав. Я делал один большой объект состояния на useReducer. В итоге получилось что одно маленькое обновление, перерендеривает весь фронтенд, потому что контекст полностью обновляется. С useReducer нельзя сделать несколько маленьких глобальных контекстов, там нет чего-то вроде combineContexts как в в редаксе combineReducers. C useReducer ты будешь вынужден делать контексты на уровне каких то независимых контейнеров типа страницы, а проблему глобального состояния ты просто не решишь. Плюс у редакса есть веши типа саги ли redux-observables, ты можешь логику работы с данными вынести вообще из контейнеров. У тебя будет чистые компонеты которые только рендерят верстку.
мимо
>Скриптовый язык
>Оптимизация стоража на программном уровне
То есть мемоизация и?..
>Вопрос - как дела на рынке с нодой обстоят?
Монолиты на ноде пишут совсем упоротые жсдрочеры, без привычки использовать все мейнстрим тулзы и прочии тайпскрипты залететь сложно (и того не стоит, проще шлёпнуть на джанге)
В микросервисах после бума идёт спад, для новых штук всё чаще предпочитают говно
Ктож виноват что ты не умеешь пользоваться контекстом и использовать депенденсиз как в useEffect чтоб не ререндерить постоянно
Если использовать connect, то нужно ли использовать reselect?
На официальном сайте написано, что в connect есть оптимизации, которых нет в useSelector и useDiapatch. Кто-нибудь может пояснить подробнее? И есть ли тут связь с использованием reselect?
Thunk vs saga vs observables?
Ну таки мейнстрим тулзы я и сейчас использую, включая TypeScript. Тесты на фронтэнде только ниасилил
Если в контексте что-то меняется, будут ререндериться все чилдрены. Нужно писать свой костыль или искать чей-то готовый. Проще взять редакс или мобикс, которые проверены временем и поддерживаются разработчиками.
Ты вообще о чем?
https://github.com/facebook/react/issues/15156
Вот тебе гуру говорит что контекст так задизайнен, что в плане глобального хранилища годится только для простых вещей, типа переключения языка
>Still, note that option 1 is preferable — if some context changes too often, consider splitting it out.
Как ты будешь делать несколько глобальных контекстов, чтобы зависимости раззделить?
Что ты собираешься на ноде писать в прод?
Нода хороша как возможность быстро шлёпнуть дешёвый по отноешнию ресурсам к производительности IO-нагруженный микросервис, но в реальной жизни это мало когда надо
На экспрессе дофига работы, на NestJS который на тайпскрипте тоже становится больше.
контекст может частично заменить ридакс
хуки тут вообще не при чем, они заменяют все эти componentDidMount
Если к пхп хотят прикрутить вебсокеты и не использовать сторонние сервисы от чужих дядь, то обычно берут ноду, а не ratchet c reactphp, как некоторые пчпманьки любят пиздеть.
Но зачем когда есть Golang с пистоном?
Ага, а потом на любой пук в контексте всё дерево компонентов внутри провайдера перерисовывается.
Да всем устраивает по большому счёту. Прост по основной работе на нём задач нет, бэк кручу только у старого легаси на (относительно) небольших подработках. Есть опасение что ещё года полтора в таком режиме и мой опыт станет нихуя не релевантным. Переход на ноду обещает мне как минимум задротство в едином стеке. Тут TypeScript, там TypeScript, в монге JavaScript (таки да, это дерьмище является основной БД в текущей конторе). Сборщик и там и там одинаковый, докер тоже одинаковый, тестики одинаковые. Какие то такие маняфантазии
>>690452
На носу висит задача по созданию апи, принимающего данные с каких то устройств супервайзеров и передающего эти данные в конторский 1С. Это вот буквально самый свежак из задач. Не скажу правда что там какие то ёба нагрузки будут
Ангуляробогам некогда говорить, надо паттерны зубрить.
Ну попробуй. хз, что еще сказать
В жсе до сих пор нет своей джанги, посадив на которую 90% макак напишут практически идентичный код со всем из коробки
Для простой апишки с сериализацией говно выглядит поинтереснее, для совсем простой апишки можно и BaaS какой-нибудь найти
Для работы в целом - реакт и практически без вариантов. И будет так еще очень долго.
Для работы в снг или китае (упоси господи) можно еще подучить вуе, потому-что там его, почему-то любят.
Эпоха ангуляра прошла и слава Омнисии. Забыть как страшный сон.
Попыталиь стандартизировать фронт, обосрались
Или рано или поздно первозмогут, или, скорее всего, несмотря на всякие перекрёсткие с гугловским дартоанглуяра, схлопнется
всегда проигрываю с дегенератов пихающих редакс во все приложения, в большинстве случаев тебе useState/context за глаза хватит
Галоперидол прими. Поможет тебе закрыть канал связи с космосом, где ты узнаешь про "большинство случаев".
Что ты несёшь? Что ты бл несёшь? Как контекст мешает оптимизации? Никак.
>>690468
Ты бы сначала освоил работу с оптимизацией и лайфсайклом + и сам Реакт понял, а потом писал эти высеры... Вкатывальщик? Школьник? Теоретик?
>>690654
Если мы о богах, тогда уж Apollo.
>>690452
>Что ты собираешься на ноде писать в прод?
На ноде пишут прод компании вроде Нетфликса, Пейпала, Убера, Линкедина и Ебей. Перестаньте воспринимать его как игрушку уже. Ну и почитайте про кейс НАСА https://openjsf.org/wp-content/uploads/sites/84/2020/02/Case_Study-Node.js-NASA.pdf
Ты вещаешь как инфоцыган. Можешь технические аргументы приводить своим заявлениям?
У тебя все аргумены уровня Ванги. Ты не можешь знать кто там что освоил или нет. Расскажи как ты глобальный стейт делаешь, если не делаешь то почему.
В хуйне, которую ты кинул, 5 страничек о быстром шлёпанье примитивных апишек
>На ноде пишут прод компании
Заслуга бизнес аналитиков, менеджеров и хр в подборе самого выгодного персонала
>NASA is always looking to find efficiencies and figure out how best to fund a specific project— no penny should go to waste
Да я тебя не хочу ни в чём переубеждать. Редакс - неудобная и трудно поддерживаемая хрень и одна из самых ненавидимых технологий по всем опросам. Удачи онбордить новых людей на большой проект с ним. На одном проекте Мобх, на другом вообще Аполло. Есть ещё небольшие инструменты для внутренних пользователей, там вообще Рематч.
>>690691
Так никто и не говорит о том, чтобы перевести весь бэк на ноду, лол. Она отлично подходит для многих задач. А что-то тяжёлое и более требовательное можно на той же джаве и го. Зачастую в крупных компаниях бекэндов несколько же.
Да то же что и на го с питоном — микросервисы, круды, шлюзы.
Есть, как раз это ангуляр на фронте и в будущем нест на беке
Если ваши аполло с мобх однозначно лучше редакса то почему их не используют вместо него?
> Как контекст мешает оптимизации?
Он не мешает, но надо костылять свой велосипед вручную, в то время как в редаксе и мобиксе уже все оптимизировано из коробки.
> Ты бы сначала освоил работу с оптимизацией и лайфсайклом + и сам Реакт понял
Что я по-твоему не понял? Ты хочешь сказать, что при изменении состояния в контексте не будет перерисовки всех чилдренов?
Ты походу сам диван-вкатывальщик и не понимаешь как устроен контекст, ещё и хейт редакса у тебя на пустом месте. У вкатышей часто такое, им кажется редакс слишком сложным и им больно от этого, они начинают хейт без аргументов потому что не могут справиться с баттхёртом.
>Редакс - неудобная и трудно поддерживаемая хрень
Лол, чего там неудобного и неподдерживаемого? Добавляешь новые экшены и редьюсеры, ВСЁ. Охуеть, замеры настолько отупели, что даже такое им кажется неудобным. Что же будет дальше?
Mobx, redux-saga или redux-observable?
MobX
Я не полистать, что вы тут сретесь)
У нас новый проект, все спорят что брать (чисто редакс не обсуждается).
Хочу послушать других на эту тему.
Пишут не на с++, пишут на ассемблере
Лучше бы свои браузеры ебучие похоронили, сыны собак
Странно, angular 1 до сих пор поддерживается. Второй настолько же популярен как реакт (вуй рядом не стоял).
Да у вас же МОНАДА!
Да.
Редакс стейт и контекст по факту глобал обджекты с накрученными свистоперделками
RECOIL
Это неделя RECOIL'a
Его используют такие крупные компании как ФЕЙСБУК и
Вы же хотите быть такими же успешными как ФЕЙСБУК?
RECOIL решит все ваши проблемы.
Не хотите хранить стейт в компонентах? RECOIL
Тошнит от редакса? RECOIL
Кот застрял в квантовой суперпозции? RECOIL untangles ALL THE THINGS
RECOIL
Глобал обжект еще должен оповещать компоненты его использующие о своем обновлении, а так хоть на жиквери пиши.
На этом примитивном говне разве что макаки за Доширак пишут
Я тебе чёрным по белому пишу, что проекты на мобх и аполло, а ты меня спрашиваешь, почему они не используются? У тебя всё нормально? Не используется кем? Многие команды и компании продолжают использовать редакс просто потому, что сидят с техдолгом, а ресурсов переписывать нет.
>>690777
Ты кроме редакса что-то знаешь? А-то так за него топишь, что создаётся впечатление, что боишься, что тебе перестанут за него платить, и придётся осваивать чёт новое.
Чисто из интереса спрошу, сколько у тебя экшенов, редьюсеров, и сколько их комбайнится?
а в итоге у тебя 5000 экшенов и 1000 редьюсеров
конечно если ты делаешь что-то больше чем TODO
Хоть кто-то видел нормальный прод
Но У нАс Же ЕсТь РеДаКс ДеВтУлС )))0
Когда в проекте уже 5к экшенов нужно тупо увольняться)))))потому что там дальше будет пиздец
самое лучшее решение
Постоянно ловлю ошибку, что у RouteComponentProps нет нужного мне св-ва.
Property '{}' does not exist on type 'IntrinsicAttributes & RouteComponentProps<...>
Лаги приложения (куча ебли с reselect)
Лаги девтулзов.
на vue 1 форму подрубать к API делов 5 минут, на редаксе это часа 2
Type '{ authUser(user: boolean): Dispatch<SetStateAction<boolean>>; }' is missing the following properties from type 'RouteComponentProps<{}, StaticContext, PoorMansUnknown>': history, location, match
Вот такое ловлю
Антош, подскажи как такие данные правильно — есть в логинформе поле callback номера, его передаю в пропсы на другой компонент, все отлично работает. Однако, если перезагрузить страницу, то естественно номер херится. Может его вместе с json токеном в localstorage пихнуть? Приложение на django-react. Может как-то сессии джанги задействовать? Подскажи пожалуйста.
Нужно выполнить через getElementByld.
Заранее спасибо.
Ты мне их на карту, киви или яндекс деньги скинешь?
При чём здесь js дауненок? Вот смотри. Есть тред на дваче, твоему парсеру нужно найти все посты.
Как это реализует даун вроде тебя? Правильно, при помощи селектора класса .post, после чего соснёт хуй когда этот селектор заменят на .userPost.
Как это реализует программист? Правильно, привяжется к датам, дата #1 и дата #2 это тот диапазон в котором находится один пост. Берешь этот диапазон и находишь в нём признаки поста.
Вот тебе и "отказоустойчивый парсер", потому что вероятность того, что у поста перестанет отображаться дата близка к нулю, особенно в сравнении с вероятностью смены названия класс.
Ответьте на мой ответ пожалуйста!
Анончики, подскажите пожалуйста. Я джуниор, пишу на реакте, как раз вопросы по редаксу есть. Неприязни к нему нет, даже не думаю, что в нем много бойлерплейта.
Если использовать connect, то нужно ли использовать reselect?
На официальном сайте написано, что в connect есть оптимизации, которых нет в useSelector и useDiapatch. Кто-нибудь может пояснить подробнее? И есть ли тут связь с использованием reselect?
Thunk vs saga vs observables?
аргументы будут?
Я писал 2 года на redux , перешел на mobx, потому что удобней и проще.
Ты писал на MOBX хотя бы 1 год что бы делать какие-то выводы?
>Redux
>Страдать
И ещё спрашивают почему их макаками называют если простейший редакс для них страдание
а потом как? как данные из поста вынимать будешь? все равно будешь искать элементы как-то
Еще раз, слушай внимательно, я писал на redux и он меня устраивал, но потом попробовал другие стейт менеджеры и понял что redux хуйня.
нет разговоров что я его не осилил.
речь идет про удобство и простоту.
>Простейший редакс суть которого описывается в 3х предложениях
>Речь не об этом а о простоте
Все таки реально макака
Внутри участка между датами ищешь по тегу article. Суть в том, что привязка идёт к наиболее постоянным элементам, вероятность изменения которых близка к 0.
там нет асинка,многопоточности,джита(но может быть в 8),его фреймворки тормозные
Сейчас захотел для себя седлать плагин который бы стирал определенные вещи. Грубо говоря адблок на минималках.
Для теста я сделал код который убирает картинку со страницы гугла. Оно работает (фотофакт).
Однако мне нужно, чтоб плагин работал не по загрузке страницы, а когда я тыкаю кнопку. Я поискал примеры плагинов с кнопкой, пихаю туда этот же самый код, но он уже не работает. По нажатию на кнопку просто ничего не происходит.
Хотя я когда этот код скачал с сайта и пробовал запустить, то оно тоже не работало как надо, но я думал там в другом причина.
Суть просьбы - что нужно переписать, чтоб обведенный красным код запускался по нажатию кнопки?
1280x720, 0:35
Видео попердолило
Зарепортил за щитпостинг
страница разбита гридом на 2 колонки, в одной текст с кнопкой, во второй картинка фоном, как растянуть контент на всю страницу что бы не задавать принудительно размер по высоте.
uWS в разы быстрее обоих
php и vue вообще из разных опер, ты о чем блин?
both
>min-height: 100%
Спасибо, подскажи еще как выровнять по высоте и разместить по центру h1, p и button ? margin: auto чет не хочет в этом случае работать.
так text-align: center жы, чекай htmlbook, и ваще чёт ты рановато за гриды взялся
>text-align: center
не работал, пока не задал родителю флекс и тогда чайлд блок выровняло автомарджином
Минуту, что происходит на видео? Ты подключил js-файл с манифестом в качестве расширения хрома?
Ты не в конце всех строк запятые поставил, мудила?)
Что взял? Хуец в рот?
Так вот, что хочу сказать: анон, который писал, что по книге Ильи Кантора нельзя учиться, так как она больше похожа на тех. документацию - ты пидарас. Из-за тебя я пропустил такой охуенный материал, где все структурировано, подробно и интересно.
Мне кстати кантор тоже очень зашёл, он и курсы внезапно. Да, я знаю то курсы принято хаять, но у меня в бурсе прост ламповые комплюктеры ЛИТЕРАЛИ и программы надо было на бумаге писать, это здорово отбиывает охоту именно програмировать. А у кантора всё так ахуенно, примеры жызные, обновления по материалу, лучшие 20 долларов которые я когда либо тратил.
Хз как там у него именно курсы, но учебник реально годный.
Можешь посмотреть комментарии в английской версии учебника Кантора и там тоже бургеры и индусы хвалят материал из учебника.
>какая зарплата у тебя анон?
800-1300
но я не занимаюсь айти, закончил вуз и сьебал за бугор от армии
Сейчас работаю- пишу бек на java, микросервисы/высоконагруженное с 1кккк запросов в секунду. Знаю кресты, c# и питун.
Документация и потом по мере написания проекта натыкаться на грабли и опять читать документацию. Я хуй знает что курсы дадут.
Сап, кун! Выполню за 50 рублей
На официальном сайте написано, что в connect есть оптимизации, которых нет в useSelector и useDiapatch. Кто-нибудь может пояснить подробнее? И есть ли тут связь с использованием reselect?
Thunk vs saga vs observables?
Кидаю серверу 1000 торрент файлов на скачивание и ухожу пить чай, наслаждаясь мыслью о том, как я заддосил чей-то сервак.
Расскажешь в чем разница?
Конечно реакт
Жукверик
Кидаешь ему торрент с блюрэй-рипом в каком-нибудь изъёбистом кодеке и роняешь сервер.
У конвертеров обычно есть CLI, которым можно пользоваться через командную строку сервера.
Или нет, запросов к серверу все еще 0, никаких ошибок на ведроиде нету
Парни, думал как замутить подобие js-темплейтов, в которые с бэкенда передаются некоторые переменные перед "рендерингом" - передачей этих файлов клиенту (чтобы например на хардкодить url-ы)
Как вариант - передавать эти переменные по апи... это вообще работать будет? (и как?)
>>690255
>>690390
Дебилы чтобы изменить цвет кнопочки ебуться с редаксами, редюсерами, хуками, когда есть нормальные решения. Единственный аргумент "ну риакт не гавно сложна значит илитна))0 штобы цвет кнопачки паминять нада пердолиться) а ты вуй быдла)))". Пиздец дегенераты. Vue > Angular2+ > React && AngularJS. Я не понимаю каким идиотом надо быть чтобы выбирать более сложное решение для какой-то задачи когда есть простое, какой в этом смысл? Если че писал на всех фреймворках в прод кроме второго нг. С гона на пхп тоже проиграл. А что илитно? На чем надо писать? На асемблере? Я писал в прод на RoR и на Yii2/Laravel. Пока что мой личный топ: Laravel + Vue + postgres + citusdb. Вы все малолетние дебилы. Дрочил всем на лицо кто пишет на реакте по своей воле, это какие-то мазохисты ебаные, либо копрофаги в терминальной стадии, жс спасут только массовые расстрелы.
Фрэймворк только один - ангуляр, реакт и вью это библиотечки для рендеринга
С каких пор Angular стал middleware? Про frontware анон вообще выдумал похоже
Не могу не согласиться, всякие стэйтменеджменты напердолили, хуки-хуюки, депенденси инджекшены и прочие паттерны напридумывали, а теперь бомбят с того что написание простой формочки и вьюшки требует двух недель напряженной работы. С другой стороны нам как девелоперам от этого хорошо - то что раньше мог сделать один php+jq за пару дней, теперь делается с помощью двух фронтов и друх бекендеров. Гигакорпорациям то пофигу сколько разрабов нанять, для них это копейки, а нам профит. Таже увеличиваем порог вхождения, чтобы вкатывальщики не могли с нами конкурировать и делаем себя незаменимыми (чтобы фронта заменить надо найти профессионального фронта именно по тот стек технологий, так еще и остановить разработку на пару месяцев, чтобы вьехал в то что наговнокодили за последние 5 лет)
Каррирование - интересный способ организации API, к тому же делает код легко переиспользуемым и лаконичным. Однако признаем, скобки - уродство, а двойные скобки - двойное уродство. Хотелось бы сделать что-то типа statements. Но JS - недоязык без метапрограммирования, ни кастомных операторов, ни макросов, нихуя. Ну, я так думал.
Таки есть Proxy! Пик1. Плюс, я осознал, что tagged template strings тоже каррируемы(пик2). Думаю, это будет полезно, для построения своих DSL на JS.
> Вы же нищие в большинстве своем и на курс у вас денег не хватило
Что-то проиграл с этого очковтирателя.
Ты бы ещё спустя ответил.
js how to task name
Токсики задизморалят
Ну с такой подробностью вопроса могу только посоветовать гуглить на английском. Как думаешь так и гугли
Если делаешь SPA, то вот инфа как перезаписать url без обновления страницы https://stackoverflow.com/questions/824349/how-do-i-modify-the-url-without-reloading-the-page
В чём проблема прописать абсолютный путь? node /home/root/myapp/scriptname.js
Ты на шиндовс? Зайди в системные переменные и там задай путь к скрипту
Каждая вкладка отрывается на основании отдельного запроса на сервер. Грубо говоря, просим объект по айди, потом полученные данные грузим в формочку во вкладке.
Пока что додумался до такого варианта - в стейте хранить массив открытых пользователем вкладок. Сохранять его в localStorage. При перезагрузке страницы, через useEffect, открывать вкладки из этого массива.
Меня интересует, лучше там только айдишники хранить и делать запросы каждый раз, или хранить объекты целиком? В первом варианте больше запросов, но объекты актуальные. Во втором запросов меньше, но есть шанс получить устаревшие данные.
Ид вкладок конечно же, потому что инвалидация кеша пок-пок-пок
Еще и matter неплох но там объекты у стене липнут, а мне нужно что бы проскальзывали
Ан нет. Рилипание убрать можно. Но они все равно трясутся когда к стене прижаты
Nan является Number?
NaN это что? Not a Number. Ну и как ты думаешь, является ли NaN Number? ДА, СУКА
Внезапно да. Это js детка
Вопрос по хукам
Есть 3 стула
1. Несколько useState в одном компоненте
+ всё работает как надо
+ дочерние компоненты ререндерятся только если обновлся именно их стейт
- нечитабельный код
2. useReducer. reducer возвращает стейт с изменённым свойством
+ удобней прописать типы
- поскольку меняется не сам стейт, а только его свойства, ничего не ре-рендерится. Прописывать везде useEffect не вариант так как дочерних компонентов и свойств в стейте много и их количество постоянно растёт
3. useReducer. reducer "пересоздаёт" стейт (newState = {...state})
+ читабельный код
- лишние ре-рендеринги
Итого что получается: либо говнокод с сотнями а то и больше юзстейтов, либо тысячи юзэффектов на каждый пук, либо обновление всего сайта/приложения из-за каждой напечатанной буквы или поставленной галочки. Это и есть причина по которой до сих пор используется react-redux?
>1. Несколько useState в одном компоненте
>всё работает как надо
До тех пор, пока не приходится разбивать какую-нибудь сущность с бэка по этим юзстейтам и собирать по-новой.
>дочерние компоненты ререндерятся только если обновлся именно их стейт
Нифига не понял. Дочерние компоненты ререндерятся при ререндере родителя. Если что-то изменилось, то идет обновление DOM. Если ререндер дорогой - useMemo или shouldComponentUpdate
>нечитабельный код
Смотря как напишешь
>2. useReducer. reducer возвращает стейт с изменённым свойством
Так делать нельзя в голом редаксе и об этом написано в доках. Не думаю, что его китайский клон от реакта отличается в этом плане. НЕ МУТИРУЙТЕ СТЕЙТ, ДЕТИ!!!
>>лишние ре-рендеринги
>Реакт
Ты здесь новенький, да?
Большинство свойств стейта прокидываются в контекст (value={{prop1: state.prop1, prop2: state.prop2}}). Часть в пропсы
>>696510
>Нифига не понял. Дочерние компоненты ререндерятся при ререндере родителя. Если что-то изменилось, то идет обновление DOM. Если ререндер дорогой - useMemo или shouldComponentUpdate
Если обновить стейт корневого элемента (который в свою очередь прокедывает его в контекст), все дочерние компоненты будут рендериться заново, даже если их пропсы и соответствующие им свойства контекста не изменились?
>> Ты здесь новенький, да?
Здесь писали уже не раз, что если использовать контекст вместо редакса - это приводит к лишним рендерингам. Вопрос по сути в следующем: приводит ли отказ от редакса в пользу контекста к потере производительности или нет?
>Если обновить стейт корневого элемента (который в свою очередь прокедывает его в контекст), все дочерние компоненты будут рендериться заново, даже если их пропсы и соответствующие им свойства контекста не изменились?
Здесь контекст ни при чем. И надо разделять DOM и Virtual DOM.
У чайлдов произойдет рендер в любом случае, если не будет shouldComponentUpdate, useMemo или ключа(насчет ключа могу пиздеть, не помню). Построится Virtual Dom дерево и будет проверять, поменялось чет или нет. Если поменялось что-то, то будет менять внутри Dom, а это долго.
>Здесь писали уже не раз, что если использовать контекст вместо редакса - это приводит к лишним рендерингам. Вопрос по сути в следующем: приводит ли отказ от редакса в пользу контекста к потере производительности или нет?
Не пользовался "редаксом от реакта" почти, не знаю за счет чего там лишние ререндеры, если не пиздят. По мне один и тот же принцип.
А насчет кучи ререндеров - это суть Реакта, я бы сказал. Декларативное программирование, хули.
https://codesandbox.io/s/funny-vaughan-85lo3?file=/src/App.js
Напиздел немного, ключ не отменяет вызов render у чайлда, он для другого нужен
>Здесь писали уже не раз, что если использовать контекст вместо редакса - это приводит к лишним рендерингам.
Так это редаксодебил писал. Ререндер при любом иммутируемом изменении происходит. А вызываешь ли ты эти изменения редаксом или контекстом - однохуйственно.
Я там коммент оставил: хочу чтобы высота этого блока была без уродливого калька и занимала ровно всю оставшуюся высоту родителя минус верхний блок.
/web
Тогда она будет равна высоте родителя.
Да, похоже это единственное решение.
НаН это числовое значение (Numeric value), которое нельзя выразить цифрами в 64 битном формате.
Вообще глупо сравнивать абстракции и удивляться, почему это они не сравниваются так же, как конкретные сущности.
Но смешнявки нравятся людям. И смешнявки должны быть понятными, иначе как лукосы собирать то?
Ахаха яблоко !== синий, охуеть теперь.
Скорее что-то в стиле арбуз !== фрукт уиии
Относительно грузчика - сложно, относительно нейрохирурга - просто.
Клепать формочки на реакте - просто. Писать игровые движки для браузерок - нихуя не просто.
Щас бы все сводить к просто/сложно.
Чего ты там мямлишь, инцел? Если это "абстлякция", то пускай ее и делают абстрагированной, а не числовое значение (Numeric value), которое нельзя выразить цифрами в 64 битном формате.
Ну сделай ее блять более абстрагированной, дебил.
Ты сука если не видишь разницы между числом и числовым значением, то иди на кассу бургеры заворачивай.
Это ты дебил. Какое нахуй цифровое значение. Нет такого data type долбоеб. Typeof(NaN) возвращает тип Number. Яб тебя на собесе за такой бред живьём бы схавал.
Мимо синьор
Ты дебил ебаный и работают у тебя судя по всему такие же дебилы, раз ты думаешь что тип Number === число.
Ебать ты долбоеб братишка. Ты видать дальше Кантора по ЖС ничего не читал, да?
И даже в Канторе уже написано достаточно, чтобы понять, как работает typeof.
Например, typeof [0,1,2] внезапно, объект! Ебать, откровения! Это что, получается массивов не существует?
Это что, получается, язык еще надстройки какие то делает над сущностями? Это получается что ЧИСЛО НА САМОМ ДЕЛЕ НЕ ЧИСЛО, А ЧИСЛОВОЕ ЗНАЧЕНИЕ? ТАК ЖЕ КАК БЛЯДСКИЙ NaN?
И как же это у нас получилося, а? Может ты мне расскажешь, синьор-помидор?
И такие как ты синьор-обрыганы сидят потом с умным видом ебало крючат на собесах.
> Ты сука если не видишь разницы между числом и числовым значением, то иди на кассу бургеры заворачивай.
Я то вижу, а вот жопа скрипт при выполнении операции typeof NaN выдает мне number. Инцел сейчас скажет "ну есть жи метод isNaN ряяя", а я спрошу "а почему typeof undefined не возращает string? По моему логично, это не число и не объект, значит строка"
Ебать, эталонная макака. Да массивы в js это объекты. Их сущности. Что разумеется не значит что их не существует. А числа это примитивы. И потому тип Number. Чёт в голос с макаки. Числовое значение как бы подразумевает число. Это как сказать что волки не псовые потому что псы ЭТО ДРУГОЕ. Все таки не зря жс считается языком макак. Какой язык такие и адепты
И да дополню. Жс настолько коряво спроектирован что NaN это действительно число которое просто неопределенно. Говоря проще это undefined number. Да понятно что по факту в РЕАЛЬНОЙ жизни там сущность далёкая от цифр но жс как известно спроектирован долбоебами для долбоебов.
Я другой анон. Не знаю че у вас тут за абстракции и числовые значения. 1 это число, 1.34 это число и NaN это тоже число. undefined это undefined, а строка это строка.
Не стоит путать Number в бытовом смысле, как "число", и Data type: Number, в смысле "Вид данных: Число". Первое это то, что мы используем, для собственно счета, а второе - это абстракция, внутренний механизм JS, как переменная или замыкание.
Иными словами.
Число, в бытовом смысле, это 1 или 2,5 или -0,34.
А NaN, это абстракция, которая для простоты работы языка обладает тем же типом, что и числа.
Поэтому для JS тип данных числа и NaN один, но значения у них (собственно, число и не-число, всегда будут разными).
Не знаю, нахуя я это высрал, по-моему это настолько чевидные вещи, что всем и так понятно.
Уже писал вышел. Неопределенное число.
> Не знаю, нахуя я это высрал, по-моему это настолько чевидные вещи, что всем и так понятно.
Ебланище, это не очевидные вещи, а особенности языка. И спор идет о том, что это не "абстлякция", а дебильный просчет разработчиков. Поэтому свои охуенные объяснения оставь при себе, на mdn уже все объяснено без виляний жопой про абстракции
В том и дело, что ты блять уебище не знаешь банальных особенностей языка, по которому "собеседования проводишь".
Ни одного аргумента не привел в пользу того какой это охуенный просчет, сидишь блять в воду пердишь о том какой ты сеньор.
Иди короче нахуй, сеньор. Или на МДН прочитай как Number в ЖС работает.
Бля, какой же тупорылый инцел попался.
Во первых, я не тот сеньор.
Во вторых, ты очень умный, молодец, знаешь как работает NaN. Вот только я тебе пишу, что это нихуя не абстракция, а кривые ручки разработчиков. Зачем ты раз за разом высираешь свои простыни объяснений?
Я понимаю, что ты убогий инцел, и у тебя горит жопа когда всплывают вот такие пики, но это реальный мир, мальчик, пора к нему привыкнуть
[] == true
false
[] == false
true
if ([]) "hui"
"hui"
if (![]) "hui"
undefined
({}) == true
false
({}) == false
false
if ({}) "hui"
"hui"
if (!{}) "hui"
undefined
Потому что при нестрогом сравнении производится приведение к общему типу а при условном операторе делается проверка на положительное значение (не помню как оно на ангельском лол). В if массив, объект, НЕ пустая строка, число больше нуля и true это positive.
А в сравнении будет что-то типа '[]' == 'true'
Лол. Что с меня взять, макака-с
>>696096
>Ну там как реализовать такой функционал сайта, как другой и т.д.
как раз вот етот инструментами вобще-то
>Не жс, не реакту, не вёрстке, а именно
если что-то не понятно есть туториалы, и можно найти как реализуется каке-то функция, например react pagination
REPL previews improvements with autocompletion
The output preview is changed to generate previews for autocompleted input instead of the actual input
среда исполнения жс кода помимо браузера,писать код для бека,дескопта
Ну мне в целом понятно как реакт работает. Как жс работает тоже понятно. А вот эти слова типа пагинация, валидация для меня не то чтоб не знакомы, но скажем темный лес.
>А вот эти слова типа пагинация, валидация для меня не то чтоб не знакомы, но скажем темный лес.
ну ты и теоретик)) пару пет проектов, и будешь понимать что к чему наверное.
вот примеры фронтендов аппов https://github.com/gothinkster/realworld#frontends
Ха, медиум клон уже есть в портфолио. И мувисечер. Что ещё сделать чтоб уже вкатиться?
>уже есть в портфолио
ну если ты не копипастил код то тебе наверное уже более менее понятно что к чему.
примеров что слепить куча, каталог фильмов, веселые картинки c 9gag и подобного.
чего-то серьезно сложного на практике редко встречается, что-то в стиле crud c rest api в основном, с разной градацией рутины.
event.preventDefault(); null;
Так в этом и заключается проблема. Так как фронтенд прост, то сюда и ломятся все кому ни лень и потом по 500 откликов за сутки на личинку фронтопитека.
>Так как фронтенд прост
хзхз, кажется вроде хрень несложная, но после python & oop весьма неочевидно и распластанное, подход просто у жс другой. фронтенд сложен по своему, потому что столько каши всякой поналеплено.
> Я не понимаю каким идиотом надо быть чтобы выбирать более сложное решение для какой-то задачи когда есть простое
типичные слова любого пхп программиста и вьюшника
покажи мне код VUE проекта который писался больше года, минимум 90 экранов?
vue очень хорош только для маленький проектов уровня TODO + главное условие ты должен писать этот проект один, когда проект больше 100 экранов , у вас в команде 5-6 фронтов это сразу пиздец проекту.
в react хоть 500 экранов пиши и подключай 100 разработчиков, код всегда будет хороший.
вот и вся разница, топовые компании не просто так выбирают react. vue используется во всех галерах и только в парочке топовых компаний
Нахуй тебе эти проверки? Date хранит время в миллисекундах начиная с 1970 года.
Так что тебе надо сконвертировать нужную дату в другой Date и против него сопоставлять нынешний Date.
Сап, двач. Почему нету программы, которая бы объединяла фотошоп, текстовый редактор и видеоплеер? Зачем нужны три разных DSL?
Вся эта каша - лишь вопрос времени и упорства. В бэкенде есть вещи, которые в принципе нельзя понять, если ты гуманитарий и с точными науками не дружишь.
Сделал небольшой Личный кабинет, авторизация с помощью своего апи. Данные о входе храню с помощью Context, и всё работает нормально, но при перезагрузке страницы выкидывает из кабинета.
Как сделать так, чтобы при перезагрузке пользователя не выкидывало?
Но что именно мне в нём хранить?
Логин и пароль и при рефреше по новой делать запрос к АПИ к авторизации?
Я не эксперт по безопасности, но может быть какой-нибудь сгенерированный ключ который принадлежит аккаунту
Ну допустим у меня есть токен, по которому я могу получить логин для акка. Хранить пароль в куках/локалке вариант хуёвый.
Ты совсем долбоеб или прикалываешься? Пользователь вводит логин и пароль, сервер валидирует данные и в случае успеха создает куки сессии, которые желательно привязать к IP пользователя. При получении запроса с соответствующими куками сервер отдает ответ который соответствует ответу для залогиненного пользователя. Таким образом получить какую-то конкретную информацию можно только при условии, что ты посылаешь определенные куки с определенного ip, чего вполне достаточно для безопасности. Можешь еще версию браузера учитывать и другие параметры запроса, если совсем параноик.
.background
position: absolute
left: 0
right: 0
top: 0
bottom: 0
z-index: -1
background-image: url('../img/back1.jpg')
background-repeat: no-repeat
background-size: cover
filter: blur(3px)
Мне нужно сделать заблюреный фон тоже в размер экрана ниже первого.
Это решение с z-index и bottom: -100vh работает только чаcтично, картинка фона отображена не полностью
.background2
position: absolute
left: 0
right: 0
top: 0
bottom: -100vh
z-index: -2
background-image: url('../img/back2.jpg')
background-repeat: no-repeat
background-size: cover
filter: blur(3px)
посоветуйте как выйти из положения
.background
position: absolute
left: 0
right: 0
top: 0
bottom: 0
z-index: -1
background-image: url('../img/back1.jpg')
background-repeat: no-repeat
background-size: cover
filter: blur(3px)
Мне нужно сделать заблюреный фон тоже в размер экрана ниже первого.
Это решение с z-index и bottom: -100vh работает только чаcтично, картинка фона отображена не полностью
.background2
position: absolute
left: 0
right: 0
top: 0
bottom: -100vh
z-index: -2
background-image: url('../img/back2.jpg')
background-repeat: no-repeat
background-size: cover
filter: blur(3px)
посоветуйте как выйти из положения
Создаёшь свой собственный хук useLocalStorage в котором хранишь токен юзера
В чём проблема просто сделать
height: 100vh;
width: 100%;
? В потоке они энивэй друг за другом.
мимо личинка вкатывальщика
К примеру - есть все тот же статический каркас - хедер, футер, бади. Мне нужно подкидывать в бади разные компоненты (в раутинге). Еще один пример - у меня есть все тот же Layout (component), как сделать так, чтобы можно было творить такую магию:
<Layout>
<Component/>
</Layout>
Component в данном случае ситуативный. Такое вообще можно сделать? Какие параметры конструктора для Layout задать, чтобы он приминимал компонент и размещал его в определенном плейсхолдере?
>бэкенде есть вещи, которые в принципе нельзя понять, если ты гуманитарий и с точными науками не дружишь.
если обучаемый, то так же:
>лишь вопрос времени и упорства
>>698771
>в react хоть 500 экранов пиши и подключай 100 разработчиков, код всегда будет хороший.
вот-вот, вопрос именно в масштабе и постановке задачи, а не то что какае-то технология дерьмо.
Хуй знает, чего ты хочешь достичь, но что мешает запихать <Component/> в рендер <Layout> в виде какого-нибудь JSX тернарника, если отображение ситуативное?
Потому, что у меня есть к примеру - Component1, Component2 etc. Я хз какие подходы в реакте со статической частью. По факту - это обычный Layout, в который подкидывают контент
>Потому, что у меня есть к примеру - Component1, Component2
В смысле один компонент, но с разными входными данными? Так тебе надо эти данные хранить в стейте лэйаута, а с него уже скармливать пропсы дочернему элементу.
Я думаю что ему что-то типа наследования нужно от одного компонента другому.
>>699335
>>699322
>>699313
>>699293
спс за советы, захуячил через switch-case, как в посте "To do a switch case in JSX do it as follow:" https://stackoverflow.com/questions/37782776/using-for-loops-and-switch-cases-in-react-to-dynamically-render-different-compon
У меня была такая идея, что есть к примеру компонент - "Container", в него можно запихнуть компонент "Grid" и т.д. Типо матрешки контейнеров. Я пытался через сорсы внутри VisualStudio посмотреть, но там пропс с интерфейсом, что еще более геморно
Свитч-кейсы звучит как хуйня. В известных мне либах делался колбэк renderTarget и передавался пропсой. Что-то вроде (args: any)=> ReactComponent
>Типо матрешки контейнеров
Не совсем понимаю что ты хочешь сделать. Обернуть одним компонентом другой? Вот простой пример как подобное можно сделать. Пик 1 скажем компонент Car который занимается отрисовкой машины и которому хотим извне передать стили. Можно написать HOC (пик 2) который оборачивает компоненты в css классы которые передадим. И внутри компонента Car скажем пишем
export default withClass(Car, classes.car). Первое компонент, второе css класс который передали. Тем самым компонент оборачивается в нужный нам стиль сохраняя все свои пропсы. И таким образом гораздо более изощренную логику можно провернуть.
А то тут на днях спиратили нового фленагана и я в сомнениях.
Интересно освоить как не основной язык.
тут ты обращаешься к элементу компонента, мне нужен целый компонент
>>699365
посмотрел доку, если можно внутрь блока reducer запихивать компоненты - то, что нужно. На примере вижу манипуляцией переменной
>>699403
>Свитч-кейсы звучит как хуйня
соглы. По поводу (args: any) - я rookie в реакте и эту идею увидел в реализации Component > Grid или других вложенных компонентов в компонент, типо той же либы Material-Ui, где в компонент <Paper> можно вложить компонент <Chart> вот таким макаром:
<Paper>
<Chart />
</Paper>
>>699423
>Обернуть одним компонентом другой?
именно. Сейчас попробую твой пример.
Спасибо всем, кто отписал
Может кто-то тут делал расширение и может поделиться кодом. Все что мне нужно это чтоб по нажатию на иконку расширения вылазил попап с кнопкой. По нажатию кнопки на текущей вкладке должно что-то происходить. Не важно что, можно просто в консоль написать "карасик". Вроде просто, а я 4 часа убил и не осилил...
>посмотрел доку, если можно внутрь блока reducer запихивать компоненты - то, что нужно.
Но не приветствуется. Всё, что связано с рендером, должно быть расположено в компоненте. Редюсер только должен изменять стейт компонента, а логика реагирования на эти изменения должна быть внутри этого же компонента.
тонны нефти, спасибо, именно то, что я хотел. Хз, чего я сразу так не сделал, видимо поплавило от гугления
И да, в твоём случае легче установить Tampermonkey и добавить элемент-кнопку на каждую открытую старницу. Можно сделать так чтобы она появлялась при определенном нажатии клавиш, либо при наведении мыши в угол страницы.
Конкретно получалось чёрные блоки из пикрила простым justify-content: space-between раскинуть по углам, как???. Ведь так не должно быть?
https://jsfiddle.net/1r8sgw62/
А, ясно, я долбаёб, я же щас задал высоту, поэтому всё верно, он и должен растягиваться.
Да тебе и по вуе здесь бы помогли, и по ангуляру
я вообще в мире web rookie и по совету знакомого решил не писал на Valilla JS, а выбрать сразу либу для удобства работы. Вообще после статической типизации с императивным стилем - все эти реакты это нечто. Особенно поразил routing - просто кайф. Но я все еще не привыкну к ФП фишкам типо функции функции, map, reduce, полное отсутсвие циклов (может еще не встречал) и через жопу реализованная инкипсуляция с this без модификаторов доступа и ограничением области видимости одним компонентом.
Есть еще есть вопросы по реакту, кому не влень:
1. В чем отличие инициализации const / function / component?
Почему const используется как функция, ведь это должна быть константа?
2. Render должен быть только 1 на все приложение? Это как контекст точки входа ака метод Main?
3. Как браузер отслеживает изменения setState? Это фишки "реактивных" технологий или в браузерах есть handler на изменение этих полей?
4. Очень много видов стилизации есть - useStyles, подключением css файла, писать прямо внутри компонента. Какой стиль предпочтительней?
Спасибо за помощь
Типизацию то не бросай, вот тебе тайпскрипт.
>map, reduce
На чем же ты писал
Пиши функциональные компоненты, тогда this ты не увидишь не стоит вскрывать эту тему.
В модификаторы доступа тут не играют скоро будут, но пока нет
Функция - это тоже значение, просто у него тип «функция» и его можно ().
Браузер ничего не отслеживает, setState - метод реакта, он на него и реагирует.
По стилям тебе надо просто самому все попробовать и выбрать то, что понравилось, и это будет, скажем, styled-components
>без модификаторов доступа
Есть, можно в прототипе покрутить, но реакт тут ни при чем и вообще не надо вскрывать эту тему.
>1. В чем отличие инициализации const / function / component?
Почему const используется как функция, ведь это должна быть константа?
Что?
>2
рендер есть у каждой компоненты....
>4 Очень много видов стилизации есть - useStyles, подключением css файла, писать прямо внутри компонента. Какой стиль предпочтительней?
Какой тебе удобнее. Достаточно модные css-модули сейчас, если используешь CRA, то там из коробки вебпак настроен
Нужно на специальном сервере например, на твоём кудахтере запускать билд, а на прод деплоить результат. Ещё лучше чтобы специальный сервер следил за релиз веткой в твоём vcs и сам запускал билд, тесты и деплоил на прод. Ещё лучше чтобы в твоём облаке были запущены контейнеры, которые бы делали все выше описанное.
Вселенский_мозг.пнг
Блятб. То есть мне нужно скачать обратно SAAS и CSS файлы из проекта и каждое изменение проводить на компе?
Первое правило успешной разработки - не делать правки на прод сервере
мне после решеток typescript роднее JS-a. Но это же Angular, я к нему не склоняюсь
>функциональные компоненты
не понимаю
>setState - метод реакта
я не знаю, что под капотом всей этой магии, но при изменении состояния меняется страница, как в AJAX, что меня удивляет
дыа, вопрос крайне тупой но мне жизненно необходим ответ от человека понимающего. я, вроде, понимаю что в принципе это одно и то же, но сомнение и нежелание читать матчасть сжирает меня...
>Почему const используется как функция, ведь это должна быть константа?
Функциональное выражение против функционального объявления.
Только релевантно в контексте класссовых компонентов.
>2. Render должен быть только 1 на все приложение? Это как контекст точки входа ака метод Main?
Ты про ReactDOM.Render()? Можно несколько, только рендерить надо в разные элементы. Также у каждого классового компонента есть метод render().
А так функциональные компоненты по дефолту возвращают рендер.
>3. Как браузер отслеживает изменения setState? Это фишки "реактивных" технологий или в браузерах есть handler на изменение этих полей?
Никак, именно поэтому нужно пердолиться с хуками/setState.
>4. Очень много видов стилизации есть - useStyles, подключением css файла, писать прямо внутри компонента. Какой стиль предпочтительней?
Это уже зависит что команда на работе выбрала. Но вообще один css файл с каким-нибудь scss поверх - наиболее производительный вариант и проще дебажить, чем отлавливать инлайны в коде. У тебя один хуй код будет сруктурирован так, что у каждого компонента будет свой css-класс.
Не подскажешь, почему до рутредюсера не доходит дело? https://codesandbox.io/s/optimistic-maxwell-pbcs8?file=/src/index.js
1280x720, 0:37
Всё! подсказали, в пропсы не передавал экшн.
Это не одно и то же. ЖС - скриптовый язык, юзержс - мокрая писечка от оперы, позволяющая загружать кастомные жс скрипты. Типа фаерфоксовской сальной обезьяны.
Вью шизик все не может угомонится. Все приходит за новой порцией мочи. Уже сто раз пояснили что Вью для хипстерской дрысни и плох для серьезных проектов.
https://codesandbox.io/s/charming-bell-k4d4g
Куда ебучих this, onchange - что это блять хуета? Почему нельзя оперировать 2 переменными email и password? Как это переписать, чтобы не было этих ебучих this.change = this.change.bind(this)?
попутно к этому посту у меня вопрос - как создавать глобальные переменные/константы в react? Я же не буду в каждом файле создавать к примеру - jwt token, мне он нужен в одном месте, к которому я могу обращаться.
И еще - как получить исходящие параметры функции или компонента? Как передавать я понял, а как возвращать - нет
Делай функциональный компонент со стрелочными функциями и все эти биндинги уберешь заодно
Через контекст конечно если нет редакса. Но не рекомендуется. Либо либы типа react-global юзать
>Как это переписать, чтобы не было этих ебучих this.change = this.change.bind(this)?
Велкам ту жабаскрипт класес.
>Как это переписать, чтобы не было этих ебучих this.change = this.change.bind(this)?
https://babeljs.io/docs/en/babel-plugin-proposal-class-properties
>Я же не буду в каждом файле создавать к примеру - jwt token, мне он нужен в одном месте, к которому я могу обращаться.
Что тебе мешает его экспортировать? Один хуй бандлер всё в кучу свалит и токен будет в глобале лежать.
При чём здесь реакт? То что ты тут плачешься - фичи ЖСа. Или ты от фреймворка ожидал полное переписывание языка?
>не понимаю, можешь показать?
Короче, я тупо не понимаю нахуя там биндинги если все равно используются стрелочные функции. Можешь тупо убрать их и ничего не изменится. Либо если хочешь оставить то перепиши в стиле
{this.change.bind(this, e)}.
Но проще всего оставить как есть и стереть из конструктора нахуй биндинги.
>Я так понял, что мне нужно использовать Redux
Ты еще больше запутаешь себя.
Ну и не забудь аксиос импортировать иначе он работать не будет.
спасибо за ответ
я думаю это из за нехватки знаний в JS-e (никогда на нем не писал)
>не забудь аксиос импортировать
да, я его выпилил из импортов, чтобы интерпритировалось
спасибо за совет
Всякие запросы к серверу нужно делать через componentDidMount() если у тебя класс либо через хук useEffect если функция. Алсо убери эту говнофукнцию change которая ничего не делает кроме как меняет твой стейт. Просто setState можно и в рендере вызвать. Ну и плюс внутри нее ты меняешь стейт аля
[e.target.name]: e.target.value
Хотя у тебя не прописан он в стейте изначально.
В функции submit ты мутируешь напрямую стейт. Реакт тебя убьет за такие фокусы. Либо делай через setState либо через хуки как я на пике показал.
Кароч переписал твое безобразие как только мог, чтоб не было this и прочего и выглядело более менее красиво и лаконично. Через хуки и функциональный компонент. Скорее всего так работать не будет но дальше ты сам рефакторь, удочку я тебе дал.
И еще совет на будущее. Если ты пишешь компонент с нуля то пиши его как функцию. Классы запутывают людей что прекрасно видно на твоем примере. Плюс еще и this в js ведет себя не так как в других ЯП чем дополнительно запутывает людей.
Двачую вопрос. Подскажите какие-нибудь форумы/чаты для обсуждения исходников
Пикрелейтед предоставить не могу, потому что вышел из компьютера, сижу отдыхаю в телебоне.
Спасибо
WebGL это легкое? Шейдеры тут кажлый второй писать научится за два вечера?
Безработные.
А зачем он нужен вообще? Я понимаю, что типы это круто, но его используют во фронте или на бэке? Обмазываются одновременно и им и react'ом и express'ом?
Кстати какой самый востребованный\крутой js бэк сейчась? Express?
Ну ты сходу все не взваливай на себя. В целом преимуществ нет с обычным жс. Просто у консервативных манек принято что типы это круто. Но платят больше. Учи когда уже работу найдешь. Для этого тайп особо не нужен
>Очень часто
это где, в каких библиотеках/фреймворках? Vue, react - JS, ASP.NET - blazor, а тайм скрипт где? Только для копроративных Angular?
*тайп скрипт, быстрофикс
Во фронте точно. Это расширение js. Его где угодно могут использовать. В том числе и на ангуларах и реактах.
Язык то не плохой, очень похож на мой родной, но почему именно он? Я помню, как все кончали от CoffeeScript, но на сколько я знаю - он мертв. Есть еще альтернативы - тот же Dart, GorillaScript еще и TypeScript затесался. Как минимум от того, что это продукт мелкософта, то он не сдохнет и не забудеться, как это бывает с некоторыми технологиями, но все же - какая сфера применения, технология, стэк?
Сфера такая же где и используется жс. То бишь фронт на 90%. Фреймворки уже вторичны. В целом это реакт и ангуляр. А фишки кофтскрипта вроде в es6 перекочевали и он стал не нужен насколько помню.
поясните за 3 и 4 пику. В 4 типо Flow (проверка типов) занимает 30 гиг, а с чего так распухла директория? И что за прикол с телкой у ноута?
Если разрабатываешь что-то сложнее тудушки в соло, то он обязателен.
Как писать ТЕСТИРУЕМЫЙ код на реакте?
Главное условие тестируемости функции (на мой взгляд): отсутствие глобальных переменных. Все данные которыми оперирует функция должны передаваться в виде параметров. даже сами параметры должны оставаться нетронутыми. В то время как реакт приучивает использовать глобальные переменные внутри функций-компонентов (стейт и контекст).
Что остаётся? передавать их явно в каждую вложенную функцию, ретёрнить оттуда и диспатчить извне? В этом случае каждую функцию можно будет покрыть тестом, но код станет всратым говном
хз насчет реакта и JS-а, но в языках со строгой типизацией можно писать Mock тест и подкидывать фейк. Потом сравнивать по ААА паттерну
Ты слишком много хочешь тестировать. Кишки компонентов не надо тестировать, надо тестировать из поведение, например
Забыл спросить, стоит ли надеятся на эту площадку вообще, или сразу пидорить на апворк?
опыт работы: 8 лет
Есть же либа для теста реакта, там и почитай, что они тестят.
https://github.com/testing-library/react-testing-library
Пишу на Реакте, использую Контекст.
У меня есть панель навигации, которая меняется в зависимости от того, залогинен юзер или нет. Часть данных юзера храню в cookies и при каждой перезгрузке приложения отправляю запрос к АПИ для подтверждения юзера. И в этот момент навигация на секунду становится как для гостя, а после прохождения запроса как для юзера.
По умолчанию, в контексте прописал, что любой посетитель - гость. Как сделать так, чтобы навигация напрямую зависела от результата ответа АПИ?
Запрос лучше делать в файле, где описываю контекст или отдельно в компоненте навигации?
На фронте реакт+тс, на беке нест который по дефолту на тсе
nest
Одно дело три разных программы. А другое дело тесно связанные технологии, которые по современным обстоятельствам плохо связанны, из-за чего придумываются всякие препроцессоры, темплейт движки, фреймворки, и прочие костыли.
Серьезно, когда в фронтэнде появится нормальный язык с макросами, гомоиконностью, и с гибким, незашумленным синтаксисом?
Ты сам то умеешь?
заебись, только я не понял где там скачать этот самый js файл размером 3кб, везде куча файлов и скриптов, хуйня какая то, можешь пример для даунов показать с подстановкой и ссылку на сам этот скрипт
там только логин и пароль указать надо, без подтверждения по почте или телефону
Feathers
Это я сильно упростил, но смысл такой. Заранее спасибо.
Array = [
{id:"0", name: "Вова", age: "30"}
{...}
{...}
]
> Я хочу обращаться не по array[0].id, а, например, array[0][0], но так нельзя.
О так от.
Пиздец, я просто хотел чтобы у меня подсвечивались методы доступные для типа, а для этого нужно установить миллиард библиотек и конфигов.
товарищи анонимусы, возник вопрос. как работает ассинхрон в веб почте gmail? насколько я понял, браузер ничего не запрашивает по таймеру, протокол не ws, но при получении нового письма все четенько прогружается без обновления.
Это средствами жс реализуется? а где тогда активность в network? или это что-то типо джанго-каналов?
Если кто знает, объясните магию. или на подобном примере. Спс
какие языки ты еще кроме JS-а видел? Динамическая типизация и тебе нравится синтаксис? Ты говна видимо похавал
Динамическая в руках профи лучше. Для макак да лучше статическая чтоб не прострелили себе ногу
>Динамическая в руках профи лучше.
Угу, можно наговнокодить и съебаться в закат до того, как придётся поддерживать этот код. А ебучий тайпсрипт заставляет фючер пруфать и вообще работать в команде.
Сразу видно, что писала рука вкатыша. В интерпрайз хоть раз попадешь, поймешь все прелести динамической типизации
двачую этого
Сразу видно что макака видит мифических вкатышей там где не хватает его профессиональной компетенции.
>профессиональной компетенции
еще раз спрашиваю, какие языки видел кроме JS-a, профессионал ты наш?
>Динамическая в руках профи лучше
>Спрашиваю с чем сравниваешь
>Java и го
>Не указываешь версии ни Java ни Golang.
>мифических вкатышей
>мифических
>вкатышей
Я бы поговнил тебя сейчас, но настроения нет, извини. Даже спрашивать не хочу, чем же тебе Java не понравилась, но как я писал раньше - найдешь работу, попадешь в тырпрайз, поймешь радости статик типизации
так тайп все компилирует в жс все равно,там типы не часть системы,а скорее пометка для удобства
>там типы не часть системы,а скорее пометка для удобства
Что это значит? Статик типизация - это жесткая привязка объекта к типу на многих уровнях - от инициализции до компиляции. Другими словами - если ты создашь тип User и передашь в метод с входящими параметрами string, то тебя для начала Intellisense нахуй пошлет, если работаешь через IDE, потом компилятор. Другой случай, если ты сделаешь тоже самое в JS, то он проглотит это дерьмо и не заметит (если не создашь условия для проверки типа), только на выходе ты ничего не получишь.
Хоть JS и хороший язык, но статика - это маст. хев. Да, я топлю за то, чтобы тратить на 10-15 секунд больше попутно объявляя переменную конкретного типа, но предохраняя себя от выстрелов в ногу, особенно в обросших мясом и прочим говном проектах
>Кишки компонентов не надо тестировать
Почему? А как же юнит тесты, которые должны покрывать максимальное количество логики?
>>702276
хз что это за площадка, но Upwork и Fiverr - хлеб фрилансеров. Насчет подработки - очень сомнительное говно, т.к:
1. Тебя будут щимить профили мини галер со стеком от ++ до QA
2. Тебя будут демпить индусы, китайцы и прочая нечесть
3. Тебя будет дрочить сама биржа - аутентификация, проверки и прочее. В чате что ни будь спизданешь за прямой контакт с заказчиком - скажи пока своему акку (на котором еще репу нужно дрочить, ага)
Дело твое, я бы ставку на фриланс не делал, уже прошел это дерьмо
Как я понял на дваче нет треда по верстке, поэтому здесь спрошу. Какие есть ресурсы/книги чтобы научиться хорошо верстать?
Про это в курсе, но все равно спасибо.
>>703297
Не подскажешь в каком треде? Это?
https://2ch.hk/wrk/res/1951817.html (М)
https://github.com/acilsd/wrk-fet
>Это?
Да, там достаточно много ресурсов по вёрстке, игрульки по сеткам/блоги/валидаторы/фишки, можешь порыться на трекерах и глянуть интенсивы по вёрстке от академии, именно по вёрстке, по жс не надо, тому как там курс за 2к18
Можно подробнее по 3му пункту? Я думал на апворке через него же и работают. И как тогда заключать контракт напрямую?
Спасибо
По такой логике жс всё равно компилирует в машинный код, так что нахуй ЯП не нужны, когда можно байтики перекладывать напрямую.
>одной командой
>У меня окр
Пиздишь, там ещё темплейты ставить для модулей.
Но вообще не понятен вопрос, если с нуля, то однохуйственно, что там CRA + Typescipt переписывает.
> не понятен вопрос, если с нуля, то однохуйственно, что там CRA + Typescipt переписывает.
Ну смотри, когда эту команду выполняешь, у тебя в папке js скрипты а не tsx и их нужно переписывать. Я до этого пользовался parcel js, а теперь хочу typescript выучить писать тип при объявлении переменной, дохуя учить пиздец, чтобы у меня подсвечивались приколюхи всякие нормально
>Ну смотри, когда эту команду выполняешь, у тебя в папке js скрипты а не tsx и их нужно переписывать.
Меняешь расширение на tsx и похуй. Может чего-нибудь в package.json надо будет менять.
https://create-react-app.dev/docs/adding-typescript/
>Next, rename any file to be a TypeScript file (e.g. src/index.js to src/index.tsx) and restart your development server!
>писать тип при объявлении переменной, дохуя учить пиздец
Так-то примитивные типы - вершина айсберга. Если у какой-нибудь либы не будут прописаны кастомные типы, то тебе придётся неплохо попердолиться, чтобы успокоить TS.
В примере я сделал компонент погоды который принимает стейт из App.js и выводит его внутри JSX, так же в этом же компоненте реализован JSS стиль.В файле App.js есть стейт counter, увеличивается по нажатию кнопки и не как не отностится к Weather. Для предотвращения повторного рендера функционального компонента Weather завернул его в memo().Так вот компоненты монтируются, в консоль попадает одно сообщение Render из Weather и по нажатию кнопки Weather уже не рендерится это норма. Но вот когда подключаешь строчку const classes = useStyes() как бы забирая стиль который описан сразу выше,рестарт страницы и видим что Render вызвался два раза. Если смотреть perfomanse то время монтирования компонента Weather вырастает c 36ms до 96ms. Так вот это норма ? Как сильно будет это влиять при дальнейшей разработке системы компонентов ? StyledComponents не зашли. Код в sandbox прилагаю результат такой же https://codesandbox.io/s/jssrendertwotimes-hle0r?file=/src/weather.js
Норм слился
><React.StrictMode>
https://reactjs.org/docs/strict-mode.html
>Strict mode can’t automatically detect side effects for you, but it can help you spot them by making them a little more deterministic. This is done by intentionally double-invoking the following functions:
То есть в режиме разработки при использовании хуков React явно вызывает метод Render два раза для ловли ошибки которая может проявиться в build, но в build вызов происходит только один раз.
Огромное спасибо тебе
Ебать снова вел эту строчку, все установилось в tsx формате. Сижу кайфую от подсветки методов. Какие сложные темы есть в typescript? Почему пхпшники и жукверики так бомбят от него?
Я не автор того поста
Хочу сделать так, что начальное значение контекста задаю не я, а ответ от АПИ. Как такое можно провернуть?
спасиб, но это чутка не катит, это же для node js? пробовал еще кстати doT, там тоже по тэгам, но эта хуйня тупая, берет код блока в виде текста и регуляркой замняет теги, поэтому вся страница дергается, то есть если выделишь кусок какой-то который даже не обновлялся то все выделения стирается. может знаешь еще варианты какие? спасибо за внимание
>только на выходе ты ничего не получишь
Внезапно, но получишь(не всегда, но иногда можно и полезно). Что если я скажу, что String это просто иммутабельный Array, а Array это просто Object, в котором все ключи - числа, а обращаться с ними можно одинаково(за исключением методов)?
для вката в реакт нужно читать доку реакта и знать основы жс
Джава императивная параша с анальным ооп, о чем ты? Если человек пишет с ооп то он уже червь пидор. Не зря так черви радуются функциональным фишкам когда их завозят в сисярпы и прочие жавапараши
Да пиши уже в настоящих машинных кодах, 0 и 1, или можешь вообще по хардкору электрические импульсы кидать, слабый импуль 0, сильный 1.
Я андроид разраб и за этот ваш js совсем не шарю, и потому мне нужна твоя помощь анон!
В общем есть одна либа: https://github.com/reelyactive/advlib
Чтобы запускать js код на джаве можно заюзать js интерпретатор по типу этого: https://github.com/evgenyneu/js-evaluator-for-android
И вот вопрос: либа поставляется как Node js модуль или хуй знает как у вас это называется. Чтобы выполнить код на андроиде весь код этой либы нужно получить в виде строки. Причем, насколько я понимаю, этот ваш npm кроме собственно либы загружает и ее зависимости, что-то типа пакетного менеджера. Так вот, как получить весь код либы и ее зависимостей в виде строки?
Или может есть другой способ заюзать Node js либу в джаве/котлине?
Изучаю тут жс и возник вопрос - если обратные кавычки такие охуенные, не стоит ли писать всё только с ними? Или возникнет проблема обратной совместимости?
>StyledComponents не зашли
Почему? По мне так это лучшее, что случилось во фронтенде за последние годы.
Что там настраивать в нодемоне?
let a = 0;
alert( Boolean(a) ); // false
let b = "0";
alert( Boolean(b) ); // true
alert(a == b); // true!'
Все логично
> let a = 0;
> alert( Boolean(a) ); // false
Число 0 преобразуется в true, логично.
> let b = "0";
> alert( Boolean(b) ); // true
Строка с количеством символов больше нуля преобразуется а true, логично.
> alert(a == b); // true!'
Нестрогое приведение типов оказалось слишком запутанным для тебя? Попробуй ===
Не осилил примитивную логику жяваскрипта? Оправдывайся.
>alert( Boolean(a) ); // false
Приводится 0 к булевому значению, возвращает false. Логично.
>alert( Boolean(b) ); // true
Строка "0" приводится к булевому значению, возвращает true как и любая не пустая строка. Логично.
>alert(a == b); // true!
Оба операнда приводятся к строковым значениям, а потом к булевым. Т. е. мы получаем сравнение вида "0" == "0", получаем true. Логично.
подумай о других погромистах, если они увидят бэктики они будут ожидать что ты что-то интерполируешь
Тебе уже сказали. Когда видят бэктики ожидают увидеть значения которые ты интерполируешь.
Или я хочу, чтобы оно с самого начала задавалось с помощью запроса к серверу, что для этого делать?
https://reactjs.org/docs/context.html#reactcreatecontext
Не понимаю че этот инцел несет. Может кто объяснить почему нельзя бэктики ставить? По моему это красиво и удобно
Ты бы школу окончил для начала. А потом уже лез со своим
>пачиму низя. стильно же, модно, молодежно.
Ты бы сначала помыл голову и почистил зубы. А потом уже лез со своим
>ряяя патамустя ынтырпаляцея строоооок!!!
всмысле зачем? Спиздить у тебя что ни будь
Как ты собрался собрать весь код в одну строку, если он в куче файлов?
У вас мавен точно должен уметь запускать npm скрипты, наши бэкэндеры собирают так фронт перед разворачиванием.
забей хуй. смотри jest и enzyme если собираешься тестить реакт компоненты
если я правильно понял, то defaultValue ты получишь , если попытаешься достать контект в компоненте, выше которого нет Context.Provider'a
учи редакс. Построить приложение чисто на контекте нереально. будет запутанная каша вместо кода.
НУ а касатальено второго вопроса - ну делай запрос в didmount'e, а потом респонс сетишь в context.provider
Реакт
Для практических целей не стоит. Как показывает практика, строгая типизация нужна только говнокодерам. Профессионалу легче с динамической. С точки зрения денег стоит. За это доплачивают.
выглядит как шорткат к редаксу
1 компонент - формочка, где есть 1 поле и 2 интупа и 1 кнопка (утрированно).
2 компонент - это axios handler с получением данных по web api. Этот компонент принимает 2 аргумента в пропсах - email, password.
Что мне нужно - в 1 компоненте (формочке) запилить в поле <p>К примеру</p> содержимое компонента 2 (axios) с передачей параметров формочки 1 (эти два интуп поля). НО, кнопочка - должна делать тригер этого запроса. Через передачу setState в компонент - это хуйня, т.к. при каждом вводе символов будет идти бесконечные fail запросы. Как быть, анон? Обдрочил уже все SOF и гугол, не знаю что придумать...
У меня это уже все реализовано в одном компоненте, но хочу по красоте, чтобы все было раздроблено. Задача как по мне не сложная, но этот реакт - просто нахуй ломает мозг с передачей View. Отцы MVVM учили не мешать логику и UI, тут все в куче...
Чёт не понял проблемы. Ты же реализовал все в одном компоненте. Что мешает теперь разбить на 2?
у меня реализованно обычной функцией, которую я легко вызываю через onClick, присваиваю результат в setState и отражаю его в нужном поле. Мне по факту из этого метода return html вообще нахуй не нужен
>делай запрос в didmount'e, а потом респонс сетишь в context.provider
Так я так и делаю. Только всё равно при обновлении страницы приложение на долю секунды рендерится для defaultValue, а только потом для результата в useEffect
Орайли HTTP The Definitive Guide
ну это норм. ты по-другому просто не сделаешь, ты можешь конечно не рендерить начинку, а показывать, например, спиннер для таких ситуаций. но в любом случае у тебя компонент у которого рендер вызовется дважды
чел ты..
Прикрепи ты ебучий код. Нихуя не понятно что ты хочешь и что у тебя реализовано уже.
Что нахуй значит 1 поле и 2 инпута?
ЧТо блять за компонент который axios handler?
Про паттерны забудь кстати
да я уже сделал, я в JS глине не силен, все что мне нужно было - это создать обычную функцию, которая принимает пропсы.
>Про паттерны забудь кстати
всмысле? Паттерны - это наше все. Поведенческие, структурные, порождающие. Фабрики и фасады, бриджи и обсерверы. Ты на них не задевай! Это цветное.
Как называется фича, когда на странице результаты прогружаются во время прокрутки?.. Своеобразная пагинация, только в пределах одной страницы?
это оно и есть. гугли как послать реквест когда скрол около низа уже.
Почему код в консоли выводит лишь "start" и все?.. Больше нихрена, результат выполнения функции isprime (true или false) так нигде и не пишется
мимо пыхомакака, сильно не бейте плез
Потому что код нужно писать в нормальном редакторе, который подсвечивает синтаксические ошибки
https://ideone.com/u4CEum
Это называется parallax
https://htmlacademy.ru/blog/boost/frontend/pure-css-parallax-websites
Так ты в логике ошибку сделал. Зачем ты делишь индекс? Параметр number у тебя вообще не используется.
Ты долбоеб. Я даже не буду тратить свое время, что бы объяснить почему. Просто знай - ты долбоеб.
Если тебе жс нужен для работы, то у тебя даже выбор НЕ изучать тс в 2020 уже нет. Ты будешь очень долго искать работу на ванильный жс. Разве-что на какое-то легаси говно на жквери попадаешь и возненавидишь этот ад уже на вторую неделю.
Можешь писать на чистом жс только такие простые вещи, для которых его первая версия создавался в 1995ом году. Все, что сложнее этого рано или поздно тебя самого приведет к необходимости писать на тс.
Сам профессионал или просто говоришь от их лица? Ты если что обосрался на этапе определений. Есьт строгая/нестрогая типизация, а есть статическая/динамическая
Хуй знает. Исторически нельзя было. Это окно рисуется браузером/системой в обход дома. Однако сейчас в браузеры протаскивают поддержку стилизации системных элементов, которые раньше стилизровать нельзя было вроде ренджей или полос прокрутки (раньше можно было только цвет поменять и то не везде). Есть ненулевая вероятность, что и для алертбоксов какие-то селекторы в цсс протащили уже. Но мне лень изучать этот вопрос.
Но скорее нет. Рисуй алертбокс сам средствами дома или найди готовую гуишную либу.
Да не, полно проектов на джс. При чем тут его первая версия 1995 и почему на джс нельзя что-то сложное писать вообще не понял
Конечно можно. Но медленно и больно. В итоге предстаешь перед выбором - или выходить в окно, или менять профессию или перестать ломаться и играться в хипстера и просто взять тс как делают сейчас все.
ванильный жс проект на десятки тысяч строк это ужасно. Это мерзко. Такая хуйня до конца дней будет вызывать вьетнамские флешбеки. Особенно после того, как попробуешь тс и узнаешь, что, оказывается, так можно было.
Сектанты ебаные, вам ваш тайпскрипт типизацию дает и переменные в сущностях подсвечивает в вашей идешке сраной, а они блять выебоны до неба строят и сравнивают js с ts как ассемблер с высокоуровневым языком. Не дает выстреливать в ногу и снижает количество багов. Все. Успокоились, сектанты ебучие. Как будто в треде менеджеров-продаванов, а не разработчиков сижу
Сектанты ебаные, вам ваше иде типизацию дает и переменные в сущностях подсвечивает в вашем редакторе сранном, а они блять выебоны до неба строят и сравнивают блокнот с иде как ассемблер с высокоуровневым языком. Не дает выстреливать в ногу и снижает количество багов. Все. Успокоились, сектанты ебучие. Как будто в треде менеджеров-продаванов, а не разработчиков сижу
Я вообще бекендер на питоне, начинал вкат в пограминг еще 3 года назад на С. Но в последнее время приходится лично чаще с фронтендовскими свистоперделками работать. К тому же была возможность на более пиздатую вакансию пойти но там ближе к фуллстеку - надо еще во фронте расшаривать, а я дальше ванилки ничего не знаю
Что такого с jquery кстати? На заре васянских сайтов я вешал его (ajax) себе в формы для интерактивности, меня остальное в принципе и не ебало
>Работаю в Яндексе уже 4 год. Сениор. Вопросы?
Очень сочувствую Яндексу за то, что на сеньоре он держит макаку, для которой антоним строгой типизации - динамическая, лол
let newStr = "";
for (let char of str) {
if (char == !isNaN) {
newStr += char;
}
}
alert( newStr );
}
extractCurrencyValue("$120");
Парни, почему алерт выдаёт 0? Вроде как должны в новую строку все цифры добавиться, нет?
Ёпты, табы добавились, не бейте, лучше обоссыте.
Потому что isNaN это функция, а ты её даже не вызываешь.
Твоя задача решается проще:
return "$120".replace(/\D/g,"") или str.replace(/\D/g,"")
Я до такого ещё не дошёл, но спасибо большое, поставил if (!isNaN(char)) и всё заработало.
Назвался сеньором, а все еще разговаривает перекидыванием стрелок, эхх. Да и то, что ты обосрался не демагогия, а вполне конкретный факт
>Назвался сеньором, а все еще разговаривает перекидыванием стрелок
Не вижу противоречий. Делегирование задач менее опытным сотрудникам - одна из главных обязанностей сеньора.
>Настаивать на ошибочности всего суждения только потому, что в одном из аргументов была допущена ошибка
Забавно, но проблема в том, что у тебя в суждении не было аргументов вообще. "По мнению специалистов", "как показывает практика". Шизик, ну плиз.
Я критиковал не аргумент твоего суждения, аргументов не было вообще. Я критиковал уровень твоей компетенции. Что можно ожидать от человека, путающего строгую и статическую типизацию?
И снова тот же прием демагогии кек
Ну как он сказал - >>706499
Типо как историческая веха он как что-то хорошее. Но его время уже прошло и в es6+ в нем нет никакого смысла уже. Все лучшее из него перекочевало либо в ядро языка, либо в более современные либы.
Жиквери в вакансии указывает на то, что либо у них очень древнее легаси, которое никто уже не хочет тащить, либо у них сеньоры уровня >>706407
В идеале надо пытаться идти во что-то актуальное, для минимизации трудозатрат, нервов и красивого аккаунта на линке (годы работы на легаси в линке это как клеймо не способного в обучение озлобленного старпера).
У языка должно быть крайне упоротое и сектансткое комюнити, что бы у него не горело от своего языка. Все ЯП - говно и рано или поздно их сменит следующее поколение ЯП и так до бесконечности.
Яндекс музыка у нас отдельная боль. Проектом рил даун управляет признаю. Впрочем пользуются Яндекс музыкой тоже не от большого ума. Аналоги в разы лучше.
Вообще да, но скорее двусвязные списки. Просто там что операции shift, что pop выполняются за О(1)
1) Стили. Используют ещё отдельные файлы .css, .scss или все уже перешло в css-in-js? А что лучшее из их группы? StyledComponents? JSS?
2) Нужны ли css фреймворки? Bootstrap? Material-ui?
3) Че по хранилищам? Нужен ли redux если реактовский useReducer делает то же самое? Что насчет MobX?
Как же хочется вкатиться..
1. Используют. Scss лучший выбор
2. Не нужны. Все пишут на чистом css
3. Redux нужен. Мобх не так распространен так что для вкатывальщика редакс главный выбор
4. А ещё нужен тайпскрипт. Без него вкатиться тяжело
1. А как быть с динамическими стилями? Которые, например, зависят от текущей темы. Придется импортить стили и из .scss и подключать css-in-js? Как приличные люди хранят стили: все в одной папке для всех компонентов или по файлу для каждого компонента прямо рядом с .js файлом?
А в чем проблема? Scss позволяет работать со стилями как с жс переменными. Там хоть кучу ifов повесь, хоть отдельный higher order component создавай возвращающий стиль, можешь хоть стецт отдельный создать
Так горит пока у синьора-макаки, которую тайпскрипт заставляет говно за собой убирать.
1. допотопное говно вроде scss/less до сих пор используются (особенно вне реакта), хотя в экосистеме реакта активно вытесняются css-in-js. Раньше был популярен Styled Components, сейчас наметелся переход на Emotion (но мне SC нравится больше, хотя мб я привык к нему).
2. нужны. даже обосанный бутстрап портировали на все основные фреймворки и таким образом продолжают насиловать его труп. у меня нет предпочтения - они все говно. активно работал с бутстрапом и его форком для реакта и материалом - все лютое говно. возможно, ант надо попробовать - не работал еще с ним.
3. нужен редакс. но советую мобикс и советую стремиться попасть на проекты с мобиком или еще чем кроме редакса. редакс ужасен.
Я стили храню отдельными файлами. в SC/Emotion есть нативная поддержка тем и смен их в рантайме.
>>707158
styled components юзал, прийдя на проект, говнище чет полное.
Не дружит с тайпскриптом, рефы форвардить где-то приходилось (приходилось стили чуть-чуть накидывать на компоненты из внутренней либы), очень много переписывания кода, синтаксис не хайлайтится адекватно(в моем вебшторме по крайней мере). В компоненте надо стилизовать пару дивов по-разному всего лишь, а для этого приходится делать класс для каждого из дивов / передавать проп и тернарничками все ебашить / цепочку styled хуевертить. Один плюс - иногда полезно css в зависимости от пропа выставлять. Но так не рекомендую это говно.
Сейчас модно css/scss файл ипортить в компоненту и работать как с объектом (сss module). В CRA вебпак уже из коробки настроен
Ставишь плагин на свою иде_нейм и подсветка работает.
Поддержка тс есть искаропки, хз как ты там это проморганил. Пропсы передаются и покрываются типами. Отдельные стили передаются легко - если не хочешь реализовывать пропсы (но вообще ты должен), то можешь навешивать таки классы или вшивать стили прямо в jsx элемент.
У меня есть статическая форма (Layout). В этой статической форме есть динамическое поле (Компонент). Каким инструментом лучше всего менять этот динамический компонент? Пример - динамическое окно должно смениться после клика по кнопке. Что то типо Switch в Router
>Поддержка тс есть искаропки, хз как ты там это проморганил
Ну у меня был кейс, что надо было оборачивать одну компоненту из либы в styled, по итогу пропсы не видело даже с расширением на ts. Возможно потому что туда еще реф надо было форвардить и писался отдельный утиль для этого. Как бы там ни было, в большинстве случае не стоит того.
Держу styled-components для случаев, когда действительно очень удобно пропсой какой-то флаг передать и стиль контроллировать в зависимости от флага. Но это нечасто, а в остальных случаях это лишний код, который раздувает компоненту под 500 строк. Учитывая, что плюсов-то особых нет по сравнению с react modules не рекомендовал бы
У layout есть стейт, в нем заведи переменные, которые нужны тебе, флаг или что придумаешь. В layout сделай метод onComponentClick и передай его пропом в Component. Внутри component при клике вызывай этот метод, а он внутри меняет стейт Layout и триггерит ререндер. Самый дефолтный способ
типо 2 стейта и менять их с true на False и обратно?
И еще вопрос, как на одну кнопку привязать два обработчика?
>типо 2 стейта и менять их с true на False и обратно?
Ну зависит от твоей задачи, откуда мне знать. В этом же и суть реакта считай, состояние стейта определяет как выглядит компонента.
>И еще вопрос, как на одну кнопку привязать два обработчика?
А почему нельзя обойтись одним? Если ты обработчик вешаешь через onClick, то он понятное дело один. Если ищещь элемент в доме и вешаешь через addEventListener - хоть сто штук вешай, только не забудь снять (не надо таким заниматься обычно)
>addEventListener - хоть сто штук вешай
И то верно, спасибо
Что насчет Router-switch? Я пытался через него сделать, но какая то хуйня получается
Наверное ты что-то не то делал. Router он для навигации же нужен, для того что ты описал это какой-то бред его юзать. Наверное чисто ради рофла можно, а где у тебя ошибка я, уж прости, не вижу.
Вовремя выкатился, красавчик
А что будет?
Все так, все по протопопову
>Держу styled-components для случаев, когда действительно очень удобно пропсой какой-то флаг передать и стиль контроллировать в зависимости от флага.
Не проще ли этим флагом менять/добавлять строку в класс элемента, который потом будет меняться по правилам в .css?
Проблемы с щинамической типизвцией в больших командных проектах возникают только в проектах без архитектуры.
В реакте с CRA не просто же строки классов, там сss по компонентам разбит и если строчку какую-то в отдельный класс вынести, то придется эти классы потом комбайнить. Но флаги это ладно, были случаи, когда гифка клеилась на див через mask в сss. Путь к гифке динамический и было удобно передавать его через styled-components. Ну еще в :after { content: } приходилось звездочки всякие рисовать, тоже текст удобно передать
И как тебе архитектура поможет написать проверку на каждый случай связанный с типами и их приведением?
>связанный с типами и их приведением
Хоспаде, да успокойся ты уже. Нинужны твои типы. Просто и четко
Ты как нигер-папуас, которому объясняют что в Цивилизации нет нужды ходить на охоту в лес, носить шкуру зверей и ебаться с гиенами, а он продолжает настырно задалбывать вопросами, как в условиях города охотиться на антилоп (ведь живности-то там нет!)
Ну удачи тебе ебаться с undefined behavior когда к тебе вместо числа, будет приходить null/строка/объект, а твоя динамикопараша просто проглотит это и ничего тебе не скажет.
Ага, а в больших командных проектах с архитектурой от динамики или отказываются, или минимизируют её всеми возможными способами.
>>707478
>там сss по компонентам разбит и если строчку какую-то в отдельный класс вынести
Щито я читаю?
Хуяришь в элементе className={`one ${state ? "two" : "three"}`}, а состояние меняешь функцией.
Если тебе прилетает то, чего ты не ожидаешь, то ты мудак какой-то конченный и к программированию тебя вообще подпускать не стоит. Тут уже совсем не важно сатическая или динамическая у тебя тепизация.
Расскажешь это когда придётся работать с API/сервисами/сайтами которым на тебя похуй.
Если ты не валидируешь все входящее, то ССЗБ, и как я уе сказал, тебя в целом подпускать к сколь-нибудь серьезному коду нельзя.
эм, а как тебя спасет статическая типизация если тебе от third-party api сервиса прилетают данные?
статическая никак, а сильная выдаст эксепшн при попытке присвоения переменной значение несоответствующего типа.
Статическая типизация без сильная не рассматривается.
>Статическая типизация без сильная не рассматривается.
Почему это? В Си статическая слабая типизация. На Си написано кода больше чем на любом другом языке.
Я знаю. Я это макакену с манямиром строгой типизации
Знаю только про GSAP, но он в общем случае платный.
Суть проблемы такова - есть 2 компонента
1. Основное окно
2. Компонент с 2 кнопками (child). При нажатии на кнопку внутри этого компонента происходят операции и на выходе компонент 2 должен сообщить компоненту 1 (родителю), что на одну из кнопок произошел handlerClick.
Как передать из parent в child - я знаю - пропсом. А как наоборот? Спасибо
я нагуглил React.createRef() - но не врубаюсь, как с родителя использовать стейт child. Еще про контекст начал читать, еще не пробовал. С redux еще дело не имел, попробую
Да ебаный ты дэбил. Никак нельзя использовать стейт ребенка из родителя. Только контекст или редакс
Бля да загугли уже как higher order components работают. Одни и те же вопросы задаешь
В 6 вакансиях 1 упоминание тайпскрипта.
Передавай в пропсы чайлду метод обработки сообщения у родителя.
То есть в флюкс архитектуре это так задумано - родитель может безоговорочно изменить состояние потомка, потомок же может лишь запросить изменение стейта у родителя, если этот родитель явно ему предоставил такую возможность.
Однако это имеет смысл только если у тебя немного таких методов и надо гонять вызовы только от чайлда к своему родителю (а не выше). Иначе тебе нужен уже контекст или редакс/мобикс/ватевер.
Фанатик, в js все на функциях высшего порядка построено.
>На Си написано кода больше чем на любом другом языке
Удачи найти на нем вакансию да еще и с кешем
мимо илитарный котлин-разраб 200к, опыт разработки - 1 год
На Го еще бы больше получал.
Еще один еблан. При чем тут вакансии? Мы за типизацию терли. И вакансии есть, если уж на то пошло.
Кент разрабатывает беспилотники в яндексе на плюсах.
Если искать там, где клиент-серверные приложения пилят, то офк не найдешь, но подумай кто пишет тебе половину софта, драйверы и т.д. и т.п.
Все зависит от того, насколько ты хорош.
Так никто и не говорил, что Си хороший язык. Признак хорошего языка это сильная статическая типизация.
Даже петухон лучше Си, потому что у него сильная динамическая типизация.
На JS сейчас пишут в десятки раз больше кода, чем на твоём Си. Отсюда мы делаем вывод, что количество написанного кода ничего не говорит о качестве языка на котором тот написан.
Я не пробовал ещё. Вот как тайп изучу и начну откликаться
Все языки программирования, кроме ассемблера, мы имеем чтобы макаки себе ноги не отстрелили.
Нет, все языки мы имеем чтоб у профи было больше инструментов под рукой.
>Так поэтому эти языки и считаются дерьмом
Кем считаются, недокодерками вроде тебя? На их мнение ложили прибор.
>>708061
>Признак хорошего языка это сильная статическая типизация.
Чиво блять? Можно подумать ты что-то понимаешь в программировании, языках и тем более в типизации. Почитай для начала ТАПЛ, а потом сможешь рот открывать, и то не факт.
>Даже петухон лучше Си, потому что у него сильная динамическая типизация.
Не ты ли пиздел, что динамика хуета? Сучок переобуваешься на лету. Где ты работал, что писал? Ты обычный вкатывальщик, твое мнение никому не интересно.
>>708064
>На JS сейчас пишут в десятки раз больше кода, чем на твоём Си.
Уебок, не мой Си, дура. Сколько строк кода в одних только Линуксах? Это серьезные проекты, которым десятки лет. Твои свистоперделки на JS и рядом не стояли. Мне нравится JS, но ты тупой уебок, нихуя не понимающий в программировании.
>Отсюда мы делаем вывод, что количество написанного кода ничего не говорит о качестве языка на котором тот написан.
Вывод дебила. Изначально какой-то мудак кричал, что статическая типизация не бывает слабой, я ему привел примеры обратного. Еще он пиздел, что динамика хуево, а потом переобулся приводя в пример динамические языки. Потом он пиздит, что слабая типизация хуево. Куда ты то лезешь.
Ассемблер ты имеешь тупица, чтобы остаток твоего мозга не вытек, когда будешь писать в машинных кодах.
>Почему в JS события не поддерживаются нативно
Это как? События, DOM и прочая хуйня реализованы в браузере.
Потому что это незачем. И так всяого говна натащили, которое ни к чему, на уровень синтаксиса, вроде классов, но ладно, еще куда не шло, но блядь не сделали их callable - это пиздец. Окей, я терпел. Но теперь классо-ориентированное быдло затащило синтаксис для пиватных полей, блядь, сука, через решетку, это катастрофа нахуй. Нельзя было просто блядь реализовать приватные символы что ли, суки. Тем более, что у v8 под капотом они уже есть и используются повсеместно, да и полифилятся как нехуй делать. Короче, я вот на жс пишу с конца девяностых. Не повсеместно, не всегда в начале лишь на нем, вначале у него было мало возможностей, но чем дальше тем больше задач я решаю именно им, это мой любимый язык именно за свою динамическую природу, и скорость благодаря имеющимся теперь движкам. И я был максимально благосклонен к различным переменам по расширению синтаксиса, да и вообще, ко всем почти переменам, онивсе шли так или иначе на пользу, пока это не начало переходить границы. И вот теперь оно, сука, начало. За синтаксис декларации приватных полей коммитет должен гореть в аду. Просто, просто потому что это можно было решить наиболе лаконичным способом.
Без тайпскрипта не вкатиться в 2020
Из интернета, где его нон-стоп обсуждают последние несколько лет?
Этот ноунейм кал, тащем-то, от самого Даля, который ливнул с проекта node, заявив, что создание ноды было ошибкой и теперь он хочет сделать все как надо с нуля.
> последние несколько лет
Он вышел три недели назад, ты ебанутый?
Да и какая разница что там бредит этот шизофреник Даль, которого даже с его собственного проекта поперли
>Он вышел три недели назад, ты ебанутый?
Сука блядь как же ты бесишь мразь ты тупая. Он был анонсирован и не раз представлялся еще дохулион лет назад. Пару недель назад вышел его официальный релиз.
Нет, не убьет. Даль как-то уже поехал, и все чем занимается, это хайпует. Если ты помнишь, он из ноды убежал на го, потому что жс это говно. Теперь вот возвраается с растом и тс, нахуя-то, с весьма сомнительными идеями. Разграничение прав модулей у ноды пилят уже давно - политики, скоро будут. Вбинденный компилятора тса нахуй не нужен, а если нужен, к ноде прикручивается парой строк. Управление зависимостями через импорты - беда. Ну и за дено нет корпорации, в отлчиии от ноды. Так што не взлетит. Он ему потом так же наскучит, как наскучивало все прежде (это нормально тащем-та, даже Линус не пилит давно сам свое детище, а только контролирует), ну, а сообщества там не образуется, потому что не зачем. Все и так уже есть, и stable.
мимо ML-щик
ML это что? А вообще можешь не отвечать, сейчас весь тред задушишь, инцел
>чтобы остаток твоего мозга не вытек, когда будешь писать в машинных кодах.
О, дебил и не знал, что весь этот текст можно заменить на лаконичное "чтобы макаки себе ноги не отстрелили"
>Кем считаются, недокодерками вроде тебя? На их мнение ложили прибор.
О, смотрите, долбоеб с двача только что назвал создателей языков с сильной статической типизацией - недокодерками. Тебе самому не смешно свои высеры читать?
>Не ты ли пиздел, что динамика хуета?
Манюнь, в этом мире нельзя разделить всё на черное и белое. Поэтому и придумали степени. Поэтому мы можешь разделить языки по степени хуевости в зависимости от типизации языка:
Самый хуевый - слабая динамическая типизация (жопаскрипт)
Чуть лучше чем самый хуевый - слабая статическая типизация (твои любимые сишечка и плюсы)
Средней хуевости- сильная динамическая типизация (петухон)
Не хуевый - сильная статическая типизация (C#)
> Сколько строк кода в одних только Линуксах? Это серьезные проекты, которым десятки лет.
О, очередной дегенерат, который думает, что раз что-то древнее написали на языке X, значит это автоматически делает этот язык X охуенным.
Сука тупорылая, это тоже самое, что вырыть многокилометровую траншею лопатой, поддерживать её состояние при помощи говна и палок, а также этой лопаты и потом кукарекать, что экскаваторы современные хуйня, потому что вот именно эта траншея была вырыта без экскаваторов и поддерживается говном и палками с лопатой.
Ты понимаешь, что переписать всю систему с говно языка просто невозможно, даже если архитектура этой системы идеальна? Тебе просто не даст это сделать обратная совместимость, да и затраченное время того не стоит, слишком уж много дерьма придётся разгребать. Поэтому разработчики линкуса стали заложниками собственного инструмента и продолжают писать костыли используя Си, что никоим образом не делает его охуенным языком.
> что статическая типизация не бывает слабой
О, а вот и пошли маняфантазии. Показывай где я такое писал, уебище умственно отсталое.
>этот подрыв сидауна который осознал всю свою ущербность и ничего умнее не нашел, как начать называть всех макаками
Торвальдсу уже помолился, сидаун?
Никогда не писал на си. Моя специализация Голанг. Просто искренне восхищаюсь как люди несут хуйню с серьезным видом.
Да пиздец, охуеваю от их наглости, пишут типа авторитеты невъебенные.
>Голанг
А, это та хуйня которая с проглотом у шарпа сосет, поэтому ты обиделся? Ну ничего, привыкай, много тебе еще унижений стерпеть придётся. Сам виноват, не надо было вестись на хипстеров из гугла, которым уже похуй на это мертворожденное дерьмо.
>весь этот текст можно заменить на лаконичное "чтобы макаки себе ноги не отстрелили"
Слишком много чести.
Я так ине понял тебя за эти сутки, чем слабая динамическая типизация хуева-то, помимо того, что дает тебе возможность стрелять куда угодно, а ты зачем-то стреляешь прямо себе в жопу не холостыми. Ну, вот серьезно. Я просто не могу понять, как надопроектировать систему, что у модулей настолько большая связанность, или так часто меняющееся апи, или так сами модули просто не выполняют принципов единственной ответственности, или что блядь надо такое делать, чтоыб умудряться везде и всюжу стрелять себе по ногам. Единственный вариант который я могу предположить, это если писать код с закрытыми глазами. Все остальные доводы, аля - ололо мне не надо читать документацию, все декларировано в коде, и мне иде все дополняет - ну это сюр какой-то. Документацию тебе все равно надо читатать, если это писал не ты. А если ты, и написал так, что без документации теперь не разобраться, то видимо хуево написал. Ну, а про интеллидженс это даже не смешно.
Так что в итоге. Зачем нужен этот оверехед со статической типизацией. Типы и так все есть, проектируется все и так на них. Но все именуется интуитивно, все проектируется SOLIDово, служные участки независимых частей документируются, как полагается. Ну так и в чем тогда возникает проблема?
Любимый довод апологетов статической типизации - это ололо вы не писали больших систем, динамикопараша пригодня только для скриптов на один файл. Ну так да, блядь. Так ты и пиши компоненты систему так, чтобы один логический модуль был простым как здрасти и не требовал никакой нахуй статической типизации. У которого задокументированы все внешние интерфейсы как положено, и провалидированы все входы, которые нужно валидировать. Динамикопараша же годится для написания мелочи? Так в чем проблема писать много это мелочи, из которой потом строить большие системы. Или принципы слабой связанности статически-типезированных фанбоев не касаются, я не знаю. Мне действительно сложно понять.
>О, смотрите, долбоеб с двача только что назвал создателей языков с сильной статической типизацией - недокодерками.
Ты че несешь, дура? Ты писал
>>708056
>поэтому эти языки и считаются дерьмом
Кто считает тупица? Это ты так считаешь, твоим мнением зад подтереть только.
>Манюнь, в этом мире нельзя разделить всё на черное и белое.
Ах ты сучонок, не ты ли только что категорично поделил языки на хорошие и хуевые? Что динамические языки, а также языки со слабой типизацией хуевые, остальные заебись? Переобувальщица дешевка.
Тупая дура, сколько лет существует Линукс? Его поддерживают и развивают десятки лет. Сколько лет самому древнему проекту на JS, который до сих пор развивается? 5 лет? Назови.
NaN
Если бы сказанное тобой было правдой, то Typescript не стал бы таким популярным и нахуй никому не нужен был. Ты конечно можешь с пеной у рта кричать, что у тебя твои мувисерчеры и тудушки без него работают, на реальность окружающую это никак не влияет.
Так он появился выходит исключительно для того, чтобы бить по рукам тех, кто не пишет код не думая, и вообще относится к разработке на отъебись. И как следствие, все для чего нужна статическая типизация по факту - это чтобы дисциплинировать распиздяев. Никаких иных объективных доводов нет.
Да-да, а техника создана для того чтобы распиздяи могли выполнять хоть какую-то работу, при этом если бы они качали свои мускулы, то эту же работу они выполняли бы быстрее.
Статическая типизация нужна для того чтобы быстро разрабатывать приложения, которые занимают более 500 строк кода, чей функционал ты будешь постоянно улучшать и расширять.
Понимаешь в чём соль? Да, ты быстрее напишешь какой нибудь код, который заходит на условный двач и сохраняет все фотографии из треда в отдельную папку, если ты будешь использовать динамический петухон или нод.жс. Но как только тебе понадобится больший функционал, так сразу ты соснёшь хуй и поймешь, что с типизацией выполнил бы требуемую задачу в разы быстрее.
Странно. Я пишу код уже достаточно давно, и все никак не сосну, потому и задаюсь такими вопросами. Да и всегда писали большие проекты, в частности на фронте, без всякой статической типизации, и на бэке пару десятилетий на каком-нибудь php когда-то. Все писали, и никто не сосал. А теперь вдруг все должны сосать. Наверное, это все потому, что обычно мне, да и всем, нужен не больший функционал, а большая функциональность. Ну и еще потому, что из твоих доводов никак не вытекает какая-то корреляция, а все твои аргументы сводятся лишь к тому, что - ты соснешь, потому что я так сказал.
>Статическая типизация нужна для того чтобы быстро
вот справедливости ради, статическая типизация, это как раз про не быстро. любой проект. каким бы он ни был, проходит стадию протипирования, потом реализации, потом допиливания. и со статической типизацией ты свои типы будешь рефакторить и рефакторить, рефакторить и рефакторить. рефакторить и рефакторить, до бесконечности. большую часть времени посвящая не реализации алгоритма и решения задачи, а описыванию типов, которые при нормальной архитектуре приложения и так должны быть очевидны из контекста, а контекст не должен быть большим.
> любой проект. каким бы он ни был
Зачем мне ебаться с проектом на 20 строк кода? При этом 20 строк кода это в динамикопараше, если всё в статику переводить, то в ней 20 строк кода займёт только описание класса который ты будешь получать в качестве ответа на сетевой запрос.
>рефакторить и рефакторить, рефакторить и рефакторить. рефакторить и рефакторить, до бесконечности
Для того чтобы это предотвратить и созданы паттерны проектирования. При этом если у тебя руки из жопы, а они из жопы раз тебе приходится рефакторить по 100 раз, на динамикопараше этот рефакторинг займет намного больше времени, хотя бы потому что тестов написать придётся больше.
Да
Куда угодно - в метод/поле. Сама концепция React с возвращением элементов - какая то не логичная. Вообще View смешить с логикой - это кощунство. Так или иначе - я разобрался с Redux (на базовом уровне) и многие вопросы с передачей данных между компонентами испарились.
Стандарт вводит понятие бесконечность в машинном коде. Но не определяется Inf == x/0
>пик
говнокод Васяна-вкатывальщка, написавшего очередной "калькулятор", поделись со всеми своей находкой
Прочитай уже доку блять.
Ты стандарт хоть открывал, мань?
>Стандарт вводит понятие бесконечность в машинном коде. Но не определяется Inf == x/0
А это тогда что?
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
ПЕРЕКАТ >>1708846 (OP)
Никогда не писал на шарпе так что мне пох. А учитывая что моя ЗП в 1,5 раза больше средней шарповской то я не в обиде
Это какой-то кринж-тролинг?
Если язык не позволяет мне творить что-угодно, то вероятно этот язык - говно.
>Если тупые взрослые мне не позволяют кинуть коктейль молотова с балкона, то они все пидары, а порядки их - говно
Любой фронтэнд фреймворк на ЖС не позволяет производить манипуляции с жестким диском. С чего бы это? Ммм? Не слышу...
frontendmasters
Ищу годный скрипт анонимного чата-рулетки, чтобы можно было фотками и файлами кидаться с анонимным собеседником.
Голосовые звонки и видео-звонки - не обязательно, но желательно. WEBRTC + STUN-сервер, походу сойдёт.
Ну и... Конечно же... Шифрование!
Есть варианты?
Там нет сорцов
Я вообще в ахуе, что в жс есть аж 3 способа для forEach и каждый из них косячный в том или ином виде
Просто иди нахуй
Есть поле <input type=text>
Есть div
<div id="123"></div>
Нужно каждый раз, когда я удаляю или добавляю символ в поле - посылать введенную строку из поля в файл index.php и ответ от этого файла вставлять в этот див
Вот осталось от моего предшественника. Если надо - оплачу работу
<input type="text" class="form-control" id="tag_search" placeholder="Поиск по тегам" />
$("#tag_search").keyup(function() {
$.getJSON("/tags.php?search="+$(this).val(),function(d) {
if(d!=null) {
$("#tags_list").html('');
$.each(d,function(k,v) {
$("#tags_list").append('<a href="/tag.php?id='+v['tag_id']+'">'+v['tag_name']+'</a><br />');
});
}
});
return false;
});
ты мне предлагаешь это перепечатывать? я все равно не запомню. я бекендер
зависит от того, в каком контексте были вызваны setFoo и setBar. если в реактовском-же хендлере (onClick, onChange и тд), апдейты соберутся в батч, ререндер будет только один. если же не в реактовском контексте (например, колбэк в setTimeout) - да, будет два рендера. гугли unstable_batchedUpdates.
Пиши в новый тред
Популярен в СНГ. На западе так же небольшую нишу имеет и есть шансы найти работу. Лучше блевотного ангуляра. В принципе можно его выучить. Хотя сейчас маст хев все же реакт. Но гипотетически можно и забить на реакт и идти чисто через вью - работу все равно найти можно.
Нет. Строки, числа, булевы и прочие это скалярные типы. Может показаться, что строка это объект, но на самом деле там обертка над скалярной строкой.
ну почему для детей? норм конторы пилят на нем продукты.
другой вопрос, что, как и в svelte за ангуляр не шарю, но там, вроде, тоже - из-за псевдо-html-шаблонов нет сквозной статической типизации в typescript. если бы не это, выбросил бы реакт уже, уж больно в svelte пиздатая идея.
а так, конечно, реакт сила.
еще в китае очень популярен.
Надо из одного элемента копировать вводимую информацию в другой, по мере ввода (на реакте, вроде, такое любят показывать в демонстрационных примерах).
используемые инструменты
- nodejs
- http://npmjs.com/request
что я делаю
с помощью модуля request я планирую создать stream и получать с сервера текстовый файл по кускам через on('data',handler). мне нужно получать его как буффер, поэтому я ставлю параметр encoding:null
вопрос: есть ли вероятность того что многобайтовый символ разрежется и одна его часть попадёт в конец одного чанка, а другая в начало другого? можно ли предотвратить это?
зачем тебе это?
долго обьяснять
что именно вызвало сложности?
onchange
Лысый из ибм - https://www.youtube.com/channel/UCn-P_F0tfY21cfnkyv2lsRQ
Лучшее, что есть на ру ютубе по верстке.
>есть ли вероятность того что многобайтовый символ разрежется и одна его часть попадёт в конец одного чанка, а другая в начало другого?
да, почти 100%.
>можно ли предотвратить это?
да, нужно взять/написать самому декодер utf-8 с поддержкой потоковой обработки. есть встроенный класс TextEncoder, который занимается примерно этим (см. опцию stream): https://nodejs.org/api/util.html#util_class_util_textdecoder
Всем BLM посоны
покажи код. в целом для джуна этого должно хватить. генераторы могут понадобится в этом стеке только если саги будешь вмесно санков юзать. но я бы сказал их мало где используют сейчас.
на собесе, думаю, буду вопросы про хуки, методы жизненного цикла, рефы , как предотвратить ререндер компонента и т.п.
Ну вот что-то такое, не знаю, что конкретно показывать.
хорошо выглядит как для вкатывальщика.
абсолютные импорты первые всегда идут
если у тебя в функции нет нихуя кроме возвращаемого значения, зачем вы все блять return пишете.
можно просто
const Component = props => (
<div> ....
);
композ довольно сложная хуйня. у меня коллеги отказались от него
>>если у тебя в функции нет нихуя кроме возвращаемого значения, зачем вы все блять return пишете.
Не был уверен, что там не будет никакой логики изначально и так как-то код более одинакого везде выглядит, ещё дебагер всегда сунуть можно, знаю, что чище через браузер дебажить, но никак на него перейти не могу, тупа быстрее выходит, если написать debugger, попасть в файл, а уже там издеваться над ним через браузер. Сяп за рецензию, анон, добра тебе.
Уже, стандартным форматированием в vscode пользовался, но чёт он из коробки не очень с jsx работает, а в чём проблема? Вроде всё отформатированно.
кавычки в импортах разные у тебя.
у кого как - я всегда в импорте и строках одинарные ставлю. двойные только если пропсы компонента задаю.
Еще глянь react testing library. лишним не будет
Сам жс на какой-то из ранних стадий планирования хотели назвать мочой - этот фреймворк из истории жс и взял эту идею.
К.О.: это такой сорт кофе
> перегрет дебилами после курсов, которые не могут нихуя
Вот этот прав. Я не считаю себя хорошим кодером. Я просто старая жс-макака. Но у меня волосы на спине встают дыбом от того, что пишут мои джуны.
Жс и жаба - две самых уебанских экосистем по причине загаживания их вкатывальщиками с курсов которые даже не то что бы тупые, а просто даже не желают пытаться напрягать извилины. Их убедили, что можно писать любое говно и получать 300кк в наносекунду и это и есть их план успеха.
а ещё такой вопрос. если допустим цепочка из десяти потоков, это оптимально? мне просто знакомый сказал (не js'шник), что использование стримов приводит к постоянному переключению контекста выполнения, что замедляет работу и использование большого числа стримов приведёт к тормозам (в отличие от непотоковой обработки). что думаете на это счёт?
ПС. в моём приложении оптимизация действительно важна, а отказываться от нодежс не собираюсь
А, ля, действительно, ну сейчас уже поставил, хе. А чу не jest? Он же по умолчанию в cra стоит. Или я что-то путаю и это либы которые вместе юзаются? До этого немного с mocha и chai ковырялся, когда learn.javascript.ru проходил, про жасмин читал или как-то так, вот.
Про что почитать про колбэки? Про всплытие? Про всё есть на learn.javascript
Мне казалось, что во фронте конкуренция норм так по сразвению с теми же бэком и десктопом. 2 одногруппника, которые посредственно кодили и которым я помогал с решёткой на изи нашли работу на ней, а я вот сижу ебашу js и верстку уже полгода и страшно идти на собес. (
jest это фреймворк для тестирования (запускает сами файлы с тестами, считает покрытие итп.). react-testing-library - библиотека-набор-утилит для упрощения тестирования реакт-компонентов.
Понял, сяп, анон, теперь выстроилось некоторое направление в котором дальше буду развиваться, добра тебе.
сложный вопрос, я думаю, производительность сильно зависит от характера данных, с которыми ты работаешь (непрерывный поток vs. десятки тысяч коротких сообщений за короткий интервал времени).
в общем и целом, если ты не можешь открыть исходники ядра прыщей и самому на него ответить я, например, не могу - не парься, вряд ли ты заметишь какие-то просадки.
вообще, когда напишешь код, сними метрики нагрузки (iowait и прочее) и потюнь кол-во потоков для оптимальной утилизации цпу.
Зря не оставили. жс та ещё моча.
данные обычно опускаются по иерархии.
обычно поднимать надо, когда у тебя стейт компонента хендлится из его чилдренов.
Допустим у тебя есть компонент с методом:
const Component = () => {
const method1 = (var) => console.log(var)
return(
<div><ChildComponent action={metho1} /></div>
)};
И вот реализация ребенка:
const ChildComponent = (props) => {
const zlp = 10 // рандомная переменная. у тебя может быть инпут и прочая лабуда
const handleClick = () => props.action(zlp) - тут мы вызываем функцию, которую пробросили сверху. по факту она вызвается в компоненте выше по иерархии с аргументом что ты тут вкинул.
return(
<div><Button onClick={handleClick} /></div>
)
Надеюсь я вообще правильно твой вопрос понял.
Ну если это то о чем спрашивал - должен понять
сам спросил, сам сразу ответил: в хроме можно включить колонку "Connection ID" в "Network".
Антохи, я ща вздёрнусь. Что я делаю не так?
Есть подключение к вебсокету. Оттуда идут сообщения:
(index):439 message {"args":["{\"in_fanclub\": false, \"to_username\": \"buhtercup\", \"has_tokens\": true, \"message\": \"\", \"tipped_recently\": true, \"is_anonymous_tip\": false, \"dont_send_to\": \"\", \"from_username\": \"supercinq\", \"send_to\": \"\", \"tipped_alot_recently\": true, \"amount\": 30, \"tipped_tons_recently\": false, \"is_mod\": false, \"type\": \"tip_alert\", \"history\": true}"],"callback":null,"method":"onNotify"}
Как мне сука достать amount? Мать его щупал, я что только не пробовал. Пока работает только общий вывод
chat.onmessage = function(msg) {
obj = JSON.parse(msg.data);
console.log(obj["args"]);
}
Есть сайт, я через расширение добавил в него ссылку. Я хочу что бы при нажатии этой ссылки открывался сайт, который лежит НЕ НА СЕРВЕРЕ, а в папке расширения на моем компухтере.
Как ето сделать?
как и в любой другой сфере. есть долбоебы от природы, которые могут годами сидеть тыкать кнопочки, не понимая даже, как работает фреймворк, на котором они пишут
obj.args[0].amount, не? правда предварительно стоит проверить, что массив не пустой.
Что бы из коробки было побольше всего, вроде юзверей и прав, может быть готовой админки, да и, в целом, полаконичнее код.
AdonisJs. Больше не знаю. Может еще NestJS.
Что значит масштабируется?
Достаточно толстый монолит на экспрессе. Запускается в кубере и автоматом скейлится.
Там ещё побокам микросервисы на го.
А что за проект?
Разделять ячейку на отдельные ячейки?
если интересный продукт, то рассмотрю с компенсацией 30-40к + процент от будущей хуйни
Я просто работаю за 200к в офисе.
могу тебе 90% своей работы скидывать за 40-60к если хочешь.
+ буду в роли консультанта по коду.
т.е. ты получаешь бабки и пишешь код, а я освобождаю 90% своего времени
Интересно, насколько это реалистично. Ведь так можно несколько работ найти, каждую на 200-300к. И получать целую кучу денег.
вполне, особенно на удаленке.
правда очень скоро коллеги обнаружат, что код помидора-200к/нс очень уж сильно отдает джунским душком. далее возможны варианты:
1. выебут за то, что проебывается, вместо нормальной работы.
2. нарекут петухом и постараются избавиться как можно скорее.
есть у меня такой коллега, сегодня впервые задумался, а может он так и делает, лол. нанял рабов каких-нибудь за 10%, а сам в хуй не дует. код - полное говно. с чуваком мы по второму варианту пошли.
вообще по опыту работы с джунами, крайне не рекомендую так делать. чел думает, что он будет 10% писать код, 10% объяснять джуну, а остальные 80% кайфовать. на деле он будет 20% писать код и оставшиеся 80% подтирать говно за своим рабом. значительно проще писать все самому (за 50% времени), а остальные честно проебываться.
я бы доебался до следующего:
1. форматирование. тебе там правильно предложили поставить prettier и formatOnSave: true, это мастхэв. неплохо еще преттиер в CI запускать с флагом -c.
2. прошу тебя, не используй вложенные тернарники. это ад в поддержке. пиши по-дедовски, как на пикриле. в эту же копилку хуета типа +x вместо Number(x)/parseInt(x, 10), я бы в продакшен коде за такое руки отрывал.
3. ну и юзай деструктуризацию.
если ты Синьер , то работу найти не проблема.
Это только джунов можно напугать палкой-увальнялкой
Как же заебала вся эта реклама.
Такое впечатление, что её специально встраивают на сайты, для слежки и просчета посещений, при её выгрузке.
Постоянно встраивают её даже в ютуб, все эти баннеры ебучие, ролики рекламные,
вся эта хуйня мелькает везде, и по два по три раза надо пропускать эту ебучую рекламу, блядь.
Даже адблок не помогает, её блокчить, и говно просачивается сквозь него.
Можно как-то встраиваемый внезапно контент, автоматически определять, и сразу же предлагать вырезать его, нахер?
не такой маленький, конечно, чтобы в каждой компании про тебя знали, но сюрприз может быть неприятный. при мне забраковали так 2х помидоров за год, были знакомые, которые рассказали, какие они пидорасы и хуесосы.
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720 (OP)
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
ПЕРЕКАТ >>1724720
Какого Костю?
На тех же конфах, одни и те же компании, одни и те же лица. Рынок небольшой, нормальных контор и того меньше.
сап погромач!
на связи типичный вкатывальщик - начинал с верстки, потом ванильный жс и теперь вот я типо реакт девелопер
на работе особо не заебывают, поэтому я сначала написал небольшой фулстак с node и graphql, потом стал упарывать нейтив, сейчас доделываю мини-клон инсты на нем
тема с приложухами мне прям нравится и хочу вкатиться в разработку ios прилжух, поэтому думаю начать изучать swift
как считаете норм идея, легко будет после жс разобраться в нем, или может вообще забить и поискать работку как нейтив разработчик?
просто чет не уверен что нейтив прям часто юзают для приложух, или я не прав?
1) Реакт нейтив юзают часто.
2) Разобраться будет не легко. Это ооп язык со своими купертиновскими причудами. + среда разработки тоже мудреная и багованая. Короче будет тяжко. Я бы посоветовал идти на курсы. Хотя касательно жс я категорически против курсов. Т.к. порог входа смешной
Нейтив часто юзают, но найти работу новичку будет сложнее, чем на свифте.
На собеседовании с тебя спросят втройне, и за реакт, и за андроид, и за iOS.
немного не соглашусь. спросят за нативные модули. если умеешь писать нативные модули и вьюхи для реакта то тебя взяли
да. но там не сложно. главное найти не устаревшую статью о том как это делается.
вот нативно писать вьюху это гемор насколько я знаю
ну тебе чтобы нативные модули писать не надо целиком учить оба языка. тебе достаточно знать как классы объявлять / наследовать , методы в них и т.п.
я вот помню впервые охуел, когда под андроид чето надо было сделать. и там в примере кода (без импортов) был какой-то объект/класс R. Оказалось что это какой-то рантайм класс который во время работы приложения инитится, и я долго искал откуда его импортить. Ну крч, ебаться приходится
А если бы посмотрел какой-нибудь курс по андроиду, даже самый базовый, то не акуевал. Об R в самом первом уроке все рассказывают.
не буду спорить. но у меня была таска, и смотреть на курсы по андройду времени не было
Все же мне кажется это в другую сторону больше работает, сначала чувак учит swift/kotlin(java), а потом переходит на реакт нейтив и пишет модули. Из JS в нативные модули будет сложно ИМХО
Но для не сложного приложения это все не нужно, достаточно готовые модули использовать
Это не показатель, почитай что такое legacy, если они писали на нем то и будут писать еще 2-3 года.
java сейчас как и delphi , люди пишу, проекты есть, но это legacy
Все так?
Это копия, сохраненная 11 сентября 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.