Ivan
проблема именно в названии Component.js
Это уже если команде удобно так, то почему бы и нет, хоть это и выглядит ужасно тупо
Ivan
напиши свой варик, я скопирую и отправлю. завтра скажу результат. если сможешь переубедить.. с меня пиво либо косячок
У меня с таким всегда один непробиваемый аргумент — вбиваешь в поиск по проекту «component.js», получаешь 3472 совпадения, показываешь лиду и говоришь: «ну вы в конец охуели? Что это значит вообще?» У меня на работе ВСЕ имена типов props компонентов назывались PropTypes. Один раз грепнул на общем собрании и победил.
Valentin
Это уже если команде удобно так, то почему бы и нет, хоть это и выглядит ужасно тупо
да там команда, один челик. теперь это один челик и один бедолага
Valentin
У меня с таким всегда один непробиваемый аргумент — вбиваешь в поиск по проекту «component.js», получаешь 3472 совпадения, показываешь лиду и говоришь: «ну вы в конец охуели? Что это значит вообще?» У меня на работе ВСЕ имена типов props компонентов назывались PropTypes. Один раз грепнул на общем собрании и победил.
не кактит, я с этого начал... крч цитата на сообщение о быстром поиске файла: если говорить об адекватности... ты называешь каталог, тем же именем файл компонента, а внутри еще раз именем класс... так в чем адекватность? у тебя есть структура, каталог, например фильтр, в каталоге есть два файла, файл входа(индекса) и сам файл компонента... что тебе не нравится? или это вынужденность использования иде? в моем иде поиск намного проще и ищется по любому критерию
Ivan
Как я понял что наименование файлов несёт в себе его функциональное значение. А наименование папки - логическое. Впринципе, понять эту идею можно
Valentin
Как я понял что наименование файлов несёт в себе его функциональное значение. А наименование папки - логическое. Впринципе, понять эту идею можно
а как быстро к файлу заходить? По каталогу мышкой водить? Или писать название папки и искать в результатах поиска нужный файл? А если в этой папке куча других папок с одними названиями?
Valentin
Valentin
Ну тот же vs code имеет удобный переход по папкам, работает любое совпадение и дополнение
у меня vscode, искать по названию файла и папки это все равно оч разное. Ну файлы править я не стал, завтра будет драка за нвазние файлов
Ivan
у меня vscode, искать по названию файла и папки это все равно оч разное. Ну файлы править я не стал, завтра будет драка за нвазние файлов
Основной аргумент может быть в том, что наименование Компонента и файла совпадают по официальному стайл гайду реакта
Ivan
Тот cra - делает также)
Ivan
В структуре Компонент/индекс - есть своя прелесть, при импорте не повторяешь два раза одно и тоже) если у тебя компонент разлелен на несколько
Ivan
Соглашения и гайды без понимания — это карго культ. Вопросы именования — это удобство и личные предпочтения (приоритет по порядку). 1000 файлов с одинаковыми названиями — это неудобно. Этого достаточно.
Ivan
Ivan
Вот в моей бывшей тиме есть предпочтение писать джс с переносом фигурных скобок - по мне это прям гадость, но шарписты дрочат на это)
Ivan
Не удобно - ниразу не аргумент. У команды всегда возникает свой стайл гайд. Всегда будут не довольные, но большинство всегда решает
Решает тот, кто может донести свои аргументы до большинства, большенству вообще похуй и хочется домой. И кофейку. Насчёт того, что удобство не аргумент ты заблуждаешься. Но мне лень спорить на эту тему, давай не будем)
Ivan
var lol = function (kek) { // Вот так делали }
Ivan
var lol = function (kek) { // Вот так делали }
Аж до сих пор в дрож бросает
VovaN
В чём?
В переносе фигурных скобок
VovaN
Давай всё в одну линию напишем)
Ivan
В переносе фигурных скобок
🤔 Тут нет правых или не правых. В джсе так мало кто делает (любой офф стайл гайд не делает так)
Ivan
Как по мне это совсем не эстетичный код, кому то напротив покажется
VovaN
Есть смысл писать в одну линию, когда одна от одной отличается несколькими символами. Чтобы подчеркнуть отличия
Ivan
() => { // Мерзость, имхо } () => { // Четко, имхо }
VovaN
() => { // Мерзость, имхо } () => { // Четко, имхо }
С этим согласен, неправильно понял
Ivan
Ля какой, кофескрипт стал полноценно работать с jsx и со всеми фичами ес6+. Надо опробовать (з.ы.: знаю что он мертв. З.ы.2: просто во времена джейквери он нравился очень сильно)
Ivan
какой?
Prettier
Valentin
какой?
Шутишь? Живо его используй!
Ivan
Prettier
Стандарт - сильно сказано, но утилита хорошая
VovaN
Красиво, но это не стандарт 😂
Ivan
Стандарт - сильно сказано, но утилита хорошая
Да, он не в палате мер и весов TC39, но в индустрии недалеким считается человек, который prettier не использует. Это не закреплено ни в какой спецификации. Как и использование ангуляра/реакта — индустриальный стандарт для разработки веб-приложений. Не jquery и не ember, хотя это ни в каком официальном документе не отображено.
Ivan
Вообще то отражается. Сайтик по статистике использования расширений для нативного js. Сейчас не вспомню. В общем не просто так.
Статистика использования — это наблюдение за чем-то уже существующим. Это отображение, а не источник. Вот es — официальный документ, он определяет поведение языка. Там всё формально, не доебаться.
Valentin
Статистика использования — это наблюдение за чем-то уже существующим. Это отображение, а не источник. Вот es — официальный документ, он определяет поведение языка. Там всё формально, не доебаться.
Не. Там опросник. Что пробовали использовать. Что юзает. Что хотели бы попробовать. Плюс тренды года и какая по ним стата. Если напомнишь поищу. С телефона сложна. Хотя я выше уже обещал по неймингу ))
Oleksandr
Чем тестируют React и тестируют ли вообще?
Ivan
Чем тестируют React и тестируют ли вообще?
https://github.com/testing-library/react-testing-library
Oleksandr
А что по поводу jasmine?
Ivan
А что по поводу jasmine?
А что по поводу mocha?
Oleksandr
Ну моку я юзал немного...
Viktor
Привет, может кто то подсказать, можно ли в useEffect выполнить код когда все children отрендерилсь. В целом useEffect это не принципально, нужно просто удостовериться что внутренние компоненты на месте.
Viktor
rootRef.current.querySelector(gridSelector).children.length отдает 0. При этом видно что rootRef.current.querySelector(gridSelector).children это лайв лист элементов, который заполнен если логировать его. (Ну т.е. он то обновился, но на момент выполнения эффекта он всё же пуст)
Alex
Ребят, не подскажите почему у меня stroke в svg накладывается при fill на pattern? При fill на цвет - всё окей https://tehnogaz.tk/our-projects
Viktor
У тебя и так хук эффекта сработает после рендера детей
Вообще я именно этого и ожидал :) Но почему то нет. Окей, попробую всё выкосить и посмотреть на совсем чистом примере.
Daniil
Вообще я именно этого и ожидал :) Но почему то нет. Окей, попробую всё выкосить и посмотреть на совсем чистом примере.
Хм, набросал пример, реф ребенка в хуке эффекта вроде корректно приходит https://repl.it/repls/BogusBoringPress
Viktor
У тебя и так хук эффекта сработает после рендера детей
export const MasonryGrid = ({ gridSelector, children }) => { const rootRef = useRef(null); useLayoutEffect(() => { console.log( rootRef.current.querySelector(gridSelector).children.length ); }); return <div ref={rootRef}>{children}</div>; }; Вот в этом примере коллекция заполняется, но уже после эффекта видимо. Потому что именно length - 0 Сейчас посмотрю твой пример
Daniil
Там еще в чем проблема, насколько помню, если ты хочешь "понять" через рефы, что твои чайлды нормально отрендерились и они функциональные компоненты, то там могут быть проблемы. Банально, для них не создаётся экземпляров. Ты можешь попробовать ребенков сделать через классы и не пробрасывать реф нужному ребенку.
Daniil
Это точно раньше в реакте было, как сейчас уже не проверял.
Viktor
А что мешает просто получить длину чилдренов?
Мне надо искать не непосредственные чилдрены компонента, а чилдрены внутри какой то таргет ноды внутри этого компонента. Но вся суть не в длинне чилдренов конечно, а в том что мне потом с полученными чилдренами сделать разные сайд эффекты.
Artyom
Ситуация: от бэка приходит ответ с огромной вложенностью и сложностью. Из всей глубины мне надо вытащить некототорые объекты. Какой либой это можно сделать?
Igor
Ситуация: от бэка приходит ответ с огромной вложенностью и сложностью. Из всей глубины мне надо вытащить некототорые объекты. Какой либой это можно сделать?
распарсить руками? Ты можешь написать небольшой метод по проверке нужного тебе ключа, чтобы избежать проверок вида test && test.test1 && test.test1.test2
Igor
propExists(obj, path) { return !!path.split('.').reduce((obj, prop) => { return obj && obj[prop] ? obj[prop] : undefined }, obj) } пример хэлпера
Igor
propExists(settings, 'deviceSettings.contentDownloadType.values') использование
Artyom
распарсить руками? Ты можешь написать небольшой метод по проверке нужного тебе ключа, чтобы избежать проверок вида test && test.test1 && test.test1.test2
По-любому есть либа, которая это умеет делать. Я ожидаю, что люди на опыте могут такую посоветовать. normalizr похожее делает, но я не уверен, что им можно. Вопрос не решён
Igor
если тебе нужно просто вытащить из глубины то насколько я помню есть в лодаше метод get
Eddie
Привет всем, пол года учу фронт/реакт, подаю резюме, но не зовут на собесы, смотрю очень много вакансий на php. Вопрос стоит ли мне учить пхп, перспективно ли это, и сколько примерно времени это займет. Заранее благодарю.
Eddie
js/react, я выучил до норм уровня за 3 месяца, хотелось бы узнать сколько займет изучение пхп
Andrey
Я думаю лучше портфолио на гитхабе расширить
Eddie
вакансий очень много
Vladislav
Ты из-за вакансий хочешь работать с какой-либо технологией, а не потому что нравится?)