Это копия, сохраненная 14 июня 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Есть какие-нибудь бесплатные либы с компонентами, использующими tailwind css? А то я заебался реализовывать всякие спойлеры с нуля.
Хвостоветер используют, чтобы высрать прототип и съебать в закат, какие компоненты?
Чтобы в это высранном прототипе помимо статичных компонентов были интерактивные, не?
Предположил, что эта проблема решается через заголовки ts. Так вот могу ли я без ts использовать d ts? И как мне добиться моей цели?
Что тебе мешает эти пути запихнуть в отдельный модуль и через его импорт обращаться к ним?
Ты все правильно сделал в первом файле, только вместо = надо использовать :
declare global {
huy: string;
}
>Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Я думал итак понятно написал. Вот например у меня в html есть
<input class="kakoyto">
я хочу чтобы я в style.css подключенный зашел, написал .k и у меня в предложенных были названия классов на k из html в т. числе этот "kakoyto"
Почему в вебшторме всегда все работает, нечестно.
p.s. как на vs code это добавить мб кто-то знает?
По реакту можно вопрос?
пишу npx create-react-app my-app
У меня всё устанавливается, пишу yarn start - разворачивается дефолтная страница с логотипом. Пробую изменить текст в App.js, сохраняю - ничего не меняется.
В чем может быть проблема, в гугле невнятная хуйня какая-то.
Никак =).
Используй css-модули, там он автоматом тебе предлагает вставить в твой шаблон код из css файла но не наобарот
>>00619
>По реакту можно вопрос?
Можно
>create-react-app
Нахуй надо. Не используй CRA, лютая параша.
>>00619
>Пробую изменить текст в App.js, сохраняю - ничего не меняется.
Что в консоли браузера?
>там он автоматом тебе предлагает вставить в твой шаблон код из css файла
Я итак использую, ничего он не предлагает, наверное это тоже вебшторм
Ну хз в чем может быть проблема. Проверь еще, открылся ли вебсокет во вкладке network. Попробуй готовый бойлерплейт для вебпака или vite вместо create-react-app.
Ну я ведь правильно понимаю, если текст в апп.жс менять и сохранить, оно должно сразу применить изменения?
Ну если простыми словами - да. Webpack (который находится внутри create-react-app) начинает следить за всеми изменениями в файлах и при их наличии либо обновляет страницу, либо динамически меняет компонент (это называется HMR, реакт его поддерживает). Информацию об обновлении он отправляет на страницу по вебсокету.
Соответсвенно, если у тебя сервер поднялся, вебсокет работает, но обновления не происходит - скорее всего вебпак просто не видит изменений в файловой системе.
Короче, если не хочешь ебаться с этим вебпаком попробуй просто другой сборщик, например vite:
npm init vite@latest my-app --template react
npm i
npm run dev
https://webpack.js.org/guides/hot-module-replacement/
Since webpack-dev-server v4.0.0, Hot Module Replacement is enabled by default.
> All we need to do is update our webpack-dev-server configuration, and use webpack's built-in HMR plugin.
Конфиг вебпака трудно кастомизировать, потому что он спрятан
Хотя там вроде детач есть, который этот конфиг поближе перетаскивает
Я уверен что я еблан и что-то делаю не так(((
вот пример одного проблемного модуля - https://github.com/artnavsegda/scene-server/blob/main/media.js
из очевидных пока для меня веще то что это все дорлжно было быть как минимум на тайпскрипте потому что основная честве времени что с ним происходят это рантайм ошибки связаными типобезопастностью и null safety
но мне кажется все еще глубже и я фундаметально проекты не умею разщрабатывать а получилось накидать то что едва работает теми способами которыми я кое как умею
Возьми и проверь. Зарендери несколько дсятков тысяч элементов и посмотри на расход памяти
Ок. Кодревью так кодревью.
Осень много повторяющегося кода.
Осень много хардкода.
Я бы соватовал таки про ООП и паттерны почитать. Как бы жс-няши не пытались от него сбежать, без ООП получается бяка. В твоем случае - у тебя бы было два класса: Source и Room
Ныааааа по ебалу лично от сеошного индуса, понравилось отлаживать баг, который даже не ты создал? Ахахаха. Спасибо, мистер индусец.
И в чем тут баг, если этот долбоеь использовал совершенно разные окружения, с разными перемееными path? Установку производил в винду, а запустить пытался под линуксом?
Case
When "huy"
Wheb "pizda"
...
Httpclient.get("127.0.0.1/api/getHuy")
У тебя завтра хуй и пизда переименовались в пенис и вагина, апи переехал на другой адрес, и ты по всей своей помойке меняешь адреса, кейсы, ифы....
Что такое осень много кода? Плачущие джуны под столами.
В коде размножаются баги косяками
Очень я давно доволен не был.
Домэйн Драйвен Тестинг?
Востребованы ли эти навыки?
>вообще тестирование
Всегда полезно, если уметь применять, если проект ведется с хорошей культурой программирования. Да и вообще как область нужно изучить, она не такая большая, но расширить кругозор никогда не бывает лишним, в какой нибудь ситуации поможет повернуть мозг так, чтоб решить проблему. Какой либо инструмент изучать углубленно не стоит, а вот общие принципы очень даже.
Лишним точно не будет.
>Все элементы захардкожены.
Нахуя тебе тогда класс? Ты мнодество инстансов все равно не создашь, максимум один таймер на window.
Сделай лучше, что бы в конструкторе каждый раз создавались новые элементы и вставляет их после указанного слелектора или элемента в аргументе для каждого инстанса
>this.countValue;
Чи шо
>warningSpan.innerHTML = `correct value ${valMin} - ${valMax}`;
Зачем ты всталяешь в innerHTML это? Надо вставлять в textContent
>setInterval
Где проверка на то, что прошло именно 1000 мс, а не 999 или 1001? То, что у тебя стоит число 1000 не гарантирует того, что пройдет ровно одна секунда.
>el.setAttribute("readonly", true);
Палю годноту: el.readOnly = true;
Да, ничего так. Хотя походу оно работало и это я тупой, надо было сначала цифру отсчета написать.
Единственный косяк, что он первую цифру сглатывает.
Блин, пасибо за обратную связь, пойду исправлять это говно.
>Сделай лучше, что бы в конструкторе каждый раз создавались новые элементы и вставляет их после указанного слелектора или элемента в аргументе для каждого инстанса
Это не понимаю. Т.е целесообразнее класс заменить на конструктор?
Конструктор - это функция, вызываемая когда ты создаешь инстанс класса через оператор new. Тебе нужно в него передать аргументом либо жлемент, внутри которого ты будешь создавать таймер, либо селектор, по которому ты можешь найти этот элемент в текущем документе.
new SosachTimer(document.getElementById("sosach-container"))
new SosachTimer("#sosach-container")
Пытаюсь заменить неразрывной пробел в строке.
В jsfiddle всё работает нормально:
https://jsfiddle.net/hg0zcvk7/
В chrome не работает нормально (пикрил):
Это хром мозги ебёт?
>В chrome не работает нормально
>В jsfiddle всё работает нормально
Ты жсфиддл открываешь через хром? Если да, то, возможно, у тебя старая версяи скрипта просто закешировалась. Попробуй обновить через Ctrl+F5
Да, через хром.
Когда вношу изменения в код, то всегда обновляю через CTRL+F5.
Проблема именно в том, что когда исполняется javascript-код на странице, то не работает.
Но если в хроме вызову глобальную фукнцию и передаем ей эту строку, то работает, т.е. пикрил:
> у всех срабатывает focus, кроме последней
Что подразумеваешь под срабатыванием? Навешивание псевдокласса или событие focus? Нужен полный код
Короче я добавил 1px solid black; для него и починилось, но почему базовый так косячит, непонятно?
>>00503
Благодарю, теперь проблема следующего уровня. Хочу пройтись по массиву и каждую объявить в глобале и задать ей тип строка (ниже комментом как бы это могло бы выглядеть, если я бы каждый путь прописывал ручками)
PS То что есть сейчас не жалуется на ошибку, но и не работает как хотелось бы (другими словами у них у всех any тип)
const test = () => { value: 'value' };
ничего не возвращает (undefined), хотя вроде должна возвращать объект. Оказывается, тут "value" воспринимается как метка, а не свойство объекта.
Тому что фигурные скобки открывают тут функциональный блок, если ты хочешь вернуть объект то тебе надо обернуть это все в круглые скобки.
const test = () => ({ value: 'value' });
А, окей, не знал про это. Спасибо.
Самое главное знание тайпсрипта - это тип any. Если видишь, что где-то ругается тайпскрипт просто ставь тип any и не еби мозг.
>че мне нужно знать про тс
Что типизированная ООП ориентированная хуита не нужна.
Реактеры сразу заулыбаются и в губы поцелуют.
Как на счет поверх тайпсрипта запилить еще один препроцессор, который автоматом будет ени ставить?
А если нечаяно тип проставишь - "Ок 200 - Типы запрещены, там выше разберуться"
Для репид девелопмента ткзть
реактеры это больной народ, они себе в жопу проптайпы суют, они даже цсс в жсуретру суют, диспатчат оттягивание кожицы на хуе, пидоры они
Можно линтером запретить все типы кроме any
Вообще не про это
Допустим у меня есть тип T, произведенный с помощью хуевы тучи всяких штук вроде Pick, Omit, Exclude, тернарных операторов и прочего говна
Я хочу увидеть его полное определение без использования постороннего тулинга типа IDE
Сохранять текущий заблюренный инпут в переменной
Смотри. У кнопок есть псевдокласс focus. На :focus на кнопки навешивается белая рамка из стилей. Код к сожалению показать не могу. Постараюсь попозже скинуть, если получится.
:focus-visible пробуй вместо :focus
Собрал в докере бэкэнд
в коде описана сущность, я написал еще одну, тобишь у нас получилось две таблицы, сделал синк с БД, в БД появились обе таблицы. Я запушил ветку где есть две сущности, вернулся на ветку назад, где только 1 сущность, но каждый раз когда я удаляю локально с БД вторую сущность, делаю синк схемы (TypeORM) она опять возвращается, хотя в коде ее нет. Может кто объяснить мне почему это происходит ?
как же хуево и непонятно я написал.
еще раз:
в TypeORM описано две @Entity => схема синк => в БД появилось две таблицы
отлично, результат пушим на гитлаб
переходим на ветку назад, TypeORM описывает одну @Entity => схема синк => в БД все также две таблицы, хотя должна быть одна
Скорее всего, проблема с локальной БД, но не могу врубиться почему так
мб путь до преттир конфига проебался
Не, проверял на Edge
Стили у последней кнопки смотрел?
https://greasyfork.org/en/scripts/432951-rufuker-2ch
Оцени код. Меня возьмут во фронтенд?
Если вынести из конструкторов в отдельные методы "bootstrapObj()" будет заебись?
какой-то странный код, ты раньше на другом языке не писал случайно? Вот я читаю обычно код всяких либ и ничего, а твой с ебанцой какой-то
В детстве ассемблером баловался. А что странного-то? Я согласен, надо разобрать конструктор класса Rufuker, вынести большую часть в метод compile_regex().
Но вот в кострукторе класса TextReplacer2ch ничего не убрать. Там только проверки, без которых объекту существовать нельзя.
>Но вот в кострукторе класса TextReplacer2ch ничего не убрать. Там только проверки, без которых объекту существовать нельзя.
Если объекту существовать нельзя, то нахуя его инициировать?
да вроде всё норм, но я не могу въехать в код ваще. можно доебаться до ооп и использование вар, лет и конст в одном коде. но я нуб, ждём ревью от помидоров
>>02403
>Есле обйэкту сушествовац нельзя, то нахуя его ыныцыыровац?
Хорошее замечание. Хотелось сделать максимально простой для повторного использования класс: создаешь его объект, передаешь свою функцию замены текста и оно работает.
Вот, вынес из конструктора Rufuker подготовку регекса
https://www.toptal.com/developers/hastebin/ibafonupox.typescript
Ну, там есть 2 класса...
Один посвещен конвертированию текста согласно заданных в нем правил:
>да вроды всё норм, но я не могу вйэхац в код ваше
Правила заданы картой из объектов регекса. Там только маленькие буквы. Чтобы не писать повторно правила для больших, пришлось добавить в классе UPPERCASING этих правил.
А на втором пики точенные. Он работает с DOM макабы, отслеживает появление новых постов и попапов, заменяет в них текст, вызывая функцию конвертации из первого класса. При инициировании он сначала заменяет все посты в DOM'e, затем запускает 2 обзервера:
1) Обзервер для выявления попапов выскакивающих при наведении мыши на ссылку с номером поста, а также для подгружаемых постов при скроллинге корневой страницы борды.
2) Обзервер для выявления постов добавленных в треде автообновлением. Этот обзервер нужен только в треде, на борде автообновления нет.
>отслеживает появление новых постов и попапов, заменяет в них текст
Звучит как две задачи, сделай два класса
Осло, в первом классе один метод и нет стейта, звучит как функция
Может у тебя миграции в бд лежат и при старте выполняются?
>Звучыт как две задаче, сдылай два класса
Обе задачи решаются в одной функции-методе https://controlc.com/d0dca04e Конкретно, трехстрочными ветвлениями в середине
if (n.className === 'post post_type_reply post_preview') {
....
else if
Если выносить в отдельный класс, это приведет к дублированию гораздо большего кода. + создание третьего обзервера увеличит нагрузку на ЦП на 50%
>Осло, в первом классе одэн метод ды нет сцяйта, звучыт как функцыя
Да, class Rufuker - обертка для пары функций и массива данных. Состояния нет. Но вот дилема ре-юзабельности:
Сейчас весь код состоит из двух классов. Если захочется использовать такую конвертацию текста в другом приложении или сайте - мы просто берем и используем класс Rufuker целиком, не разбираясь какие там функции для чего.
Аналогично, с классом TextReplacer2ch: если хотим грабать весь текст с двача или перевод постов, то мы просто берем этот класс целиком, не разбираясь что внутри, передаём ему аргументом свою функцию работы с текстом и всё работает.
А вот если разобрать эти классы на запчасти, то потом сложнее будет в повторном использовании. Вообщем, не знаю как быть и что важнее. Реюзабельность кода или его каноничность.
>if (n.className === 'post post_type_reply post_preview') {
Это что за говно. Если у элемента классы будут идти в другом порядке это уже не правильный элемент? А если у него есть еще какой-то класс?
classList для кого?
>хотим грабать весь текст с двача
Я хочу красить посты зеленым, как твой класс пореюзить? "Ну скопируй"
Один класс траверсит ноды, другой их теребонькает, вот и вся каноничность
>Я хочу красить посты зеленым, как твой класс пореюзить?
https://www.toptal.com/developers/hastebin/oniyovujod.php
Советуйте еще, завтра продолжим делать двощ более смишнее.
>Советуйте еще
Определяй все константы чере const, а не var/let/const как у тебя
>if (!document.getElementById('posts-form')) return 1;
Куда ты возвращаешь 1?
Сишный стиль цикла for уже как несколько лет не в моде. Используй forEach или for of
> if (this.workingElement = document.getElementById('posts-form')); else return 1;
Не читаемо, переписывай.
>куча биндингов
Используй стрелочные функции, их не надо биндить к контексту
>названия переменных в змеином регистре
В жс общепринятый стиль написание - это camel-case. Переписывай.
>innerHTML
Медленно работает, реализуй решение без использования innerHTML
>комментарии на закрывающих скобках
Тут вообще проиграл, поставь себе нормальный редактор
И главный вопрос: нахуя тебе тут классы? Ты хуйню какую-то написал, которая пишется на одном mutation observer с одним единственным коллбеком.
>пишется на одном mutation observer
Который обозревает subtree всей страницы. И как это скажется на производительности?
>Используй стрелочные функции, их не надо биндить к контексту
И как в данном случае стрелочной функцией передать обзерверу метод класса Rufuker с контекстом класса TextReplacer2ch ?
1280x718, 0:01
ToDoList - папка с компонентом
- Index - публичная часть компонента
--List - список
--Item - элемент списка
--ListController - Контроллер для списка
--ItemController - контроллер для эелемента
--ListView - шаблон с стилями и разметкой для списка
--ItemView - шаблон уже для эелемента списка
Спасибо
Index это типа то, что в итоге это всё засовывает в документ?
То есть условно всё собирается в ToDoList.js, а потом index.js его засовывает в index.html. Как в CRA App.js сделано.
>И как это скажется на производительности?
Нормально скажется, это не тормознутые DOMEvents. Если грамотно с DOM работать, а не использовать innerHTML то даже быстрее работать будет
>>02568
>И как в данном случае стрелочной функцией передать обзерверу метод класса Rufuker с контекстом класса TextReplacer2ch ?
Пчел, у тебя везде биндятся методы инстанса текущего класса к нему же.
>у тебя везде биндятся методы инстанса текущего класса к нему же.
Напиши мне эту стрелочную функцию вместо бинда.
Написал тебе за щеку, проверяй.
>replaceNewPosts (mutationsList, observer) {
replaceNewPosts = (mutationsList, observer) =>
Ты совсем глупенький?
На обычной странице я бы использовал .click(), но тут хуй его знает, мои познания кончаются, помогите нажать кнопку с помощью JS, нужно для автоматизации процесса над канвасерами, это пример
https://stackoverflow.com/a/18053642
достаёшь координаты нажатия, дальше просто проверяешь, находятся ли координаты внутри кнопки
Вот сейчас не понял, одной строчкой кода здесь не обойтись да? Можно пример по канвасу по ссылке? Имитировать клик по кнопке запуска, дальше думаю разберусь как нажать по остальным
Хрюакт
Армяне в нарды играют.
кажется нет, придётся велосипедить всё вроде как
на самом деле, не еби мозги себе, мне кажется. проще и лучше эту кнопку сделать html элементом поверх картинки
Неужели неясно, что это он спрашивает не про то, как написать что-либо, а как автоматизировать. Это не его код, это не он пишет эту кнопку. Он хочет по этой кнопке нарисованной на канвасе нажать программно.
Что за ахуительные советы вы даете, блядь.
Думал передавать этот state-объект через value в инпут
<input value={state.sec} />
Но нихуя, просто при обновлении странички появляются нули и даже отредактировать инпут нельзя в таком случае.
Как передать значение переменной в input и чтобы он обновлялся каждую секунду?
См. пикчу, стрелкой я указал нужную мне кнопку для примера, как нажать на эту кнопку с помощью JavaScript учитывая то что этот слот выводится с помощью Canvas, так ещё и во фрейме, это вообще возможно?
То что он во фрейме можно обойти с помощью запуска в этом фрейме расширения это ладно, а вот как именно нажать эту кнопку в этом канвасе который по сути является просто картинкой и в нём не за что зацепиться с помощью названия блока я понятия не имею
Ссылка на пример слота https://www.pragmaticplay.zone/en/games/the-dog-house-slot/
Можно пожалуйста простейший пример загрузить на https://jsfiddle.net/
Свои скрипты на сайтах я запускаю с помощью User JS или собственного расширения, так что с запуском проблем не будет, для примера можно просто запустить обычный setInterval который бы нажимал её каждые 3 секунды
если ты заебываешься с нуля, то зачем используешь tailwind? есть material ui, chakra ui и т.д. и т.п.
прочитай основы в документации реакта, я думаю, что ты найдешь ответ на свой вопрос
Ну так я читал. С помощью useRef передавать? Я только с ним особо не разобрался.
Просто когда я пишу let inputEl = useRef(null) и потом в input вписываю ref={inputEl}, то у меня inputEl.current равняется null и нихуя не работает.
Тебе нужно про диспатчить PointerEvents канвасу, в котором передать координаты по которым находится кнопка.
На самом деле тебе это не нужно и ту тупой долбоёб. Ты должен отинспектировать вызываемый хэндер при нажатии на кнопку и просто вызывать его вручную.
>Можно пожалуйста простейший пример загрузить на
300 баксов.
Юзаю <planeBufferGeometry args={[5, 5, 1280, 1024]} /> - Получается поверхность 1280х1024, 1кк точек, выдавливаю по оси z рельеф и натягиваю текстуру, все нормально, но есть проблемы - жутко проседает фпс и обработка кликов по поверхности фризит рендеринг на пару секунд. Дело в моих кривых руках или в том что planeBufferGeometry не рассчитан на использование таких больших значений?
>отинспектировать вызываемый хэндер при нажатии на кнопку
Это типа с помощью брейкпоинтов отследить какую функцию нажатие по кнопке вызывает?
Можешь отладчиком пошагово, если тебе не лень. А можешь просто поизучать навешанные на канвас листенры в инспекторе, и высянить, какой тебе нужен.
Установить ее фоном у body.
Не хоче тащить либо в пару сотен килобайт для аккордеона и спойлера
Исправил понемногу, ток не представляю как можно отслеживать время в setIterval.
https://github.com/webPrsnr/js-countdownTimer
backgorund-image: url(govno) no-repeat;
> как можно отслеживать время в setIterval.
Никак, тебе надо использовать таймаут.
Сохраняй Date.now() в переменную и после каждого срабатывания функции вызывай Date.now() и проверяй, что прошло именно 1000 мс. Если там другое число, то назначай таймаут с учетом корретировок.
Согласен, эксперты с жс треда быстро бы им объяснили, в чем они не правы.
Анон я не силён в этом, можно пример как его найти? Дальше думаю разберусь как найти остальные, потому что кликов мне нужно сделать 3-4 в разных местах
300 баксов
Ишешь из этого списка нужный тебе обработчик, потом просто колбек этого обработчика вызываешь как тебе нужно.
В любой
советую vs code или платный webstorm
Внезапно в браузере и можно.
let chkd = $('input[name=bar]:checked', '#foo-opts');
if (chkd.is($('#rb1'))) {...}
else if(chkd.is($('#rb2'))) {...}
else if(chkd.is($('#rb3'))) {...}
}
Обернуть в form и получать её value каждый раз, когда нужно выполнить какое-то действие. Даже жиквара не нужна
Ожидания от структуры?
Добавь файл .env.local и напиши туда FAST_REFRESH=false
Чел на жикваре формы сделать нормально не может, а ты ему реакт советуешь...
>ререндер даже 1к компонентов
На таком количестве компонентов бутылочным горлышком станет сама структура DOM в браузере, а не vDOM из реакта
Если в один объект засунуть, то проще передавать дальше, но наверное выглядит менее очевидно.
То есть например
<Хуй хуйГовно = "ждпюгшою" пиздаГовно = "djythdg" джигурдаГовно = "дгнборпык" />
он возвращает
<Пизда пиздаГовно = {props.пиздаГовно } джигурдаГовно = {props.джигурдаГовно} />
а это возвращает
<Джигурда джигурдаГовно = {props.джигурдаГовно} />
Или лучше
<Хуй хуйГовно = "ждпюгшою" пиздаДата = { говно: "djythdg", джигурдаДата: { говно: "дгнборпык"}} />
<Пизда пиздаГовно = {props.пиздаДата.говно} джигурдаДата = {props.пиздаДата.джигурдаДата} />
<Джигурда джигурдаГовно = {props.джигурдаДата.говно} />
а бля, там скобочки одни проебал, но понятно наверное
Зависит от компонента. Но в целом метасвойства и опции компонента пихай в пропсы, а его наполнение - отдельным объектом.
Есть простое реакт приложение, есть большая мускл бд с которой мне нужно это связать, сделать регистрацию, вход, роли и прочую ебалу
Какими тулзами мне это лучше делать? Хочу что-то с нодой, но как мне это с фронтом связать?
Дали делать бэхэнд, а у меня вообще понимания по нему нет мне пиздец
Каждый раз как напиваюсь, вспоминаю, что ни с кем не общаюсь в обыденность уже лет десять, и сразу эта ебучая одинокость накатывает.
Зачем. Ничего не надо. Ванилы хватает на все. Веб-компоненты нативны и полнофункциональны. Современный CSS покрывает 99% вопросов визуализации.
Кефир.
Аноны, есть приложение на JS. Вопрос - есть ли способ определить, как часто выполняется та или иная функция в нем? Хочу пооптимзировать код, и хочется начать с того, что чаще исполняется.
Тогда второй вопрос - как определить, как часто выполняется та или иная функция в JS?
Через devtools вставь в функцию нужный тебе фрагмент кода
>большинство вакансий требует Vue
Нет.
>Видимо я никогда себе работу не найду.
С таким подходом - точно.
Открою секрет, если ты придешь на вакансию вьюдераста будучи реактодебилом , то вполне можешь его пройти, ибо они очень сильно похожи
Ну я вот ввожу "Frontend Junior"/"Javascript Junior" и во-первых, вакансий меньше сотни даже на хх (было больше), а во-вторых в некоторых даже PHP еще требуют. Мне что, еще и пхп учить?
Буду рад любым отзывам https://frontendly.dev/
Пока только начал, так что только один урок доступен
> я вот ввожу
>Junior
Ждун, мидл и синьор это грейды компании, разные компании выдвигают разные требования.
Ищи просто вакансии, грейды указывать в вакансии необъективно, что считай как не совсем адекватно.
Смени хх на линкедин.
Доктайп пропустил в первой теме.
Переход к CSS непонятный.
Не хватает оглавления с гиперссылками по урокам.
Адаптивности нет у сайта.
Без интерактива обучение никакое, большинство просто промотает уроки.
Загляни как другие это реализовали, например в гугл сторе есть куча приложений по обучению.
Спасибо, за развернутый ответ
Может и лучше
>Без интерактива обучение никакое
А про какой интерактив речь? Глянул пару приложений в апп сторе. Ну там сухая теория в основном, то от чего я хочу уйти и проекты какие-то за подпиской скрытые сходу.
а на линкедине разве не только англоговорящие?
Если у тебя пост это компонент, то при добавлении нового поста никакого перерендера не будет, будет именно аппенд.
Согласен. Неприятно что на вью та же задача требует в 2 раза меньше кода И осознание проебанного времени на реакте.
Типичный вьюдебил.
Ты молодец, подошел к обучению с практической стороны, обрати внимание на html academy. Можешь много фишечек подчерпнуть. Прогрессбары, ачивки, но самое главное интерактивный редактор.
Кстати, вдогонку вопрос к другим рабам, которые официально работают, вы как легализовали доходы? Самозанятость? Я вряд ли буду не на наш рынок работать, но для общего развития интересно.
JS / React, мухосрань, удалёнка. Потому что набираюсь опыта на первой работе
Нихуя себе, покажи как.
В гугле поищи, там все есть
Знаю парня, который пару лет 600 в месяц делает, налоговая пока не ебет.
Если не будешь сам нарываться типа в политике копрозицией заниматься они и смотреть на тебя не будут.
Если ты не можешь изучить документацию на наглийском, то ты не годишься на должность разработчика
Нет, выкинет ошибку если уже есть директория или файл с таким же именем.
Я могу, просто хуже дается понимание, на родном языке проще понять.
Наверняка ведь что-то есть, аноны не жмитесь!
Алсо, как я понимаю, тайпскрипт это просто про указание типов? А всё остальное это обычный ЖС?
>тайпскрипт это просто про указание типов?
Ну там еще компилятор есть, но его использую в основном только для ноды, на фронт компилирует babel. А так да, в целом он просто про указание типов.
>Наверняка ведь что-то есть, аноны не жмитесь!
https://www.google.com/search?q=typescript+уроки
Репозиторий если что приватный и пушил я в собственно-созданную ветку dev, а master простаивает.
Не за бесплатно(по цене договоримся) + общение.
Добавить `postbuild` скрипт, в котором можешь очищать хоть свою мамашу.
>и без этого норм живется на обычном JS
Ты в курсе, что все эти подсказочки в жс файлах в вскоде - результат работы тайпскрипта? Без него ты бы хавал пофайловый жсдок без всяких подсказок лол.
Так раз это реализовано на уровне IDE, то нахуя мне самому изучать тайпскрипт?
бамп
Почитал комменты и хочу спросить, жсеры, вы почему такие конченые?
Думаю сначала уже дочитать Кантора (сейчас на 2/3), потом захерачить что-нибудь мощщщное на тайпскрипте.
https://ferrisbuellerscodeday.github.io/todo/
Тому что вс код будет тебе подсказывать только в пределах одного файла.
>Думаю сначала уже дочитать Кантора
Дурачёк что ли? Какой Кантор? Лучше бы учебные материалы гугла почитал и то больше пользы.
https://web.dev/
https://developers.google.com/web/
> Есть тут люди, которым нравится менторить? Очень хочу лампового ментора
Если ты тян, то иииизейшая задача, тебя с руками и ногами оторвут опытные кодеры песдалисы. Если ты кун, то уже сложнее, чтоб тебя бесплатно менторили надо, чтоб ты был альфаЕрохиным. Только для баб и для альфаЕрох всё бесплатно и везде дорога. Если ты не из них, то вероятно придется платить баблоу.
А ещё ты можешь как-нибудь тяном прикинуться. Придумай что-нибудь. Я вот во втентаклии сидел в одной какой-то беседе для вкатунцов и для тех кто уже вкатился, там когда парни какие-то вопросы задают, то другие на них лениво и пассивно-агрессивно отвечают, типа загугли ёпта. А там одна тёлка начала жаловаться, что до диплома чуть-чуть осталось, а она не сделала на Реакте приложуху. Так там сразу нарисовался олд Одмен 35+ лвл. и бесплатно за вечер ей всё накодил.
Так что притворись тяном и тебе всё сделают от и до.
Тебе, чтобы эти подсказочки читать, один хуй синтаксис тайпскрипта нужно знать.
Я и так тян. Мне претворяться не надо)
Но и прошу сделать это за бесплатно. У всего своя цена должна быть, иначе челик просто однажды сольется.
Есть вар, конечно, попиздовать на сайтики менторов, но там оверпрайс пиздец. Отдавать за занятие по 3.5-5к - пока возможности нет, я не наносек.
Песдалисы скорее сами платить будут, чтоб учить тяна.
Допустим, ты не семен. Какая у тебя цель? (Например, хочу знать это и это, через столько времени) Какая у тебя база? (Что ты уже знаешь и на сколько ты оцениваешь свои текущие знания?)
Если глобально - хочу сменить текущую работу и забыть как страшный сон. Если по факту - хочу на данном этапе делать сайтики(по типу как с awwwards, там челы такое месиво устраивают, на их шизоидном расстройстве можно очень хорошо набить руку) или браузерные приложения. (мечта освоить реакт(натив же да) и перейти в моб. разработку, но это потом как-нибудб)
Что умею? Это вопрос интересный, по стандарту уже неплохо ориентируюсь в html, css. По лерн ява скрипт начала изучать переменные, объекты, массивы, условия. Дальше пока не прошла.
Хороший справочник. Прошелся по нему быстренько и потом уже знаешь, что нужно и где быстро посмотреть.
За ресурсы спасибо, посмотрю.
На вебкам иди, какого хуя в айти забыла
unknown[]
Покупаешь/скачиваешь курс Creative JavaScript от Dev Ed. По JS можно также глянуть курсы от Brad Traversy и Net Ninja. Я не помню их названия, на udemy/рутрекере есть.
Когда посмотришь 3 разных курса по JS, то начнешь нормально ориентироваться в языке. Алсо я бы не выбирал курсы длительностью больше 25 часов.
Дальше смотришь этого чувака - https://frontendmasters.com/teachers/will-sentance/
Начни с Hard Parts, v2. Если денег на подписку нет - рутрекер или GitHub Student Developer Pack.
Затем Creative React and Redux от того же Dev Ed и снова Frontend Masters уже по Реакту. Обязательно чтение документации. Вопросы в @react_js в телеге.
Менторы не нужны, вырабатывай навык самостоятельного поиска информации и правильного задавания вопросов.
Алсо можешь записаться сюда - https://rs.school/js-stage0/
Там будут менторы. Сообщество у них классное.
. Нестрогое равенство.
. Используешь лет, хотя ничего не меняешь.
. Глобальные переменные.
. Все строится на ифов.
*. Не стрелочные в аддевентлистере.
По скриншоту это. Если лень самому вёрстку делать, пизди готовые решения, выглядит как кака.
Не стрелочные анонимки хотел сказать? Листенеру тащемта похуй, какие функции передевать, хоть ассинхронные.
аргумент с рест оператором должен быть последним
https://ru.stackoverflow.com/questions/1346833/js-jquery-загрузка-папки-на-сервер-php
>Может я вопрос как аутист задал, не знаю.
Разумеется - тяночкой не притворился и ещё ждал какой-то помощи
480x640, 0:09
я тян, вот пруфы
как написать функцию которая удаляет послее добавленное поле??
Ну, в свое время мне там помогли
>как написать функцию
Ну тыкаешь на кнопочки на твоей клаиватуре и пишешь код, так же как с первой функцией.
Валидации нет, при удалении/добавлении таска перерисовывается заново весть лист, если будет 1000 тасков? Добавь хотябы id = Math.random() и удаляй не по индексу, а по id
> Нестрогое равенство.
Видимо вспомнил об этом на середине или в конце и забыл в остальных местах поменять.
>. Используешь лет, хотя ничего не меняешь.
Переделаю на конст.
>. Глобальные переменные.
Засунуть всё в одну глобальную функцию считается за нормальную альтернативу?
>. Все строится на ифов.
Наверное я как-то неправильно понял делегирование событий.
Лучше просто по id кнопок назначить листенеры, раз кнопок мало?
>*. Не стрелочные в аддевентлистере.
Это действительно глаза мозолит? Или есть какая-то практическая польза в данном случае?
В любом случае спасибо коммент.
Да что там валидировать, это же записульки. Ну максимальную длину ограничу.
Ну я хотел точечно перерисовывать, потом подумал, что тут никто не будет 1000 тасков делать и сделал сяк.
>Добавь хотябы id = Math.random() и удаляй не по индексу, а по id
Мне нужно будет иметь коллекцию с id и проверять её при генерации нового id? Хочется чего-то более элегантного, чем рандом id, буду думать.
Это ж селёдочка, её за такое ласково пожурят и возьмут на работу чтобы "вот заодно и научишься"
> при удалении/добавлении таска перерисовывается заново весть лист, если будет 1000 тасков?
Это же важно только если как он на чистом js через innerHTML, а если реактом, то наоборот нужно вверх всю хуйню поднимать?
>Это же важно только если как он на чистом js через innerHTML
Если ты юзаешь innerhtml, то там в любом случае будет полная перерисовка всех элементов, т.к. все старые элементы удаляются и создаются заного. Обработчики при это тоже теряются
В это время крутится функция, где посекундно с помощью (setTimeout) убавляется значение currentValue (запрошенное время - new Data.getTime()).
Далее есть условие если currentValue меньше 1 сек или меньше 0, то clearTimeout.
Думал, что с кнопочкой будет изи, просто добавил в условие еще и stop, т.е. if (currentValue < 1000 && currentValue > 0 || currentValue > 0 || stop) -> clearTimeout
Но.. нихуя. Кнопочку жму, state stop становится true, а функция как продолжала крутиться так и крутится. Гуглил, ничего дельного не нашел, обращаюсь к вам, аноны.
Что делать? Куда копать?
> Обработчики при это тоже теряются
При хорошо заделигированных компонентах элементы списка в обработчиках не нуждаются.
Да напиши ты в гугле на инглише и пиздуй на нормальный стопкапереполнена
Расскажи пж как будешь делигировать обработчики событий наведения мыши без просадки производительности, я посмотрю.
>Расскажи пж как будешь делигировать обработчики событий наведения мыши без просадки производительности, я посмотрю.
:hover
Как мне сделать тултип над элементом списка, который не выезжает за границы экрана, если список находится рядом с границей?
Есть ли смысл заказывать менторство, через Foxminded, например? Интересует не теория, курсы и прочее с чем сам разбираюсь/разберусь, интересует именно обратная связь своих навыков и умений от опытных разрабов + если есть возможность поработать над реальным проектом, пусть и на роли червя пидора, то тоже неплохо. Или менторство уже никому не нужно в 2к22?
Для демки вполне норм.
Ебался из-за одной строчки 5 часов, пиздец.
В общем решение было в том, чтобы закинуть всё в useEffect, дать зависимости на stop/start и сделать return () => clearTimeout(timeout);
Я так и не понял как это работает, но это работает. Можете пояснить?
У меня в useEffect 3 функции (инициализации таймера - проверка на ошибки и т.п, если всё ок - запускает саму функцию таймера, внутри этой функции в конце выполнения лежит setTimeout, который обновляет функцию каждую секунду, пока не будет неких условий).
А в конце самого хука useEffect этот return. Но я кажется уже понял как работает.
На любое изменение зависимостей он выполняет код, указанный после return и выходит из этого хука?
Не меняй тему. Лови еще вопрос: как мне при наведении на элемент списка (допустим, это ссылка) сделать предазгрузку какого-либо ресурса (по аналогии с докой реакта)?
>этож будет достаточно уникально?
А ты подумал, что будет, если у тебя два ключа сгенерируются в пределах 1 мс? так и будет, если у тебя не совсем некропекарня используй crypto.randomUUID или https://www.npmjs.com/package/uuid
Просто сделай обычную переменную и увеличивай ее при создании элемента списка, наркоман.
Вообще не будет, вряд ли пользователь успеет забить два пункта за миллисекунду, но вообще спасибо. а как сделать чтобы https было? или это тупа от сервера зависит?
Да просто, что делает return в useEffect? У меня как-то в голове не укладывается, чтобы в этом хуке был return.
>Не меняй тему.
Никто тут не меняет тему, это ты тут создаёшь проблемы, а потом решаешь их говнокодом.
>как мне при наведении на элемент списка (допустим, это ссылка) сделать предазгрузку какого-либо ресурса
Какую нахуй предзагрузку при наведении? Ты так и не ответил на вопрос, как мобилкоюзеры будут твои оухенные ховеры активировать?
Хук useEffect(() => setInterval(() => updateTodoState(todoId), 1000), [todoId]) будет выполняться заново каждый раз при смене todoId, например когда пользователь перешел со страницы одной тудушки на другую. И очевидно каждый раз будет создаваться новый такой таймер и висеть на странице бесконечно, когда он нахуй не требуется. Чтобы такого не случалось, нужен способ убрать за собой говно, т.к сам реакт не может догадаться, как ты насрал и где. И если реакту нужно выполнить указанную useEffect функцию заново(например при ре-рендере), то сначала он выполнит функцию, которая вернулась и хука на предыдущем рендере, потому что подразумевается, что ты в эту функцию положишь логику, которая будет убирать за собой насранное в useEffect, например удалит созданный таймер.
Отлично, спасибо за охуенное объяснение, всё встало на свои места!
>а как сделать чтобы https
Если ты через localhost или 127.0.0.1 заходишь, то браузер считает, что это https.
А в других случаях надо на сервере сертификаты юзать.
>>05671
>Какую нахуй предзагрузку при наведении? Ты так и не ответил на вопрос, как мобилкоюзеры будут твои оухенные ховеры активировать?
Пчел, изначально был кейс, в котором ты решил выебнуться охуенным знанием жопаскрипта и предложил вместо событий использовать псевдоклассы в цсс. Я тебе вопросами намекаю, что ты тут неправ и псеводоклассами некоторые достаточно частые кейсы нельзя решить.
Катит, но скорее как справочник. Учебник из него такой себе.
1. Знание Redux может пригодиться Angular-разработчику?
2. Знание RxJS может пригодиться React-разработчику?
Катит. Собственно какая разница и гугл и мозилла - оба выпустили браузеры. Они могут рассказать о своих же браузерах в миллион раз больше, чем абстрактный кантор.
Вся разница - у одного хром, у другого файрфокс. Всё.
>Вообще не будет, вряд ли пользователь успеет забить два пункта за миллисекунду
Пользователь мб и не успеет, а event-loop, который будет отрабатывать события пользователя вполне может. Так что лучше сделай сразу по нормальному, либо на бэке изначально прописывай каждой тудухе уникальный id, либо делай это на клиенте
> скорее для суровых с++ и java
Это для суровых олимпиадников из <anyLanguageName>. Если хочешь задрочить алгоритмы и научиться в оптимизацию то можешь закатываться на любом языке.
Нормальна ли практика создания своей библиотеки на основе той с правками или это пиздец? Подключил бы свою библиотеку с правками и жил бы не тужил, а так что-то сложно.
>что посоветуете годного, чтобы потом если что самонадеянно писать что я фулл стек
Если хочешь накостылить фастом и что бы работало - Vue 3, если хочешь разобраться и именовать себя фулстеком - React
От того, что разраб не додумался сделать проверку на валиданость координат никакой тайпскрипт не спасет.
Ты начинаешь что-то подозревать о папке lib.
state = состояние
new под капотом будет возвращать объект this функции UserCreator?
интеджер и флоат
>unless the function returns its own alternate object, the new-invoked function call will automatically return the newly constructed object.
шо то говно, шо это. Истинные синьор-пиздаболы 300кк/нс использую css модули или scoped стили.
Харкачерирую. Истинные синиоры используют БэЭнВэ
prilozenieDlyaVkata.js
Внутри конкурентные запросы на апи GET anal/job/
Фронт должен слать 150 запросов в минуту в виде ворд документа, все должны обработаться.
Если респонс 200 { ok: ok, message: posholnahuy } , то инстанс Vkatun помечается как zopaGorit и фетчит страницу job.ru/piza-delivery.
Все должно быть паралельным и асинхронным.
Бек должен парсить док, если там есть строчка "zaEdu", то с вероятностью 1% / количество запросов с "zaEdu" за последний час, отправлять "vi priniaty".
>Это действительно глаза мозолит? Или есть какая-то практическая польза в данном случае
Меньше писать, меньше читать, выглядит опрятнее, модно молодежно, а не как у этих вот, это как писать свой велосипед сортировки пренебрегая использованием метода сорт.
Я тебе по секрету скажу, что если нужна помощь тут, сначала надо кратко написать его суть, а потом уже ссылку. Или же просто копипаст сюда сделать.
Иначе это выглядит как "требуется розраб, все подробности в личку", естественно любой нормальный человек скипнет долбоеба.
>Истинные синьор-пиздаболы 300кк/нс использую css модули
А нахера вообще придумали эти эмоциональные стулед css в js, чем привычный подход с прикручиванием CSS так плох был?
Условно есть
type RgbColor = string
type HexColor = string
Из-за структурной типизации понятное дело тайпчек идёт нахуй, какие есть выходы из данной ситуации, и если их нет, то нужно ли вообще типы оставлять как хинты для девов (ну типа тайпчека нет, но ты же не дурак 'hello world' передавать), или просто в комменте к функции описать и не тратить время на это?
Лада гранта или форд транзит?
А зачем?
Ух, спасибо братва, разобрался. Оказывается при срабатывании события в обработчик попадает очень дохуя инфы, огромный массив содержащий целиком всю карту, это очень дорогостоящая операция и чтобы такого не происходило нужно было этот planeBuffer нарезать на много отдельных буфферков, тогда при клике в обработчик попадет лишь небольшой массив. Ебать я дебик
Чтобы вместо позиции "анальная макака" у кабан кабаныча иметь возможность работать на позиции "anal monkey (contractor)" на джона бора. на самом деле чтобі кабан кабаныч мог тебя дороже джону продать очевидно же
<input type="text" value={value} onChange={inputHandler} onKeyPress={keyHandler}/>
И у него есть
const keyHandler = (event) => {
if (event.key === "Escape") {
alert(event.key);
}
if (event.key === "Enter"){
alert(event.key);
}
}
Чому с энтером работает, а с эскейпом нет? Как сделать чтобы работало?
Качество гугления в разы выше как минимум. Да и намного короче можно прямо подробно сформулировать запрос и найти быстро че надо.
Гугл запросы составлять умею, но читать не всегда, так как некоторые конструкции и слова не понимаю.
А с onKeyDown работает, нахуя оно выёбывается?
Нихуя.
'keypress' эвент надо вешать на window
Сверстай пару макетов, 2-3 дня потрать и запомнить навсегда.
Мимо тот же придирчивый анон.>>05349
Что можешь?
Допустим у дива пропсы выглядят так:
DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>
Пока я ничего сложнее создания DivProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> не придумал. Но ведь это костыль, плюс придётся писать новый интерфейс на каждый компонент с новым HTML элементом. Наверняка же можно просто по строчному ключу ссылаться на JSX.IntrinsicElements и получать новый манятип без импортов всяких HTMLAttributes.
Таки всё намного проще оказалось: достаточно ComponentPropsWithoutRef<"div">. Всё равно нужно создавать новый интерфейс на каждый пук. Как сделать так, чтобы условный BaseProps<K> выбирал из заданного списка валидных HTML тэгов и вставлял результат в ComponentPropsWithoutRef<K>? Где-то в доме хранится же этот список хотя бы словарём.
Потому что пока ты залезешь в базульку и выполнишь бекенд действия на нексте, ты будешь тормозить 1000000 юзеров, которые просто ждут от веб-сервера статику
Почему кто-то всерьез обсуждает исползовать var или let/const в 2021? Вроде как Серьезные Пацаны уже давно порешали, что использующий var сразу же объявляется чуханом, переезжает под шконарь и теряет доступ к общаку
Падажжите, люди для статики используют эксперс вместо нжинкса? В чем смысл?
const [items, setItems] = useState([]);
Потом items я передаю как пропс <ItemIndex items = {items} ... />
А внутри ItemIndex я использую props.items.map(...)
И всё работает!
Я собрал это вебпаком, загрузил на гитхаб и оно блядь пишет что TypeError: t.items is null когда пытается вызвать map видимо.
Че за хуйня? Я обосрался с настройкой вебпака?
Какой из них, ссылка не кидает на конкретный
Чому? Я в пропсах передаю же.
Но это не важно, оно же работает, я не понимаю почему одно работает, а другое — нет.
Под капотом у него экспресс. А насчёт отдельного сервера - так это норма на бэкенде плодить сервера, микросервисы же. И если условный API сервер не отдаёт статику - то ему нахуй не сдался весь некстовский вагон в зависимостях. Плюс некстовский сервер можно делегировать до полноценного вротенд сервера, без всяких запросов в бд.
Так запрос в базу не синхронная операция. А во вторых вряд ли запрос в базу тормозит статику, я конечно не знаю что там внутри, но вроде солидный фреймворк, неужели они такой проблемы не решили.
А когда "webpack build --mode=production", то что получилось кидает ошибку.
Ну так и зачем нексту тогда функционал бэка? Какая область применения?
Я как-то запилил через mouseDown костыль, насколько хуево (алсо в итоге я типом присваиваю элемент как инпут хотя он на самом деле textarea, по другому typescript Ругается?
Ладно я пофиксил, вместо всего этого добавил условие в onBlur хендлере
На каждую комбинацию параметров по сервису.
И на каждый день в году тоже - баланс лоадинг, слышал?
не для каждого. переиспользование - версионированные шейрд либы в пакете
микросервисы говно
Нет, а шо?
JS на числодробилке с простыми числами пососал у С++ лишь на 25%. Все остальные (за исключением ГОвна) - в разы. Как так?
каким боком это работает объясните, т.е. мы пытаемся присвоить к переменной массив, а после него идёт вызов функции, ошибка пикрелейтед выскакивает
Ты пытаешься вызвать массив как функцию, в которую передаёшь другую функцию. Потом результат вызова первой функции еще раз пытаешься вызвать как функцию и уже её результат присваиваешь переменной.
Не знал что Go быстрее крестов.
жиды процессоры пилят под жс очевидно же
ниче не понял, [1,2] - это массив, а потом идёт iife, в каком моменте я вызываю массив как функцию?
JS это не твое. Иди читай как вызывается функция, потом еще раз перечитай и только потом задай вопрос сюда.
Почему просто не поставить ;?
Че работает? Ниче ж не пашет
аааа кажись дошло, а почему жс может вообще подумать, что я вызываю массив как функцию? он не может мне написать vi dalbaeb error
Потому, что в ЖС благодаря ООП ты можешь расширить массив таким образом, что он может работать как функция.
О, нашел, спасибо. Не сразу понял где у них там что.
Блять сбилди свою сбор очку и посмотри, что там у тебя в CSS высирается. Вангую ты в индексе импортируешь стили после всех остальных импортов, так что они у тебя идут последними в сборке.
Нет. Я не пропагандирую микросервисы.
>Эта хуевина от мелкософт SSR уже научилась поддерживать хотя бы для реакта? Тогда какой смысл от этих сухих циферок?
Смысол в бекенде. SSR а от майков я вообще не помню для ЖСных либ.
Вы SSR юзерам отдаете?
>Смысол в бекенде.
Как будто на серьезных проектах используют ноду как бекенд, лол.
>Вы SSR юзерам отдаете?
Да
>Как будто на серьезных проектах используют ноду как бекенд, лол.
Справедливо.
>>Вы SSR юзерам отдаете?
>Да
Хм. А зачем? Это же, вроде бы, для ботов только, не?
Увожаемо.
Ну, теоретически, это легко вынести в отдельный кластер. Да и SSR это не дев, а инфраструктурная задача .
Кешируете резалты или не?
>Хм. А зачем? Это же, вроде бы, для ботов только, не?
Гугл тебя нахуй пошлёт с бот-онли серверным рендером.
>Кешируете резалты или не
Ну у нас этим основой бек занят в виде пыхи, нода ререндерит каждый раз с нуля по сути. да и похуй, там в пике 10% загрузка процессора
>Гугл тебя нахуй пошлёт с бот-онли серверным рендером.
Чойта? Он пошлет нахуй только если у тебя существенно контент с SSR отличается от контента с CSR
На зарплату, кстати, похуй. Главное вкатиться и опыт получить, а дальше уже разберемся
хорошо вангуешь, пасиба!
Реакт разрабом, сейчас верстальщиков полноценных мало кто ищет, все пилиться на готовых либах.
скорее ушлые кабаны считают нахуя платить еще и верстале еще фронт и сам нахуярит он ж хтмл и кцц сам знает
Создавай отдельную репу под либу и подключай её гит-модулем в нужные проекты. Так ты можешь пердолить фиксы для либы, не засирая историю коммитов в этих проектах. NPM пакет это уже более поздняя стадия, когда у либы есть устаканненый воркфлоу и правила версирования.
бумерок то прав, крупняк на ноде не пишут, мелкое, среднее запросто за счет скорости разработки, доступности погромистов и более-менее нормальной работе, а на хайлоаде нода обосрется
любая потоковая обработка видео, генерация картинок и прочий процессинг нода не сильно любит и производительность там так себе, не говоря уж о нейронках. когда тестируешь асинхронных код в8 любить чудить, а если уж кодовая база большая ну его нахуй.
Что тяжелее: киллограм ваты или килограм гвоздей?
на микросервисах не обязательно 100% один язык, а тут затирают про монолит
А разве для решения подобных проблем там не используются C++ аддоны и N-API?
Я не доебаться хочу, просто мимо проходил
Отедльный сервис, который с какой-то периодичностью будет собирать данные.
Вообще красиво - когда сторонник сервис тебе на вебхук все обновления пиздолит.
используются, но разговор то был что де нода прям ебет любую задачу аж шуба заворачивается
Нэт. Самые бесполезные это как раз happy path тесты, потому что ломают чаще граничные случаи. А 2 + 2 = 4 никто не сломает, особенно если архитектура нормальная не хрупкая и у тебя 2 + 2 = 4 не случайно получилось и ты на этом довольный остановился, а твердо и четко 2 + 2 = 4.
Так есть ли смысл или нет в итоге?
Пчел, в подобных задачах требующих жесткого риалтайма в принципе ничего кроме С++ и хитрожопых удаленных параллельных вычислений не придумать. Никаких блять жав/хуяв/шарпов тут не засунуть
Все остальные задачи изи тянутся Нодой, которая имеет дохуя либ, легко поддерживаема и ебет по производительности львиную долю маняязыков
Ну так а вдруг какой-нибудь вкатун переделает компонент? Или потом реакт каким-то хуем обновится таким образом, что это название пропса станет зарезервированным под какое-нибудь действие внутри реакта?
>маняязыков
а че у нас самое популярное для больших проектов, спринговая жаба да сисярп, это они то маняязыки, да в них десять раз меньше дырок чем в ноде, но они дороже в разработке.
всякая эзотерика юзается в фаангах, но там они знают зачем ее используют, да редкими энтузиастами, пушто кто его потом поддерживать будет.
ты пойми василий, я не против ноды, на ней замечательно гавнякаются небольшие и средние проекты, как и на рубях, как и на пыхе, когда в хуй не уперлось разворачивать монструозные спринги с дотнетами, но если что то крупное, что потом надо будет масштабировать и поддерживать я ноду не возьму, оно потом в поддержке это латание дырок выйдет дороже, всплывут вопросы перформанса, безопасности, большой кодовой базы, сложность тестирования, оно того не стоит.
не баг, а фича ага
если у тебя есть специалисты, то че бы не использовать, если кабаны не могут себе позволить держать редких погромистов не значит что языки плохие
Написал.
Как я вообще в этот тред запостил?
>>08802
Не забудь тест на каждый геттер/сеттер написать.
Такую хуитку имеет смысл писать, если тебе нужно что-то трансформировать и собрать результат обратно в оригинальное значение. Самый очевидный пример - шифрование.
В остальных случаях просто тратишь время впустую, попутно добавляя оверхеда к разработке.
Спасибо в следующий раз так сделаю, а сейчас уже создал NPM пакет.
У пользователей есть три уровня доступа
1) Покупатель
2) Продавец
3) Админ
Покупатель может
Регистрироваться, менять настройки профиля, восстанавливать пароль через смски, просматривать список товаров, добавлять в закладки товары, пополнять кошелек (простенькую систему фейковых платежей думаю через еще один сервак запилить) делать покупки, переписываться в чате с продавцом
Продавец может
Офорлять заявки на поставку товаров на склад (вручную или csv), на рекламные акции и программы лояльности, отвечать покупателям в чате и блокировать им доступ к своим товарам.
Админ
Управляет заявками от продавца, может смотреть статистику по пользователям и различным категориям товаров
Что еще можно добавить к этой постановке, чтобы в процессе реализации охватить все основные особенности ноды?
>Покупатель может
Дохуя смешанной логики напихано, заебёшься потом реализовывать. Это как минимум 3 уровня - Посетитель (нету прямой привязки к бд), Пользователь (привязка к бд в виде аккаунта) и Покупатель (совершил как минимум одну покупку, необязательно успешную).
>Продавец может
Если будут чаты, то тут нужна прослойка из модераторов. Продавец должен своё говно толкать Покупателям, а не чистить чаты вилкой и блокировать пользователей. Максимум он может репорт кинуть на токсичного пользователя, а там уже модер решит. А если не решит, то порешает админ.
>Админ
Типичный и швец, и жнец, и на дуде игрец. Тут нужна прослойка из какого-нибудь бизнес-анал итика, который разбирается в товарах и прочей юридической лабуде, но необязательно в технической части сайта. Поначалу конечно админ будет и анал итиком, но в определённый момент количество барыг будет расти быстрее, чем админ сможет их перебрать. Так что разделение между ковырятелем нжинкса и серверов и перебирателем макулатуры очень поможет при расширении.
И естественно вся эта система должна быть реализована на уровне скоупов, то есть одна абстрактная сущность можеть обладать неколькими ролями. Ты же пишешь на смузи-стэке, так что там будет сорт OAuth'а, который оперирует на скоупах.
знаю react.js
в общем идея ясна, нужен конструктор страниц
WYSAWYG редактор это не хухры мухры, на всяких тильдах делают кучу сайтов и такие проекты реальное бабло зарабатывают.
Ебать, гениально кстати
Я обычно делаю примерно вот так. Надо попробовать твой способ
[animationState, setAnimationState] = useState({
stage: 'animateThis' | 'animateThat' | null
})
<div
className={`${styles.animatable} ${
stageToAnimationClassName(animationState)
}`}
onClick={() => setAnimationState(something)}
/>
function stageToAnimationClassName() {
switch case huemoe return cssclassname
}
Есть ли настолько же подробные видосы, но с кучей практических примеров, чтобы сделать что-то и сразу видеть как это будет работать на странице? Мне ведь писать простой калькулятор скоро, а я умею только вот такую хуйню выводить на страницу
Минин очень плох с точки зрения академики.
Канал ниже тоже не академический идеал, но намного лучше имхо
Попробуй, мб зайдёт
https://youtube.com/c/itgid
учи кантора как отче наш, лучше пока ниче нет
Да знаю я, добавь таймер, убери таймер, пиздец охуеваю после vue.js Способ рабочий и в реакте и во вью, просто интересуют подводные камни вдруг в реакте хуяня какая всплывает.
>[animationState, setAnimationState] = useState({
>stage: 'animateThis' | 'animateThat' | null
>})
Блядь. Анимации (уровень презентейшена) в стейт запихивать, вы ебанулись уже со своими редаксами окончательно или мне кажется?
Мимо не реактер
Тащемта если ты вкатун (а судя по таким вопросам ты как раз он и есть), то ты нихуя не сделаешь.
>строка | строка | null
Вкатун, плиз. Для реализации отсутствия инициализации у переменной примитива нельзя использовать объекты. используй undefined или пустую строку
>Если компонент шибко большой, то могут быть проблемы с производительностью.
Реактопетухи вновь пососали у вьюгигачедов и свелте-богов. Когда это уже кончится?
>с кучей практических примеров, чтобы сделать что-то и сразу видеть как это будет работать на странице?
Зайди на codepen, там дохуя подобных шаблоньчиков и сразу потыкать можно.
Ну тащемта в этих реактах не завезли нормальной поддержки анимаций. Во вью есть, но там тоже все через бойлерплейт в виде отдельного компонента с применением жс.
Где тут бойлерплейт? Все в один компонент заворачивается, ни строчки js кода <transition name="bounce"> <p v-if="show">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris facilisis enim libero, at lacinia diam fermentum id. Pellentesque habitant morbi tristique senectus et netus.</p> </transition>
Да на vue если key поменять тоже будет принудительно перерендера, но во vue хотябы есть поддержка анимаций и этот хак можно не использовать.
Премного благодарю, анонче
В реакте точно такой же css, к тому же есть css библиотеки анимаций. 847512
Не на что, продолжай проверять, что аргумент таки передался в функцию.
Ты обосрался, null это примитив
Пчел, там нет ограничений по используемым либам, поэтому изи.
Было бы ограничение - ябы сразу нахуй слал таких кабаньчиков.
Литералли гуглиться за пару секунд.
https://codesandbox.io/s/ecstatic-bassi-vlou1?file=/src/styles.css
Благодарю, я наверное не те запросы забивал, мне такое не выдает
ООО, да, охуенно, Спасибо!!!
И что такого?
Весь фронт это вообще одно большое представление
Стейт - это же СОСТОЯНИЕ нашего фронтенд-приложения
И вот мы хотим, чтобы после нажатия кнопки пару секунд она была в состоянии (СТЕЙТЕ) анимации
Кантор.
/pr/
Оба. Еще курсы от инстаблогеров нужно штук 10.
В рот или в жопу?
ТупеСкрипт: чтобы создавать проблемы на ровном месте из ничего
Ясно, реактеры настолько обезумели, что уже не видят, где представление с моделью смешивается.
Это копия, сохраненная 14 июня 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.