Это копия, сохраненная 25 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Больше пары строк кода в посте или на скриншоте ведут в ад.
Для программирования на HTML https://codesandbox.io
Для Node.js с консолькой https://repl.it/languages/nodejs
Если рассчитываешь получить дельный ответ, сформулируй правильно вопрос: «что я хочу получить, что я для этого делаю, что я вместо этого получаю». Если когда самостоятельно найдёшь решение — поделись в треде, мы за тебя переживаем.
Документация - https://developer.mozilla.org
Руководство для вката - https://github.com/acilsd/wrk-fet#javascript
Старая паста - https://pastebin.com/9yRADC0s
let fn = {
'+' : (x, y) => x + y,
'-' : (x, y) => x - y,
};
let a = 1;
let b = 2;
let c = '+';
console.log(fn[c](a, b));
Нихуясе, сам не ожидал что так можно
Html/css там выучил. Про Js там слишком мало. Нужно будет вкупе с learn.js учить. Про остальные темы не скажу. Реакт учу по ютубу и документации
встретил там тебя, больно лицо у тебя довольное было, решил не мешать
Главное что тебе нужно сделать - не сидеть здесь и не слушать советов местных нытиков и инцелов. Нашел себе среду конечно, в которой советов по развитию будешь спрашивать. Не важно где ты будешь получать знания, общий объем знаний, который тебе предстоит получить конечен. А вот получать каждый день дозу дизморали от местных дегенератов тебе точно не нужно, и дегенераты здесь самые настоящие, без какой-то иронии.
Инцел спок. Не мешай чедам обсуждать язык и алгоритмы
Может, надо было кассиром в пятёрочку идти?
Но, там тоже заёбывают бессмысленной хуетой.
Куда деваться?
Это какой-то самоподдув продавца из пятерочки? В каждом треде одно и то же пишешь
test = document.createElement("div");
чтобы можно было написать test.delete() например?
Спок, it петух, я разобрался почему не работало (div был поверх innerHTML).
я бы не спрашивал если бы все так просто было
На воркерах хуячит.
>Элемент сам себя удалять не должен, это грех.
https://developer.mozilla.org/ru/docs/Web/API/ChildNode/remove
Так это говнокодеры же.
Почему код не работает как ожидается? Почему возвращается Object, а не его (его?) содержимое?
алерт кастит в строку
Да.
Нахуя, если есть пистон? У пистона матлиба есть, которая работает на уровне С иногда быстрее. У этого клаа нет ничего. Совсем ничего.
Опять надо добавить флажок, опять надо ебануть штук 5 файлов и с десяток однотипных функций потому-что АРХИТЕКТУРА.
>Опять надо добавить флажок, опять надо ебануть штук 5 файлов и с десяток однотипных функций потому-что АРХИТЕКТУРА
Но мне надо только из одного.
> Лердорф
Кто это? Твой одноклассник, с которым на переменке среакт друг-другу устанавливаете?
В этих контейнерах вяленая слонятина
Иди нахуй
нет, а стоит с него начинать? я просто думал для начала стоит выбрать инструмент который поможет мне развернуть хост ну и затем уже прокинуть роуты. а там уже буду в контексте реквеста парсить
Все было легко читаемо кроме этой главы, толи там примеры ебаные, с обосраными цельсиями/фаренгейтами, толи объясняют мудрено.
Есть более внятное объяснение всплытия событий? В теории понимаю что управляются с самых верхних пропсов, но примеров бы пощумать погуманнее чем в официальной доке.
Да я в курсе, прост ошибся в названии, не вслытие, а Подъём состояния, когда дочерние компоненты управляются родительскими компонентами. Суть не в этом. Есть статейки какие-нить по этой теме внятные?
Да все я понял. Ладно, буду ковыряться в доке по каждому пунктику вычитывать.
А че значит статейки уже поздно?
Нахуй тебе с пыхи на ноду съезжать, совсем пизданулся что ли. Она еще медленнее чем пыха. Съезжай на си, плюсы, эликсир.
Нода нужна как прост для генерации кэша страниц, например.
бабки + проекты в норм конторах. практика показывает что у бэк нод разрабов зп выше чем у пхп разрабов + требования меньше. алсо учитывай что пыха это в основном малый и средний бизнес из за чего денег толком нет, а все задачи сводятся к крудошлепству.
и че значит медленнее ? читал что интерпритатор js работает быстрее чем пыховский.... + есть асинхронность из коробки
Как в ангуляре выполнять валидацию строго на моменте отправки формы?.. Есть подписка:
this.form.statusChanges.subscribe(this.myCallback)
Но она блин вызывается на любом изменении данных формы
что непонятного, передается пропсами какое-то поле стейта родительского компонента и функция менять это поле в родительском компоненте
он его не отдает, он его меняет по ссылке прямо изнутри другого компонента
это к вопросу типа функциональности реакта лол, во вью это через пользовательские события делается, без грязного мутирования
alert(JSON.parse(data))
Прост показывай свои сообщения только когда form.submitted
Угу, хуярить два колбэка строчными референсами, чтобы мутировать стейт, конечно же лучше, чем передавать колбэк конкретно объявленного скоупа.
мутировать стейт между компонентами плохо
кстати так можно и во вью делать но сочтут говнокодом
Сервисы не зона ответсвенности реакта, мань.
Каво? Он во всех браузерах кроме ие есть, а в стандарте уже год с хуем.
По твоей ссылке это и сказано.
https://github.com/tc39/proposals/blob/master/finished-proposals.md
Справедливо заметить, что фронт-то всё равно придётся для него делать, но я мечтаю не юзать для этого электрон, а чё-нить нативное, а там хуй знает.
Реакт это буквально одна функция для менеджмента дерева объектов и пара хелперов для неё. Всё остальное добавяешь отдельно и самостоятельно, включая рендер - react-dom, react-native, ink и т.д.
Никаких подводных. Берешь и пишешь
Пока что ничего умнее не предумал чем по :focus-within менять цвет и проверять его (пока он подсвечен этим цветом, значит какой-то элемент внутри в фокусе).
Пиздос...ну его нахуй
style в jsx - нужен только для управления состояний стиля(тему с белой на черную поменять и т.д)
Основной код должен находиться в css - так легче потом рефакторить всю аппу.
Тут речь ен про производительность а про DRY метод который FaceBook советует юзать
В итоге вот че получилось, анончик.
Сам с нуля написал. И стили и код, (стили срисовывал с двача, юзал пипетку).
Под капотом говно код с одним классом на 70 строк .
По ходу обучения я понял что надо будет потом отрефакторить на чистые функции и декомпозировать это все. Пока вот так.
Ебал голову как новые посты в состояние записывать, почти весь день убил на это. В итоге нагугулил что в массив можно развертывать старый стейт, и новый стейт, одновременно.
Порадуйся за меня анончик! Я так рад. Впереди столько интересного!
Почитал про bubbling phase и родил:
base_item_node.addEventListener("focusout", e => base_item_node.active(false));
base_item_node.addEventListener("focusin", e => base_item_node.active(true));
Наверни node-webkit, базарю, еще захочешь. Блоата не подвезли, зато интеграцию браузера и ноды - исчо как.
а гигабайты - это когда ты на реакте тысячу экранов хранишь
Заебись, всё удобно и не лагает.
Бля, как же я проигрываю от того, что ещё три раза такая утечка памяти произошла, при том что не открывал более одной странички, то есть каноничный СПА экспириенс. Просто вся суть реакто-редукса спа говна, даже сраная дока не может удержаться от пожирания памяти.
Сам-то как думашь? С вебпаком ты сможешь не только среакт собирать. Хотя я уже 1000 пакетов в своём реактопроекте поставил из-за ватаги лоадеров/плагинов/пре-/постпроцессоров. Что впрочем в два раза ниже 2к у CRA.
<form [formGroup]="profileForm" (ngSubmit)="onSubmit()">
>одновременно внутри Promise.all()
this^. У тебя кроме скорости интернета есть еще такая хуйня как установка коннекта, это если не сильно вдаваться в низкоуровневую хуйню. Так вот часто установка коннекта дороже чем передача твоих 5кб жсона
>Объект Proxy позволяет создать прокси для другого объекта
Охуенно написано в стиле java pomoika
> совсем говна въебал?
А что не так? У меня формируется элемент для рендера. Часть данных из базы, часть с левого сайта по апи, часть забивается пользователем, потом все собирается в массив и загоняется в стейт, чтобы без обновления страницы ре-рендерить элементы. SSRа нет. Есть идеи получше?
>>1978160
Ну вот и посмотрим сразу. Проект - пет, что хочу то и кручу. Меня интересует больше использование единого стейта на все приложение без редукса. Это норм?
>А что не так?
То что ты JSX элемент хранишь в стейте
http://web.archive.org/web/20150419023006/http://facebook.github.io/react/docs/interactivity-and-dynamic-uis.html
В самый низ.
>часть
В чем проблема хранить эти части в разных стейтах? Для этого и существуют стейт менеджеры
>Проект - пет, что хочу то и кручу
И да, с такими мыслями хуя пососешь, когда работодатель зайдет в твой код и увидит ЭТО
Ок, как мне организовать ререндеринг элемента без обновления страницы, кроме как засунуть элемент в стейт? Скажем есть список (корзина) куда динамически нужно добавлять элементы. И при этом это не строчка "говно на лопате", которую можно "просто" отрендерить, а карточка товара. Как тут обойтись без стейта? И почему статья такая древняя.
> И почему статья такая древняя.
Потому что первая в гугле по запросу "jsx element in state"
>ререндеринг элемента без обновления страницы
Подключить реакт, внезапно, и желательно еще прочитать блять документацию от начала до конца, чтобы не воротить хуйни
>>1978183
Тот факт, что ты хочешь сделать вот это все выдает в тебе незнание
Ответ на твой вопрос, как всё сделать: подключить Redux в идеале, если ты не хочешь делать с ним, то юзай Context API, оберни весь App в Context.Provider и передай туда глобальный стейт приложения с диспатчером от useDispatch, а когда надо будет что-то поменять, то useContext и диспатчишь какой-нибудь экшн
Но как я сказал, лучше редакс, дабы не ебать себе всем этим мозг, разбирайся
https://blog.logrocket.com/use-hooks-and-context-not-react-and-redux/#usecontext
>Подключить реакт, внезапно
Нихуя себе, правда? Блять точно, ну пиздец, как я мог забыть реакт подключить, точно, сейчас подключу пойду. А каким образом реакт без стейта будет динамически обновлять компонент? Везде написано, что что бы что-то обновить на лету нужно это что-то сделать стейтом, не?
>если ты не хочешь делать с ним, то юзай Context API, оберни весь App в Context.Provider и передай туда глобальный стейт приложения с диспатчером от useDispatch, а когда надо будет что-то поменять, то useContext и диспатчишь какой-нибудь экшн
То есть сделать в точности до последнего символа кода то, что я и собирался сделать, и то что ты назвал "хуевый код"?
>без стейта будет динамически обновлять компонент? Везде написано, что что бы что-то обновить на лету нужно это что-то сделать стейтом, не?
Ну, ты передаеь в компоненты через useContext значение из глобального стейта и обновив глобальный стейт, они тоже обновятся, магия да?
Подожди.
Вот есть стейт, в стейте лежит массив каких-то данных, собранных хуй пойми откуда. Через useEffect при изменении этих данных происходит изменение списка элементов (который не является стейтом) blahblah.map, например, который возвращает уже JSX.Element. И в ретурне компонента рендрится список элементов, который не стейт. Так?
Ок, пример с корзиной, если я уберу из стейта данные для какого-то товара, то на экране ведь не произойдет изменений, потому что список - не стейт. Произойдут изменения при обновлении страницы, но пока пользователь не нажмет F5 все будет как есть, а если он 2 раза удалит один и тот же айтем (которого уже нет), то скрипт вообще сфейлится.
>то на экране ведь не произойдет изменений, потому что список - не стейт. Произойдут изменения при обновлении страницы
Сука, пиздуй читать документацию, а не фантазировать, что как работает.
>useContext
>Accepts a context object (the value returned from React.createContext) and returns the current context value for that context. The current context value is determined by the value prop of the nearest <MyContext.Provider> above the calling component in the tree.
>When the nearest <MyContext.Provider> above the component updates, this Hook will trigger a rerender with the latest context value passed to that MyContext provider. Even if an ancestor uses React.memo or shouldComponentUpdate, a rerender will still happen starting at the component itself using useContext.
Ты заебал со своим контекстом блять. Его неделю назад добавили, представь что у тебя его нет нахуй, но есть необходимость изменять дом, и чтобы это мгновенно увидел пользователь.
>Его неделю назад добавили, представь что у тебя его нет нахуй,
Понимаю)
https://5a046bf5a6188f4b8fa4938a--reactjs.netlify.app/docs/context.html
>v 16.0.0
>неделю назад
Блять ну неужели нет никакого третьего пути? Без редукса и контекста? Чем так плохо засовывания JSX элемента в стейт? В той статье нихуя не написано кроме "пук пук это плохо пнтяненько". Я вот только что так сделал и заметил 0 негативных эффектов.
Блять, ну а если серьезно? Всегда все через контекст? А как блять ререндерили когда не было ни контекста, ни редукса. 16 версий же реакт как-то пропердел без этой хуйни.
Он был большинство времени реакта, есть путь как делать без этого всего: пробрасывание пропсов через все компоненты в нужный, так же и методы из послежднего компонента пробрасываешь вверх, но это настолько обосрамс и тонны лишнего кода, что охуеешь. Если у тебя неебаться вложенность (в крупных приложениях чаще всего, а не туду лист, где только 2 компонента List и Task)
гугли react props drilling , that is the way
Бля, не, ну это совсем кал.
Ну лан, только 2 путя, значит 2 путя.
Я теперь буду пихать редукс в каждое приложение, т.к. не хочу ебаться с контекстом, уж лучше бойлерплейт каждый раз писать. Норм?
Я тебе еще раз говорю, ты щас как слепой котенок который мечится туда сюда, пытаясь дойти до миски с молоком, ты сначала глаза открой.
Можешь скачать какой-нибудь полный курс по react/redux, где тебе сначала покажут реакт, а потом редакс и вообще почему так, а не иначе
Ну и парарллельно читай документацию по реакту и редаксу, там немного
В видео-курсах обычно пишут приложуху, вот напишешь параллельно преподу, вникая во все, а потом уже как будет понимание, как надо примерно делать идешь пилить свои корзины и интернет магазины
>Я теперь буду пихать редукс в каждое приложение
Ну если тебе нужен глобальный стейт доступ в который надо предоставить всем компонентам без ебли, то да, а если у тебя микроприложение, то можно обойтись пропсами или контекстом
>уж лучше бойлерплейт каждый раз писать
Если ты под бойлерплейтом понимаешь архитектуру проекта, то она примерно одинаковая, но там много подходов по разбиению кода. Имхо самый норм, это отдельную папку под store, а там под каждый раздел стора папочку с actions и reducers, можешь отдельно разбить actions и reducers без компонентов, но мне кажется это дрочево, т.к сразу видишь где какой объект стейта
>Можешь скачать какой-нибудь полный курс по react/redux, где тебе сначала покажут реакт, а потом редакс и вообще почему так, а не иначе
>Ну и парарллельно читай документацию по реакту и редаксу, там немного
Ты реально думаешь что я всем этим не занимался? В курсах так-то если что JSX в стейт пихают и в хуй не дуют, а в целых двух курсах, которые я смотрел, сказали, что контекст говно говна и нахуй не нужен. Я это как бы не сам придумал блять.
А в доках просто огрызки инфы уровня: "как это работает". Ну ладно, я знаю как это работает дальше что? Никаких бест практис там нет, итого я с довольным ебалом совал в стейт JSX пока на сосаче не сказали, что так не делается.
>В курсах так-то если что JSX в стейт пихают и в хуй не дуют, а в целых двух курсах, которые я смотрел, сказали, что контекст говно говна и нахуй не нужен.
Что за курсы такие мне даже интересны и где ты их откопал, где такое говорят
>А в доках просто огрызки инфы уровня
Отчасти соглашусь, для этого существуют статейки на Medium и прочее
>Никаких бест практис там нет
Опять же, статейки. В доке редакса есть recipes, полезный раздел очень
>пока на сосаче не сказали
Да это не на сосаче сказали, это само собой разумеется, я тебе кидал даже ссылку на доку, где написано что к чему
Я даже никогда не видел в жизни, чтобы в стейт кидали компоненты, это полный нонсенс
>Что за курсы такие мне даже интересны и где ты их откопал, где такое говорят
Ну там может не прямо дословно так, но типо всегда какая-то недосказанность присутствует. Типо тебе говорят что такое стейт и как и пользоваться, а потом это все так плавно в другую тему перетекает, и что вроде как никто не говорит "нет", но и да тоже не говорят. Но исходя из общего настроя возникает мысль "а хуле нет?".
>для этого существуют статейки на Medium и прочее
Эти статейки на медиум это отдельная тема. На 50 нахуй статей, написанных индусом, на высеров 49 написанных только для того чтобы показать десятка два новых местоимений вместо she\he, приходится только одна статья по теме, где реально все нормально показано.
> я тебе кидал даже ссылку на доку
Ты кидал ссылку на вебаркайв, что как бы говорит о том, что это все не так просто найти. В доках про это не слова, а специально это гуглить - нужно еще додуматься до того, что здесь может быть какая-то проблема.
>Ну там может не прямо дословно так, но типо всегда какая-то недосказанность присутствует
Да, а ты что хотел? Поэтому параллельно курсу ты гуглишь каждую тему, читаешь доку и статьи по каждой теме, и задаешь вопросы в чатиках, где тебе подскажут. Самообразование as is
>На 50 нахуй статей
Хуй знает откуда ты это придумал, всегда все нормально расписано и гуглится за 5 сек
>что это все не так просто найти
А ты думал будет легко?
>Ряяяя шизойды на фрейзерном станке приехали шкварить швятой жабаскрипт ряяяяя я я себе с первого раза гугл в башку загрузил и писал идеальный код.
Как стать таким же крутым как ты
Я почти понял что ты хотел сказать, но считай что не понял.
Один лоадер на два режима наверн сложно настроить.
Проще взять два разных лоадера и один включить в билд сборке, второй в дев режиме.
Но если ковыряться то в вебпаке вообще можно все настроить, попробуй гуглом воспользоваться.
Нет, я хочу, чтобы, допустим
import x from 'x';
import y from 'y';
export default x() + parseint(y) + 3;
Превратится в бандле в просто
export default 22;
Если x() + parseint(y) + 3 = 22.
> попробуй гуглом
Ну вот ищу execute module at build time, не находится что-то.
Prepack
> Ну вот ищу execute module at build time, не находится что-то.
Ты шо, инвалид?
Свой лоадер делай, получай от ебабеля весь АСТ с потрохами и инегрировай. Так сделано, например, в Linaria, которая в build-time евалит выражения в своих стайлд компонентах. Смотри исходники Линарии, а именно extractor пекидж, pre-eval и всякие такие.
Бля, написал решение не Пистоне и обосрался - не уложился в лимит п овремени. Переписал на жс (иногда помогало) и тоже обосрался
втф, в чем соль?
https://leetcode.com/explore/challenge/card/march-leetcoding-challenge-2021/591/week-4-march-22nd-march-28th/3685/
Мое говнорешение. Дохера циклов for, но че-то не вижу как это можно легче оптимизировать. break есть и вроде как не выдрачиваю итерации на максимум но все равно не укладываюсь
https://pastebin.com/nxUvBtZ9
не ет параша, когда понял что книжки чиать вообще бессмысленно то все сразу стало получаться. Смотри видосы и сделай хотя бы туду лист с редакс + thunk + saga. И оп ты уже мидл
Я уже сделал пару петов на реакте, и читал доку, прошел пару курсов, щас вот на пути изучения роутера, и разных апи как встроеных так и внешних. Думал начать с этой книги углубленное изучение
Почитай документацию, нах тебе какие-то книги
https://rutracker.org/forum/viewtopic.php?t=6027897
(Там 20 небольших проектиков на js без фреймворков, весь код в наличии.)
Сейчас открываю проекты, либо стираю scrypt.js и пишу свой код, либо разбираю как сделано автором. Проектов мало, хотелось бы побольше подобной практики. Может кто подскажет где можно побольше такого найти? Самому не получается.
На гитхабе.
Можно.
> a = 10, b = '+', c = 5;
const a = 10;
const c = 5;
const b = x => y => x + y;
b(a)(c);
Зато твое приложение могут делать 10 человек одновременно и через 3 года будет понятно что происходит.
Жалуются на редакс только вкатывальщики, которые не работали на больших проектах. Ну или где редакс оверкилл для простого приложения.
нет даун это не "ридакс для вью"
это более внятное и удобное воплощение флакс архитектуры для вью
Книги обязательно читать после того как сделал первые шаги и написал свой туду лист. Они помогут устаканить знания и посмотреть на них с другой стороны. Хуже от книги не будет точно, на пикриле вполне ок книга (чем раньше ты освоишь основы функционального программирования, тем лучше - ты по-другому, с понимаем начнешь смотреть и на реакт, и на редакс, отпадут вопросы почему именно так, а не иначе).
А вот видосы как раз хуйня полная, они дают иллюзию что ты обучаешсья чему-то.
>А вот видосы как раз хуйня полная, они дают иллюзию что ты обучаешсья чему-то.
То же самое и книг касается.
Ну, вообще-то речь про проект пятилетней выдержки на 100к строк кода.
Нет, нихуя не понятно.
Реактом пилю только дергалки апишек и всякую заведомо стейтлессную лабуду
Перекатился на ангулар и happy как elephant
>но без вебпака и нод всяких
>Какие советы в путь можете дать?
Сходить в церковь, попросить благословения.
>Ну, вообще-то речь про проект пятилетней выдержки на 100к строк кода.
Ну тогда очевидно, что каждый пук нужно корректно делать под redux way.
>Нет, нихуя не понятно.
Это ты еще не видел что такое непонятно.
>vue, но без вебпака
Шиз, ты же понимаешь что vue-loader соберет тебе твои компоненты в любом случае под капотом?
иди нахуй
фразу "вьюкс это ридакс для вью" вообще надо в рамочку заключить, как экземпляр отборной чуши от человека который не понимает ничего
вью можно подключить как внешнюю либу
Суки! Блять, кто вас программировать учит? Хуй поймёшь, что написано, все буквы алфавита - m, c, S, b, B, c, i, b, R, a, A, x. Это какой-то быдлошифт очередной?
Идите нахуй отсюда, олимпиадники. И говнокод свой заберите, никому ваши олимпиады не всрались тут.
Там зашифровано, что ты пидор.
А тысячи поколений вообще без книг учились, что сказать-то хотел?
Альтернатив нет. Абрамов кукухой двинулся за 5 лет, теперь вместо редакса хуярит контексты и useReducer по всем компонентам, очень удобно.
Эти петухи опубликовали решение:
https://leetcode.com/problems/word-subsets/solution/
Суть в том чтобы отдельно за-reduc-ить слова из B и не делать вложенных циклов
На каких ещё собеседованиях? Я фрилансер. За такой стиль, с этими А Б В Г Д, вас надо было сразу расстреливать из реактивных говномётов. Ты понимаешь, что это БЫДЛО-КОД? Тем более, алгоритмов поиска подстроки МОРЕ. Вспомнить тот же Ахо-Корасик, Рабин-Карп, КМП, тысячи их...
Не знаю, у тебя, у офисного быдла надо спросить.
2) Semantic css или utility class'ы? Что на работе в реакте в ДСе чаще хотят видеть и делают?
У слов в английском может быть много значений, в зависимости от контекста. В данном случае тебе просто сказали, что не хватает знаний в реакте. Это не значит что ты совсем ничего не знаешь о реакте. Часто бывает, что ищут эксперта, а находят чувака со средними знаниями. Возможно там претендовало ещё 10 человек и ты просто ничем не выделился на их фоне. Либо работы слабоватые/либо мало опыта/либо мало мотивации.
А я сижу сейчас пряники кушаю.
Вот раньше натуралы ебаные придумали блять отдельный файл для названий акшенов, отдельный для акшен криэйторов, отдельный для редюсеров. Все красиво импортируется когда надо и куда надо и отлично работает, и главное сразу понятно что кто и откуда. Уууу сука, угнетают блять.
Теперь блять все нахуй в одном ебаном слайсе лежит. Мммм, охуенно. Я прочитал блять новую доку нахуй, эссеншиалс первую главу. Я нихуя не понял блять на что я вообще смотрю нахуй. Вот есть слайс. В слайсе reducers: {]. Но это блять акшен криейторс. А редюсер это та хуйня, которая невидимо в тайне от пользователя нахуй экспортируется в стор. Да блять вот такие порядки в анальном царстве. Охуенно. Написано, что логика в акшен креийторе плохо. Хуяк через строчку в туториале суют логику в акшен криейтор. "если чуть чуть, то можно" - пишет нам анальный клоун. Видимо сказывается старая привычка "если на пол шишечки, то не пидорас". А нет, подождите, это же редюсер, тогда можно логику. А нет, подождите, нельзя, это акшен криейтор. А нет, это снова редюсер, опять можно. А нет, подождите, вы натурал? Тогда вам нельзя пользоваться нашим охуительным тулкитом.
U are lacking in это неверная грамматика, так что работодатели твои дауны были бы все равно
Забей, тулкит это просто хуйня для вкатышей, щас модно чтобы было "легко", это главный критерий выбора инструмента.
Тулкит руинит всю суть, которая заложеная в редаксе, а именно разделение экшнов и редьюсеров. Кроме того, внутри используется иммер для обновлений, что позволяет писать мутабельным синтаксисом, только это нахуй не всралось, потому что редакс это фп, к нему как минимум рамда приглается обычно.
РЕДАКС ИЛИ МОБИКС?
Питон притянул к себе всех возможных макак со всех возможных сфер включая сис админов и тестеров, как никак не оринтирующаяся макака будешь сегодня смотреться неинтересным даже на подработках за еду
Лучший вариант будет навалить черпаками тайпскрипта, ТС - волшебная палочка сегодня покрывающая 90%+ веб задач. С ТСа даже грейдиться некуда, только расширяться в ci\cd / системы / бд или пробовать такие же яйца в профиль по типу голанжека
Как альтернатива - проперженные стандарты яв с сисярпами. Там у тебя хотя бы будет ориентир
>ты реакт джун
>на собесе просят написать императивную сортировку пузырьком
А мне больше конструировать системы нравится и работать с TS, нежели возиться в скучных гридах, которые я забываю как используются уже через неделю и ничего не могу даже элементарного написать.
мимо
вы какой-то странный, мы вам перезвоним
тем что это совсем другая система?
там нет иммутабельности, наоборот там есть мутации
там асинхронные экшны и не нужны никакие санки и саги
Дев сервер в памяти всё делает, он ничего никуда не пишет. Ты это дело с билдом протестируй.
Ебало завали, щегол ебаный. Мертвый тред мертвого языка.
Только ты один долбоеб тут и сидишь. Хуесосов ты отпрыск.
Ссу тебе в ротеш.
А вот затем.
>Я до этого на мотивации работал дохрена на другом языке
Чего перескочил на яваскрипт тогда?
1) Ниже порог вхождения в мидлы/сениоры
2) Меньше мозгового штурма
3) Больше вакансий
4) Больше зарплаты
Ваще жара, огонь!! Продолжай
Есть идеи, каким более-менее эффективным алгоритмом можно этого добиться? Не делать же X раз поиск пути из каждой клетки в каждую.
В jQuery что-то такое было
декларотивную сортировку пузырьком сделай
Ладьи не нужны.
ты наркоман чтоле
>Надо случайным образом проделать в нём X дыр
>каким более-менее эффективным алгоритмом можно этого добиться
случайным епта
а вообще надо проверять не отгородит ли потенциальная дырка кусок поля, я думаю критерии отгораживания более-менее очевидны
дырки не должны быть в ряд или касаться углами без промежутков
Если поле изначально не задано, то я бы просто строил его до нужного кол-ва клеток, придерживаясь правила связности.
не знаю, а ты?
>Pending Questions
>Answered Questions
Question Text дублируется, таблицы имею похожий набор полей. Имеет смысл свести в одну таблицу
Это как IndexedDB только на бэке
Спасибо.
А если например при ответе на вопрос, создавать новую запись в answered questions и удалять аналогичную из pending questions.
Зато потом при заходе в профиль человека, вопросы будут подгружаться из таблицы с уже отвеченными вопросами. Так наверное быстрее, потому что чаще всего смотрят уже отвеченные вопросы, а не отвечают на висящие.
Скорее всего оно будет работать и так и так просто вопрос в оптимизации
И указывает на ReactDOM.render в index.ts. Так стор и должен быть объектом??? ЧЯДНТ, уже вторые сутки сижу не могу понять
>создавать новую запись в answered questions и удалять аналогичную из pending questions
Слишком много логики на пустом месте.
А если ты потом захочешь лойсы добавить к неотвеченым вопросам, то после ответа придется все эти лойсы обновить, не говоря о том что у лойса будет два поля - pendingQuestionId и answeredQuestionId
Хорошо, даун.
Я бы объеденил pending questions и answered questions в одну таблицу, сделал answer_date и answer_text как NULLABLE, это был бы неявный флаг статуса ответа, и селектил бы по answer_date IS NULL/IS NOT NULL
Не будет в твоем варианте никакой оптимизации
Ты даун.
niqaque
Тесты ещё попиши
Чем плохо создать таблицу ответов, а таблицы вопросов объединить в одну?
Я постинг с дашчана проверяю.
После 3х лет работы с TS не представляю как можно писать без него что-то кроме туду листа.
Но ведь проблема стейта никуда не девалась, теперь у тебя ngrx который тоже мягко не очень.
А в чем разница собственно?
И? Можешь объяснить как это помогает?
Ура!
необходимо дополнить, что проблема в присвоении. В первом варианте если я присвою template=888 будет ошибка
Смоотри во что твой код скомпилировался твоим загрузчиком.
На скрине у тебя не ванильный жс.
Возможно, вебпак оптимизирует неиспользуемые импорты и в первом случае считает что использований нет, в во втором есть.
class SomeClass {
@NormalizeNumberZero
public integerValue: number = 0;
}
Теперь, что не присваивай в это поле (строку, булев, число, бесконечность, аллаха...), всегда при обращении к нему или число или ноль. Я не понимаю эту магию.
Где есть браузер и нода, почти везде.
Что именно непонятно? Я в декораторах особо не шарю, но конструкция 1 развернется +- в конструкцию 2, что эквивалентно конструкции 3. Ты просто определил кастомные геттеры и сеттеры для поля класса, в них и спрятана логика по преобразованию значений.
Предполагаю, чтобы "скрытно" (ключи-Symbol'ы по умолчанию non-enumerable) хранить значение в объекте. Зачем это нужно, правда, не до конца понимаю. Еще смущает необходимость нормализовать значение 2 раза - при чтении и при записи. По идее куда проще было бы хранить значение в замыкании и нормализовать его только при записи.
Как думаешь, если у меня натыкано подобных декораторов, может это влиять на производительность при большом количестве инстансов (50к+) объекта?
>смущает необходимость нормализовать значение 2 раза - при чтении и при записи
С бека после десериализации пришло поле не 21 а "21", а в коде есть манипуляция SomeObject.value = value + 1, получится 211. Эти декораторы - лишь попытка нормализовать данные, похоже неудачная.
>When adding new properties to an Object, you should either: Use Vue.set(obj, 'newProp', 123), or Replace that Object with a fresh one. For example, using the object spread syntax
Если ты постоянно читаешь/пишешь в эти объекты, то импакт на перфоманс будет большой (насколько - не могу судить, надо конкретно измерять).
>в коде есть манипуляция SomeObject.value = value + 1
Логичнее и быстрее было бы очистить и привести типы всех данных один раз (при получении с бэка), и затем работать с уже подготовленными данными. А в идеале вообще бы падать с ошибкой, если от API приходит говно.
Спасибо, попробую зайти с той стороны.
Из всех мусорных js фреймворков более-менее нормальный только jasmine. Jest даже не пытайся трогать, это полный кусок говна. Так же тебе обязательно понадобятся:
https://github.com/jsdom/jsdom
https://github.com/testing-library/react-testing-library
И опционально, но тоже легче сразу же поставить и использовать:
https://github.com/testing-library/react-hooks-testing-library
https://github.com/testing-library/user-event
Начальный гайд с настройкой jsdom'а можешь посмотреть тут(часть про enzyme игнорируй): https://jasmine.github.io/tutorials/react_with_npm
Но дальше просто открывай доку testing library и начинай писать тесты, культуры тестирования в жопоскрипте отродясь не было, гайдов приличных нет, так что будешь все открывать сам.
С Jest ты настолько охуеешь как еще никогда не охуевал, это просто концентрированный кал десять из десяти.
Роутер нужен, чтобы пользователи могли ориентироваться в состоянии по ссылкам в твоём СПА-говнеце.
Протекающие друг в друга тесты без возможности настроить глобальный beforeEach/afterEach для всех файлов, ебанутая и абсолютно ненужная система с изолированием каждого файла в отдельный псевдопроцесс по умолчанию, отвратительные репортеры. Первого уже хватило бы, чтобы это говно тестовым фреймворком называться не могло.
>Ууу, стили в прямо в коде
Так наоборот же пиздато, не надо держать открытыми 20 модулей со стилями. Зашел в какой-нибудь CustomButton.jsx, а там и стили сразу, можно на ходу что-нибудь поменять.
В джесте хуй нормально настроишь параллельные тесты в одном сьюите, а тут это искаропки, так что иди нахуй, чорт.
а как делать? бем что ли использовать?
не сильно разбираюсь, но в телеграмме стайледе проповедуют чуваки с очень обширным опытом работы, хорошим гитхабом
а про то что стайледы говно обычно слышал от чушек с пустым гитхабом
Даже если ты используешь css-in-js либу, то писать стили в том же файле, что и основную логику компонента - это моветон в любом случае. Но так да, лучше scss ничего не изобрели пока что.
Какие блять параллельные тесты, дурачина, ты понимаешь, что у тебя тесты друг в друга протекают нахуй и что ты это никак не решишь, потому что setup/teardown функционал работает только в пределах одного файла, а общего не завезли?
срыгни
>тесты друг в друга протекают
>setup/teardown функционал работает только в пределах одного файла, а общего
Просто хочу разобраться. Разве глобальные beforeAll/afterAll не способствуют нарушению изолированности тестов? Можно пример того, как это в джесте течет? На стак или ишью в гитхабе ссылку можно, не обязательно накидывать код самостоятельно.
И да, жест и так поверх жасмин раннера выполняется. Да и репортеры можно юзать кастомные. Казалось бы, что может пойти не так?
Его только для опасных ситуаций надо юзать?
Ебнешься же ведь код документировать в него, на случай ошибок
Или это бесполезная приблуда?
Если внешние данные идут через валидаторы, то проптайпсы так-то и нахуй не сдались.
>Разве глобальные beforeAll/afterAll не способствуют нарушению изолированности тестов?
Во-первых не beforeAll/afterAll, а beforeEach/afterEach, во-вторых нарушению изолированности тестов способствует как раз невозможность после каждого теста почистить то, чем он мог насрать в глобал скоуп(анмаунтнуть реакт компоненты, почистить storage и т.п). В джесте и аве ты такого сделать не можешь в принципе, их afterEach работает только на уровне отдельного файла и в глобальном конфиге его прописать нельзя, только городить в каждый файл, где он может быть нужен.
>И да, жест и так поверх жасмин раннера выполняется.
И?
>Да и репортеры можно юзать кастомные
Они все без исключения кал.
>чтобы у меня была стуктура БЭМ в проекте с помощью вебпака
Если ты себе это сам придумал, то это нахуй не нужно. Если у тебя это кто-то требует, то пусть этот умник сам и хуячит эту структуру.
требуют, только это подаётся как обычное дело, мб я что-то не понимаю... а вообще стало интересно, как бэм используют в проектах обычно?
inb4:Formik etc..
Потому что сначала браузер проходит по скрипту и генерит var, а потом начинает выполнять скрипт. А let и const генерятся только когда до них дойдет строчка.
>>1981354
Честно не понимаю кто задает такие вопросы.
Если ты знаешь про переменные - значит ты прочитал про них в доке, а там все понятно написано.
Или ты где-то на улице услышал про них и пришел сюда уточнить?
Или влепую копируешь чужой код и разбираешься на ходу?
И то и то Бед практикс. Читай доку.
Это не важно. Важно то, что let и const нет до тех пор пока до них не дошел скрипт, а var есть.
> сначала браузер проходит по скрипту и генерит var
> let и const нет до тех пор пока до них не дошел скрипт, а var есть
Так это уже компиляция получается?
Я же могу и без них писать, типо у мення сразу будет рендер всей аппы.
А эти штуки помогают типо оптимизировать рендер что бы он грузился поэтапно, это наверно нужно для больших проектов?
есть действия, которые тебе надо делать в определенный период времени, например при каждом создании компонента надо сделать какой-то апи запрос, он будет в маунте и т.д.
в туториале должно быть
С проктонисом.
Да я читал доку, прост в абстракции непонятно зачем это, когда на практике не сталкивался
Моветон писать в отдельном файле
писать в том же файле что и логика - хорошая практика/
у тебя максимум 4-6 стилей будет
если у тебя 100 стилей. в 1 файле то проблема в разбивке на компоненты
>Моветон писать в отдельном файле
Спорно. Мы в отдельном .styled.ts файле делаем. Лобковые волосы отдельно, яйцы - отдельно.
>модулей
Каких, CSS? Ну как чем, ко-ко-композицией. У нас static-time CSS-in-JS, так что, да, бенефитов мало, кроме вышеобозначенной.
Понял, Леночка, спасибо!
Это потому что я сюда отписал
>спрашивала про друзей круг общения
дристанул с этой хуйни, не советую такою контору где обитые хрюши сидят
Задача такая.
есть textarea текст из нее мы отправлем в стейт {value: " " }
нужно поставить условие на setState если текст меньше 20 символов - отправь его в value " ", если текст больше 20 символов отправь его начала из 20 символов в value а остальную часть в bigValue: " "
Так вот как правильно строку попилить что бы она и туда и туда отправлялась? раньше был метод substr но он уже не используется вроде, то ли сплит нужен то ли че то такое, не могу сообразить и найти в гугле, кек
У wsl io тормозное, это одна из причит почему ms запилила wsl2 Можешь еще обычной виртуалкой пользоватья как деды, оно шустрее будет, как ни странно.
У меня как раз wsl2. Дело не в том, что оно тормозное, а в том что оно делает какие-то лишние шаги, которые не делает гит баш
Короче я ебал этот кал говна. Гит баш работает и не выебывается.
Ты тупой.
Ты всерьёз там свои виртуальные списки пишешь? Бери либы и не еби мозги. Да и вообще точно тебе нужны виртуальные списки в вебе? На десктопах?
Нет, ты хорошо подумол?
Рендером в другом окружении ты нихуя не добьёшься, шрифты на каждой машине по-разному рендерятся. А если дело не в шрифтах, то размеры итак легко считаются из стилей и нечего там ебаться.
Вёрсткой можешь размеры привести к одному-двум вариантам. Дизайнерам скажи чтобы это говно перерисовали и тогда вообще динамика может уйти.
Ну в крайнем случае считай gBCRом, по одному на элемент норм, обмажься рефами и мемоизацией если у тебя реакт.
5 лет кручу виртуальные списки на 256Мб устройствах
Type '{ mode: "development"; output: { publicPath: string; }; entry: string; module: { rules: /etcetcetc/ is not assignable to type 'Configuration'.
Object literal may only specify known properties, and 'devServer' does not exist in type 'Configuration'.
Ну так а хуле бы нет? В этой папке хочу работать, а вот в той, сука, не хочу. Блять, еще раз: проекты создаются методом копипаста нахуй. Просто блять ни единого символа не может быть "не на месте".
Ты че дебс? Очевидно у тебя путь сбивается, делай креате эпп и правь веб пак там
Популярный, особенно среди вкатышей, и очень сраченосный. Собсно потому и постят.
Есть график apexchart с двумя сериями.
Надо обновлять одну серию, оставляя другую без изменений.
Сейчас накостылил так, что обе серии можно обновить по очереди, но если попытаться обновить одну и туже - появляется дубль и слетает соседняя серия.
Для реагирования на изменение реактивных данных используют computed метод, или можно использовать watch
> Очевидно у тебя путь сбивается
Неочевидно. Я уже даже руками все переписал. Каждый конфиг файл, та же самая хуйня. Причем по соседству лежит 1 в 1 идентичный конфиг и прекрасно работает. Я хуй знает в чем тут проблема, пиздец, вместо программирования занимаюсь какой-то хуйней. Напоминает времена, когда я год сидел на линуксе и постоянно на ровном месте что-нибудь отваливалось\не работало и т.д.
>>1982020
>Еще тс конфиг настрой одинаково и типы установи те же
Все настроено, все типы стоят. Даже ради интереса удалял node_modules и заново делал yarn install. Результат предсказуем.
Помогло в конечном итоге вот так сделать в конфиг-файле:
import { Configuration as WebpackConfiguration } from "webpack";
import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server";
interface Configuration extends WebpackConfiguration {
devServer?: WebpackDevServerConfiguration;
}
Вручную импортировать интерфейсы и собрать один из двух. Ну то есть тупо вебпак ебалом тыкнуть в свой же собственный интерфейс. Почему так? Хуй его знает. Вот серьезно блять, выглядит как колдовство. Какой-то блять рациональной причины я найти не могу. Рядом лежит конфиг который прекрасно работает без этой хуйни. Единственная разница заключается в том, что там где работает, вебпак версии 5.24, а тут новый 5.28. Может сломали что-то? Хуй его знает. Но, что характерно, я вчера пробовал поставить версию 5.24 и это не помогло. Вот и думай блять.
Хорошо что мне сейчас особо делать нехуй и я всякой хуйней страдаю. А если бы такой затык на галере случился, меня бы уволили нахуй, или долбоебом считали необучаемым, кек.
А это будет работать, если к графику отображается условно (v-if) и к нему нельзя обратиться через $refs?
@ts-expect-error
Передаёшь аргументом твой путь к конфигу. Может вебпук должен ещё и в node_modules автоматом конфиги искать?
Речь не о конфиге вебпака, а о том, что он не подхватывает конфиги линтера и тайпскрипта если они не в корне проекта.
Да за две недели выучишь и сразу пойдешь на 200к. Не ссы
окажется, что надо ещё расшарить нпм, препроцессоры и вебпак, разобраться со всякими плагинами к нему, а их штук 20 и у каждого есть своя документация. енжой
Ищу новую
Чет даже как то не верится
Почти все либы говно не удовлетворяют полностью запросам.
Проблема начальная в том, чтобы корректно вычислить высоту контейнера/области прокрутки. Очевидно, что использование офскрин рендеринга с вычислением размеров через gBCR - это путь в могилу. Обычно идут на ухищрения и просят указать минимальную высоту строки, а реальную вычисляют уже по мере необходимости, заодно корректируя и высоту области прокрутки (что визуально может выглядеть очень заметно на небольших списках и элементах, чья высота разительно превосходит минимальную).
да поверхносто пройтись типа что это такое, чёза require, path, __dirname, __filename, типа нахуя мне оно нужно если я фронтендер а не бекендер
У меня всеми ts файлами занимается только babel с пресетом тайпскрипта. Без тс лоадера. Мне прямо ему пихать путь до tsconfig?
В доках eslint-webpack-plugin я вообще не нашел даже малейшего намека на то, куда ему там путь до конфига пихать.
Все выглядит так будто бы проще хуй забить, да в корень вывалить все 25 конфигов.
Тогда будет цирк заместо собесов, так как для работодателя "бэкенд на ноде" вообще ни о чём не говорит. А если говорит, то собеседовыватель будет перемалывать тебе косточки кишочками ноды и релевантного фреймворка.
Чистый бэкенд на ноде - анал-карнавал похлеще фронта. Фронт хотя бы замыкается на вебпаке и его экосистеме, даже жикверик в него можно запихнуть, если очень надо. У ноды же фреймворки, как и плагины к ним, живут отдельной, не связанной друг с другом, жизнью.
Блять, я в первый раз слышу про то, что в package можно пихать Какие-то конфиги. Посмотрел сейчас у одного знакомого, да, точно блять, у него в package конфиги еслинта и байбеля. Пиздец, а я за каким-то хуем все раскладывал по 10ти отдельным файлам.
webpack serve --config
Тс нода есть, но только чтобы в расширении тс писать конфиг, как я понимаю.
>Это как? Все что в лежит там в tsconfig, в eslintrc просто запихнуть внутрь webpack.config?
У каждого лоадера есть поле `options` или что-то похожее, у бабелевских пресетов к лоадеру вроде как особый путь, там нужно лоадеровские доки читать, как запихивать в них конфиг.
>А оно сразу разберется что там к чему? Можно просто все файлы слить в package.json?
Не все, но всякие бабели/линтеры/пост-цсс умеют конфиги из него читать.
Yep
>>1982278
https://webpack.js.org/configuration/configuration-languages/
Под капотом юзает ts-nodeю
@babel/preset-typescript пофиг на конфигурацию из tsconfig.json, если что, он туда не смотрит.
Может быть. Вопрос в том, что tsconfig нужен для вебпака. Чтобы указать там esModuleInterop и импортировать плагины по-человечески через import X from "...", а не import X = require("...") или как там по-другому делается.
Какой же пердолинг, чтобы собрать проект, нужно сначала собрать конфигурацию сборщика проектов, а для этого нужно сначала настроить другую конфигурацию другого сборщика других проектов
Ну а хуле сделаешь. Говорю же, мне эта хуйня линукс напоминает, где в системе каждый день какая-нибудь проблема ебанутая всплывает с которой никто нигде не знает что делать.
tsconfig в моем случае нужен для того чтобы чекать типы + нормальный импорт модулей. Собирается все через пресет для бабеля. Но проблема в том, что tsconfig вообще какое-то влияние на проект оказывает только из корневой папки. Так-то похуй, но ведь хочется чтобы все конфиги лежали в специальной папке и все было красиво. Как ебалом в него вебпак тыкнуть я хуй знает.
Сам иди нахуй
>Как ебалом в него вебпак тыкнуть я хуй знает
Тебе еще и ide нужно будет в этот показать или хоть это работает?
Бамп.
> У ноды же фреймворки, как и плагины к ним, живут отдельной, не связанной друг с другом, жизнью.
Ну разные фреймворки все равно никогда совместно не используются.
Берется один и весь проект в рамках него одного делается.
Ещё можно все разбить на микросервисы и тогда можно без проблем на каждом из них использовать свой какой хош фейерверк
python + django для начала
ну так ты сам выбрал путь пердолинга. зачем тебе валидировать типы в конфиге вебпака? зачем его вообще писать на тс и пердолиться с этим потом? пиши конфиг на обычном жс, вебпак в рантайме сам все провалидирует. а код да, пиши на тс, в тс-лоадере указывай путь до того тсконфига, который нужен.
>>1982320
да, потом ему нужно будет еще попердолиться и еще и в ide указать путь. это все вместо того, чтобы ПРОСТО положить все в корень (как делают просто все).
а, извини, я немного перепутал твои посты с постами другого чувака.
повторюсь, если ты используешь babel-loader и @babel/preset-typescript, то он чихал на настройки в tsconfig.json, т.к. единственное, что делает @babel/preset-typescript - это просто вырезает типизацию, код он не транспилит никак.
но о каком тогда влиянии на проект ты говоришь? про тайпчекинг в консоли и IDE? в консоли ты можешь задать путь до конфиг-файла через параметр "-p", например "$ yarn tsc -p config/tsconfig.json", а вот как в ide настроить путь - хз, в каждой по-разному. насчет vscode даже не уверен, что это можно сделать.
либо у тебя есть вариант сделать 2 тсконфига - 1 в папке configs (на который ты будешь ссылаться во время сборки) и один в корне (для ide). в том, что лежит в корне нужно будет написать "{ "extends": "./configs/tsconfig" }". но тут есть такой момент, что files, include и exclude надо будет прописать в обоих файлах сразу (т.к. эти параметры не наследуются).
но все равно все это выглядит как пердолинг, не еби мозги, рил.
>но о каком тогда влиянии на проект ты говоришь? про тайпчекинг в консоли и IDE?
Вебпак не работает с импортами типо import X from "..." без настроек из tsconfig. Да и похуй уже, я что-то из настроек перенес в package, что-то вынес в корень, терпимо получилось.
Нет не работает. Он начинает срать, что ему надо либо поставить флаг esModuleInterop, либо импортировать через const X = require("...") - но как только ты попробуешь это сделать, тебе в ебало прилетит следующая ошибка о том, что на этот раз в модулях неправильный экспорт.
кто именно начинает срать? вебпак или иде? если ты не используешь ts-loader
>>>1982436
>Эх, жаль я тс-лоадером не пользуюсь.
то вп ну никак не может тебе срать такими ошибками. скорее всего тебе это ide срет.
>то вп ну никак не может тебе срать такими ошибками. скорее всего тебе это ide срет
Ну вебпак то он запускает не через бабельлол, а через ts-node
Кстати говоря, если еще немного попредолиться, то может что то и получится
Например, занёс в v-text-field через v-model значение 100. Позже захотел поменять его на 10000.
Сейчас какждые 2 секунды чекаю не изменилось ли значение v-model и если оно не равно исходному - обрабатываю.
Может можно как-то лучше?
v14.15.4
Задача.
Файл(txt формат) или строку с hex цифрами преобразовать в бинарную строку или буфер и записать в файл(bin формат).
Пример строки:
759208514a19a35d454520c65751ada7e9dd2616c0ccfae77d706b6d751566e58c81b47a739f41e7
ccaa047c512fcd983a28f35f23fc379a32cdf1de40e626ede755173d884c9f04355d5032b227494d
Примерный формат ожидаемого результата:
~d S¦¬^`@)‡êƒ®ÚݾœOqDÄŽ``îÍ–
ŠïèÆëBªùù•0O€ç0»¦WUP°V%’Ò¨¦\f=’Zktšg¢Ýd÷—NP-1iÌ,
День сидел-ковырял и в итоге не понял даже куда копать.
Было бы плюсом сделать кроссплатформенный вариант. Но мне есть хоть какой-то пример будет очень хорошо.
Заранее благодарю
Я для примера сократил до одного.
Хорошо: есть несколько полей ввода, в которые уже подсунуты значения через v-model. Хотим изменить значение, например, второго поля из трёх.
Как получить введенное значение поля по окончанию ввода?
Так лучше?
Огромное спасибо. Работает
Но забыл сказать что изначальный файл это СТРОКИ цифрами
и из-за переноса строки в буфер попадала только первая строка.
Чтоб заработало, немного переделал скрипт.
Но решение на 100% НЕ совпадает с оригиналом.
Непонятно что делать с этим.
Пример выполненого кода:
let str = fs.readFileSync(ASC_NUMBERS_PATH);
str = str.toString().split('\n').join('');
str = Buffer.from(str, 'hex');
fs.writeFileSync(BIN_NUMBERS_PATH, str)
На картинке результат и как должно быть(вроде как)
Если есть идеи почему так и как сделать более правильно, милости прошу.
Ну значит лепишь по watch на каждую model и дергаешь оттуда дебаунснутую функцию, параметром в нее передаешь что-нибудь для определения по какой model было изменение
так а с чего ты решил, что именно так должно быть? может все таки твой вариант корректный? тут особо негде ошибиться.
В последней реализации виртуального списка на текущем проекте мы высоту элементов задаём заранее. Ну прям метаинформацией хардкодом вместе с данными элемента. Это не сильно удобно в использовании, но зато компонент списка и написан просто и работает быстро (а это намного больше значит, даром что пятая уже попытка его написать), но у нас там рили специфика хардкорной производительности. Ну и элементы обычно типовые и вариаций размеров не так много.
Если не так, то gBCR, какие варианты то ещё? Либо статически заранее, либо динамически – вот два стула.
Высоту прокрутки и не считаем, просто напихиваем элементы в неё с абсолютным позиционированием.
hex-строки - просто случайно сгенерированные числа.
После генерации, файл со строками должен преобразоваться в бинарник для прохожения батарей тестов.
В каком порядке должны эти байты быть понятия не имею - впервые погрузился в это "байтоебство"
>>1982652
У меня есть екзешник который делает такую работу, но только с фиксированным количеством цифр в каждой строке.
С бинарником, сделанным этим же екзешником, я и сравниваю свой результат
Вообще нужно чтоб можно было сделать преобразование с заданным кол-вом цифр в строках.
Раз так, то вариант на node, очевидно, более корректный. Он 100% не учитывает никакой endianness. А экзешник, видимо, сделан криво.
>то вп ну никак не может тебе срать такими ошибками.
Ой блять, на, смотри. Стоит вернуть tsconfig в корень все заводится с полпинка. Через терминал отдельный от вс кода все то же самое.
>ересь
Писать 100500 вложенных стилей, а потом как ебанашка скролить в поисках нужного не ересь? Ок
Но я же приличный человек с css modules, у меня в файлике по 5-10 стилей максимум на каждый компонент
решил попердолиться с конфигом в ts - страдай.
Есть нищее апи для моего недвача
/posts даёт все треды в json
/posts/номер_треда/ даёт все посты в номер_треда треде в json
Я например загрузил все треды, высрал верстку на жсе, и хочу к ним приделать ссылки, чтобы можно было зайти внутрь треда. То есть откуда получать данные я знаю, но как мне сгенерить страничку, или хуй знает, чтобы у меня в адресной строке было примерно как на дваче, типа номер треда, чтобы можно было потом например ссылку на него дать? Алсо, делаю на ванилла JS, и хотелось бы узнать, можно ли на нем подобное высрать, или надо глубже погружаться.
<a href="/posts/1"/> епта.
Очевидно у тебя должен быть сервер, который этот запрос обработает и выдаст в ответ html страницу. А на самой странице уже можешь либо прямо на сервере пост рисовать, либо жсом дергать JSON АПИ.
Используй @change
Это не совсем задержка, но аргумент для обработки можно передать в функцию как только пользователь переключится с поля ввода, кликнув на любой другой элемент \ пустое место.
Debounce в Vue нет, он реализуется сторонними плагинами и костылями, кому как нравится.
<v-text-field ... @change="funcName(...)"></v-text-field>
Да вот жидхабовцы раззадорили своей сторей о значительных оптимизациях в этом направлении https://github.blog/2021-03-25-how-github-actions-renders-large-scale-logs/ что стало интересно прям. А так, fixed height, конечно упрощает жизнь знатно.
Но семантический ксс...
С пердолингом в консолечку тухло у вебпака, там всего-лишь вариации npm команд переключаешь.
Теперь проблема на пике. Линтер видит, что импорты в файле сделаны вот так: const X = require("...") и срет, что в ТС файле так делать нельзя. Но файл теперь не тс, а жс. Эта ошибка никак не влияет на работоспособность, она просто засирает вкладку problems и мешает отслеживать настоящие проблемы. Как можно это хуйню отключить или сделать так, чтобы эта немытая залупа свой грязный нос в мои конфиги не сувала?
Окей, новая проблема. Как мне сделать так, чтобы вебпак компилировал проект в продакшен моде и раскладывал файлы по разным папкам внутри build?
То есть вместо того, чтобы все просто выкидывать в build, он например, js файлы клал в build/scripts, css в build/styles и т.д?
Какая то ебаная приватность у них на сервисе пиздец, либо открыто для всех, либо закрыто для всех
Можно. А можно и сделать так, чтобы вебпак разложил. Читай дальше опции к плагинам\лоудерам и самому вебпуку
ну спасибо, а то я немного ахуел со всего зоопарка, хотя уже картинка складываться начинает
>Читай дальше опции к плагинам\лоудерам и самому вебпуку
Я вот в упор такого не вижу и нагуглить не могу. Может ткнешь меня носом, а дальше я сам разберусь.
output.filename
output.assetModuleFilename
Rule.generator.filename
filename у minicssextractplugin
>output.filename
Блять, ну так сразу и не скажешь, что поле filename отвечает за папку.
У меня сейчас, условно, все css выкидывается в папку build в виде: [name].[hash].css, если я в поле filename для MiniCssExtractPlugin пропишу css/[name].[hash].css, то у меня все начнет складываться в папку /build/css/[name].[hash].css, так что ли? Если что, то так сразу хуй догадаешься, что это так работает, об этом нигде не написано, я думал для папки специальное свойство должно быть.
Ну да, это работает. Даже папки само создает. Но до этого просто нереально блять додуматься.
Хз, анус, я сразу догодался об этом
додуматься нельзя,другое дело, что у вебпака есть доки, которые так лень читать...
Если что, то там явно написано, что так можно указать папку выхода, только в разделе про ассеты. В остальных местах свойство filename используют только чтобы генерировать уникальное имя файла при компиляции. Специально читать всю огромную доку вебпака = быть ебанутым. Это инструмент который используется в чисто утилитарных целях, это не какой-то фреймворк, чтобы сидеть и неделями его изучать. Есть вопрос - ищешь что-то конкретное в доке - читаешь.
> чтобы сидеть и неделями его изучать
Я уже третью неделю по часу-два в день настраиваю его. Уже настроил тс, бэйбл, ксс, саас, постксс... осталось еслинт наверное ещё и всё. пизедц.
Сколько джаваскриптеров нужно, чтобы развернуть эту строку?
>осталось еслинт наверное ещё и всё. пизедц.
Ты забыл минимизацию в продакшн моде. А еще вебпак у тебя не будет принимать картинки по-дефолту. А даже если ты настроишь его так, чтобы он их принимал, то все равно не примет, потому что картинки не ТИПИЗИРОВАНЫ. Чтобы типизировать картинки надо создавать отдельный файл с типами картинок (слава богу там 5 строчек), в котором они типизируются как модули. И куча подобного мелкого говна.
Бтв, не повторяй моих ошибок, не пиши конфиг вебпака на тайпскрипте, каждый новый микроапдейт вебпака руинит твой конфиг просто нахуй и приносит увлекательную еблю с отваливающимися типами. Чтобы писать на препроцессоре\ксс с тайпскриптом (а еще лучше на препроцессоре с модульным ксс) тебе придется создавать файлы типов для сасс файлов. Делается это либо руками (заебно), либо модулем typed-scss-module. Ну и чтобы хорошо разбираться во всех этих use: /\.(ts|js)x?$/i советую сразу подучить регулярочки, не откладывать все это надолго. Ах да, простые картинки грузятся так:
{
test: /\.(jpg|png)$/,
type: "asset"
}
А для svgшек нужен svgo-loader. Ну вроде все, с остальным сам ебись.
Надо как минимум четыре ноды и один вебпак
>Ты забыл минимизацию в продакшн моде
Не знабыл, где надо уже стоит IN_DEV ? лоудер-для-дева : лоудер-для-прода
>не будет принимать картинки по-дефолту
Я уже поставил type asset'ы
>потому что картинки не ТИПИЗИРОВАНЫ
Уже создал types.ts с ambient module'ями вроде module '*.sccs' и остальных
>не пиши конфиг вебпака на тайпскрипте
Я уже
>typed-scss-module
В пизду, я просто прописал один ambient module и хуй с ними.
>А для svgшек нужен svgo-loader
Надо ещё вроде react-svg-loader, чтобы превращал svg'шки в компоненты, которые можно использовать как обычные.
Если в методе множество обращений через this., чтобы оно создало локальную переменную с одной буквой и заменило this. на a.
[this, this, this, this, this, this, this]
gzip, в котором твой сервер должен отправлять все ответы вообще, и так заменит повторяющиеся слова во всём тексте вообще
>один ambient module
НО... НО... Типизация...
>react-svg-loader
Бля, а вот этого я не знал, хотя все вроде и так заебись работает.
Да, тоже проиграл.
Кстати, нихуя оно не может перевернуть флаг (не нашёл Уэльса на клавиаутре, такшо las Whales son Brtainos).
Ноду вообще пидорасит от флагов, я там нормальную строчку ввёл а отображается она как синтаксически не валидная.
> Niggler
> NYC
> 1 commit 2 ++ 2 --
> https://github.com/mathiasbynens/esrever/commit/4386797883fd04b42f693e43bd1c69b9dc841a27
Настоящий нигга, и в Arctic Code Vault попал.
>не нашёл Уэльса на клавиаутре
Зря, с Уэльсом всё гораздо интереснее. Скопируй из какой-нибудь эмодзипедии.
Великобритания наоборот – Болгария. Куда тут интереснее.
Спасибо, помогло.
Тут как ты мог заметить страница идёт слитно, page3, мне нужно это 3 выдернуть, а может быть и не 3, а 100, и по сути тут получается строка, выдернуть нужно из строки, так что методы URL тоже бесполезны
page3.replace(page, emptyString)
Какая слитно, наркоман? `page` - поисковой параметр и если ты погуглишь методы URL, то узнаешь, как работать с поисковыми параметрами ссылок, а заодно как сконвертировать ссылку в этот объект.
Ну или парси регулярками/методами строк, если любишь пердолиться.
str.replace(/.page(\d+)./, "$1");
Вспомнилось как впервые столкнулся с необходимостью в виртуальном списке. Выводил список 10000 и он мягко говоря не мог пробздеться, а у друга на маке вообще страница висла при попытке прокрутить. От результата виртуализации я просто охуел. Повезло, что все элементы фиксированной высоты и не пришлось ебаца. В тот день я излечился от преждевременной оптимизации жса.
регулярно
Вот я проект с нуля пилить начал, зделол инишиал коммит в мастер, запилил бранч "девелопмент". Проект с нуля, повторяю. Что мне дальше делать, для каждоый микрореализованной фичи пилить бранч "фичаХ", а потом мерджить ее с девелопментом, и когда наберется базовый функционал мерджить все в мастер и пушить? А все мои коммиты тоже запушатся?
Мелкие фичи можешь сразу в develop коммитить. Суть гитфлоу в релизных ветках: когда надо сделать релиз, форкаешь актуальный develop во временную релизную ветку, стабилизируешь её (фиксишь
в ней все баги), потом мержишь одновременно в master и в develop, после чего удаляешь
>потом мержишь одновременно в master и в develop
Всегда казалось это хуитой в гитфлоу, потому что мерж в мастер обычно делается кнопкой на гитхабе/лабе по аппруву пулл/мердж-реквеста, а прямые пуши в протектед бранчи запрещены.
Я вот хочу сделать типа такой интерфейс. Я учу бекэнд, но тут как я понимаю всё на фронтенде, а из бэка только данные загружаются. Не очень понимаю, с помощью чего такое делается вообще. Ну вот типа надо сделать таблицу, но вот эти полоски сами поверх таблицы как создавать? Просто как-то объединять ячейки в зависимости от полученных данных? Или есть какой-то способ создать какие-то отдельные элементы поверх таблицы, которые будут типа привязаны к ней? Или вообще это не таблица? Есть какие-нибудь идеи, что почитать?
Ну так это же должно типа двигаться вместе с таблицей. И плюс, если так размер указывать, то оно на разных размерах окна будет по-разному стоять, да?
Берется фреймворк для фронта, реакт например. Там уже прописывается логика рендера (как расставить полоски), исходя из данных полученный с сервера.
Ну я читал немного как фреймворки устроены, но они же энивей не создают никаких новых технологий как бы. В смысле, что энивей это как-то на html надо высрать.
>>1984176
Да, посмотрел сейчас, типа можно сделать элемент относительно другого элемента. То есть какой-то ячейки например и он будет всегда к ней привязан. Почитаю, спс.
Ну так JSX - это разве не типа шаблонизатор такой? Ну то есть энивей же все это верстка на хтмл и цсс.
да, фреймворки это обычный html5
там просто удобно организована компонентность и реактивность, ты ровным счётом тоже самое можешь писать на чистом джаваскипте, но при сложном проекте тебе чтобы не запутаться придется сделать свой минифреймворк скорее всего - функции для генерации компонентов и что-нибудь такое
это довольно сложный интерфейс, сделай что-нибудь проще, например одну таблицу
таблицу надо кстати делать дивами, советую использовать гриды
насчёт полосочек, судя по всему это отдельный див поверх таблицы, имеет ширину зависящую от числа дней умноженных на известную константу ширины клетки и прикрепленный поверх забронированной клетки
тебе может быть проще просто залить цветом нужные клетки
для фронта vue наверное будет проще реакта, да и чистого джс тоже
создашь компонент клетка таблицы и будешь в него передавать пропами дату и бронировано или нет, в зависимости от чего меняется содержание и цвет, а сами эти компоненты гридами в таблицу выстроишь
Спасибо.
Ну я думал делать сначала таблицу на каждый месяц, без скролла вбок, да.
>тебе может быть проще просто залить цветом нужные клетки
Ну я тоже так думал, но что делать если в один день заезд и выезд? Надо типа разделить клетку на две клетки как-то и чтоб это всё не распидорасилось. Ну и эти полоски должны быть кликабельны. Ну и в перспективе, чтоб их можно было перетаскивать из одного номера в другой и растягивать в ширину.
с такими целями тебе придется фронт неплохо так подучить лол
алсо по минимуму кликабельность и залив части клетки сделать просто, а вот с полосками, их перетаскиванием, закреплением и т.п. придется помучиться, может либа есть такая впрочем
Ну это так, на будущее конечно. Я к тому просто, что если это делать объединением клеток, то уж наверняка не получится перетаскивание и растягивание потом.
>может либа есть такая впрочем
Видел в жквери юай есть какая-то штука Draggable. Похоже, но я не особо изучал ещё.
там одного дрэга мало, надо ещё чтобы полосочка умела определять куда ее перенесли и насколько растянули
короче может сразу либу для таких таблиц искать лол
Ты пытаешься собирать ядерный реактор, не умея в ардуино. Ничего хорошего из этого не выйдет. Бери проекты по силам и постепенно научишься.
Ну я же не какие-то дохуя элементов и эффектов хочу. Я понимаю, что то, что на картинке - это сложно со всеми функциями. Но я хочу хотя бы только такие полоски на таблице сделать. Это же не может быть прям рокет саенс.
>>1984306
Ну я думал что-то типа координат будет у ячеек. Типа классы "day-1 room_105" или атрибут data. И типа можно получить из этого данные, где был клик и где произошло отпускание клавиши. Ну наверное всякие драггабл типа так и работают. ЖС же может получать данные о координатах курсора.
Тебе наверн сначала надо модель сеточки которая пересчитывает дни в координаты и обратно, тогда рисовать и обрабатывать эвенты будет попроще
>Но я хочу хотя бы только такие полоски на таблице сделать.
Если строишь таблицу на <table>: атрибут colspan на элементе <td> - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attributes
Если строишь таблицу на CSS Grid: span в свойствах grid-column - https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column
все проще, джс может обработать событие что курсор находится над другим элементом, координаты тоже знает
>я хочу хотя бы только такие полоски на таблице сделать
это усложняет задачу по сравнению с закрашиванием клеток которое вообще просто сделать, ну ок
короче надо сделать компонент клетка внутри которого находится компонент полоска, в клетку пропами надо передавать ее содержимое и содержимое полоски, если передано содержимое полоски из клетки вырастет полоска, width клетки фиксированный, width полоски зависит от него и количества дней
гугли css grid, css position, z-index и читай туториал по vue, там тебя интересует v-for, лайфцикл в частности mounted, компоненты, может ещё v-if, для загрузки данных fetch апи
Если кому-то интересно, че тут вообще происходит: emoji британского флага состоит из двух символов (code points) юникода - "Regional Indicator Symbol Letter G" и "Regional Indicator Symbol Letter B". Отображение этих двух символов в виде флага - это решение каждой отдельной программы. Firefox на винде, например, у меня этого не делает. Инверсия этих двух символов дает, соответственно, BG и флаг Болгарии. Это, конечно, вопрос разумных настроек по умолчанию, но в общем случае библиотека не может принять правильное решение без контекста.
это написано в вводной книге по джс
Спасибо!
Хочу отходить от заебавшего реакта во что-н свзяанное с графикой, на крайняк обработкой данный на видюхе, сейчас вот пилю простенькие системы частиц на webgl. Может поделитесь своей историей успеха работы с этой технологией.
Мотоцикл не мой, но соседи крутят модельки газовых турбин прямо в энтих ваших бровзерах
Ок. Я походу туплю.
В общем стоит геттер и сеттер на этом свойстве, которое возвращает другое свойство из прототипа. Если сеттер не использовался, то при обращении возвращает ошибку undefined в консоли.
Uncaught TypeError: Cannot read property 'backgroundColor' of undefined
Как проверить тут на undefined. Конструкции типа backgroundColor === undefined вызывают ошибку, т.к. обращение к несуществующему свойству. Через try/catch только ловить?
>Uncaught TypeError: Cannot read property 'backgroundColor' of undefined
это значит не то что backgroundColor неопределен, а то, что неопределен твой sheetCell
и вообще окраску надо делать умловно подключая ксс стили или на худой конец через style а не напрямую в доме
Ну, редкая ниша. В типичном вебе нахуй не надо, остается только в ентерпрайзе.
В коже ничего интересного на самом деле. Вебгл очень низкоуровневый, сам его ты вряд-ли будешь даже трогать, через лимбу какую-нибудь склрее.
Не получается одна херня, а спросить негде.
это легаси для долбаебов?
стековерфлоу или официальный саппорт
Это копия, сохраненная 25 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.