Илья, этот курс - просто бомба! Очень похоже на лекции в университете, где опытный профессор прямо рукой вкладывает в черепушку студента, полную мусора, хорошо структурированные и действительно нужные вещи! Спасибо вам! Для русскоязычного сегмента сообщества это действительно событие!
Столько повторяющихся вопросов в чате. Предлагаю выводить на экран ответы на них для опоздавших и не только. 1. Запись будет) 2. Курс бесплатный 3. 3-5 месяцев Еще можно сделать гист с конфигом, какой там у тебя линукс, клавиатура, IDE, шампунь для волос и т.д.
Я безмерно благодарен Вам за этот лайв и весь курс в целом! Надеюсь смогу понять этот курс, т.к. я глупый и всё так тяжело запоминается - опыт понимания JS показывает мой уровень "мозгов"... Пытаюсь, стараюсь, плачу и очень верю, что смогу! Еще раз спасибо, что даёте возможность учиться таким как я.
Пример на codesandbox отлично демонстрирует необходимость понимания как и когда срабатывают неявные вызовы функций во Vue. Справедливости ради стоит отметить, что это не проблема Vue, а плохое решение прикладной задачи, где не подумали о производительности. Точно на такие же грабли можно наступить и в реакте и в ангуляре и вообще без фреймворка.
Я подумал учить Vue потому что ты записал уроки )) Мне как ангуляристу с 4 летним стажем сейчас правда больше по душе реакт. Люблю его за низкоуровневость.
Добрый день, меня зовут Сергей. Я только сегодня начал знакомство с вашим каналом и vue.js Я сам с Харькова но сейчас вынужден жить в Словакии с семьей, изучал четыре месяца html/css/js. Хотел выразить вам признательность за курс.
Илья, будет ли в курсе затронут вопрос - Где во Vue писать бизнес-логику? Для новичка этот вопрос совершенно непонятен. Видел примеры, где бизнес-логика пишется в компоненте, но тогда возникает вопрос как переиспользовать этот компонент если его поведение должно как-то отличаться от исходного. Во Vuex, тоже под вопросом, тем более что вы говорите, что зачастую можно обойтись без него. Кому интересен этот же вопрос, лайкните, чтобы поднять повыше.
стек вызова переполнен, js - это один поток - одна операция в единицу времени... При изменении данных срабатывают eventListeners всех элементов интерфейса, которые до этого напихали в стек функций обратного вызова. Поскольку источник мутации один, то он запускает цепочку обратных вызовов, которые будут обрабатываться в порядке очереди из за однопоточной природы js
Разгадал codesandbox. В тот момент, когда создаются computed переменные, на все реактивные переменные, а точнее поля, к которым происходит обращение в этот момент (в данном случае это availabilityData[k].*planned* и *isAvailable*) создаются вотчеры. Если внимательно посмотреть на пример, то "заморозка" происходит НЕ в момент создания страницы, а в момент уничтожения. Каждый компонент разрушается и должен "подтереть" за собой свой мусор - свои вотчеры (ну или что-то вроде этого, я уже досконально все шаги не отслеживал). Короче, список длиннющий и его очищение занимает существенное время.
@@JavaScriptNinja проблема в вычисляемом свойстве availableSlots. Оно может измениться с каждым появлением новой ячейки таблицы. Что приведет к перерендеру уже отрисованных (возможно к изменению свойства availableSlots - тут не разобрался. но так как все генериться на лету то скорее всего.) ячеек. что возвращает нас к началу процесса и так по кругу в рекурсии. для решения проблемы данные стоит генерировать до отрисовки и посчитать availableSlots. буду рад коментариям и критике.
Я во Vue нулевой. Код завис потому, что переменная зависит (связана реактивно) с количеством ячеек, или чего там, на странице. Vue видит, что переменную нужно посчитать, смотрит, что она зависит от страницы, значит нужно пересчитать страницу, а она зависит от переменной... Что-то вроде того, если в React в рендере setState сделать.
Ну хотя бы в речи звучит слово запрос, а не request. Часто слышу надо сделать реквест, еще часто мне предлагают кейс какой то купить в ВК. Что самое интересное, кто такими словами общается, те сами по себе мало опыта имеют. Т.е. они говорят о том что не понимают, а поэтому называют это так как пишут в коде.
Немного неуместная тема, но не могу не сказать. Илья очень много говорит про культуру в гитлабе. Прям чувствуется что в компании культура, коммуникация, удовлетворение от работы очень важные аспекты. я думаю многим было бы послушать мнение Ильи о том самом issue 555 про ненаем в штат сотрудников из определенных стран. Может на каком-нибудь офтопик стриме когда про вью уже все всё буду и знать от и до =)
Ишью прекрасный пример испорченного телефона. Найм ограничен только на одно семейство позиций (не программисты). У нас есть список стран, в которых мы не нанимаем по юридическим причинам (к примеру гитлаб не знает как платить так чтобы следовать законодательству этих стран), и это уже существует несколько лет
@@JavaScriptNinja насколько я знаю ненаем был и остаётся связан с доступом к персональным данным для резедентов "не дружественных" стран. Конечно всем понятно, что есть давление извне, заказчики, стейкхолдеры итд. Но на мой взгляд, выглядит это немного странно что компания пропагандирующая свободу равенство и братство так легко согласилась с тем что действительно суппорт инженер из России или Китая с большей вероятностью сохранит данные на флешку и передаст их товарищу майору. Двойные стандарты на мой взгляд.
@@Klimdos Я с вами не соглашусь. Во-первых, как я уже сказал - в ряде стран "ненайм" связан с совершенно другими юридическими особенностями (пример - Ирландия). Что же касается требований - GitLab (в том числе облаком), пользуются клиенты, у которых такие требования. GitLab признал, что на данный момент у нас нет инструментов аудита и контроля данных для таких клиентов и единственное как мы можем гарантировать выполнение их требований - вот так. При этом это не значит что средства аудита не разрабатываются. Я как раз работаю в Manage stage, Manage:Access - одна из наших команд
@@JavaScriptNinja Илья, спасибо за ответы. Я догадываюсь что предпосылки, мотивы и следствия в реальности совершенно не совпадают с тем что обсуждается в публичном пространстве и как это преподносят. Но все же подтверждение из фактически первых уст очень радует. Дело в том что я действительно не раз слышал об идейности в гитлабе и что там действительно люди (включая руководство) стремятся не просто заработать баксы, но и оставить какой-то след. И то событие было достаточно сильным ударом по моим убеждениям, я тогда думал - ну что? и даже эти? Реально говорят одно, а делают другое? Но по всей видимости не стоит разачаровыватся в людях. Ещё остались те кто могут сказать, - курс полностью бесплатный, у меня другой курс напокупали столько что я могу (и хочу) сделать что-то для комьюнити. Это по линусоторвальдски. Спасибо
@@Klimdos О предпосылках я могу только догадываться - с нами (инженерами) естественно никто не делится. У меня нету чего-нибудь по этой теме, чего бы я не мог рассказать другим. Гитлаб не идеален, это точно
Спасибо за то, что вы делаете!!! Вопрос - не помешает ли это, если паралельно изучаешь бэкенд или будет только плюсом? Может есть какие подводные камни? Опять же тоже филосовский, в некотором роде, вопрос!
- Сэр, итц тайм ту ти. Элэвэн оклок. - да, приготовь, пожалуйста. - а вы попросите меня на языке вью, хе хе. - во, мл, зараза, mkdir tea cd tea/ touch tea.js. Сам на JS-е приготовлю.
Здрасти . Я только начинающий и только сегодня наткнулся на ваше видео . Будет ли полезен и понятен этот курс для тех кто даже ещё не Джуниор ? Я сам ещё учусь и мы дошли до vue но на уроках толком не объясняют почему так и нельзя вот так . Просто повторяем за преподавателем и всё.
Если в данном курсе не предполагается пересказывать доки, то будете ли вы в конце видео указывать на необходимость прочтения определенных глав перед следующим занятием? Либо же предполагается, что зритель уже знаком с vue и мы будем говорить только языком абстракций?
Очень поверхностно. Тестирование компонентов это настолько сложная тема (а в случае с Vue - еще и специфичная из-за vue-test-utils) что про это у меня отдельные мастер-классы - слишком много материала
интересно, а если х будет web components (пользовательские элементы) как их подружить или все таки это глупая идея, приложение уже существует на ПЭ, но это как написать сервис на С++ можно но дорого?
А в проекте с фильмами будет авторизация вы сказали. А где пользователь будет хранится? Бд? И еще вопросик, будет ли функционал "забыл пароль"? Хочется узнать как это делать и попробовать
Забыл пароль? В бэке по логину ищешь пользователя, меняешь ему пароль на некоторый рандомный, затем отправляешь ему на почту этот пароль. Потом в личном кабинете пользователь через форму меняет пароль.
по поводу лагов в расписании: 36 интервалов времени * количество дней (20) и того 720 компонент, из за того что при переключении срабатывает v-if то каждый раз при переключении чекбокса убиваем 720 компонент и создаем новые 720 компонент в каждом мы обращаемся к vuex, далее во vuex есть стейт `availability.data` обьект который содержит обьекты (его размер зависит от времени вашего компьютера) если это вечер то минимальное 684 свойства выйдет, соответственно сам объект реактивен и все объекты внутри так же реактивны а теперь посчитаем 1 компонент делает 2 подписки на изменение (computed и updated(render) ) = 720 * 2 = 1440 подписок у нас 684 объекта + 1 родительский объект в котором находятся эти объекты = 685 объектов в каждом из объектов мы сделали(добавили в масив (простая операция)) 1440 подписок, и того мы делаем 685 * 1440 = 986400 подписок так как добавление достаточно быстрое то и отрисовка достаточно быстрая (~300ms на моем железе) после изменения чекбокса начинается имитация загрузки и срабатывает v-if 720 компонент уничтожается по очереди, то есть удалить из каждого из 685 объектов из массива подписок (подписок там ~1440) по 1-й подписке (которая находятся в произвольном порядке) и так все 986400 подписок PS: на самом деле подписок будет немного больше, не учтены еще N других на моем железе: удаление 1 подписки ~0.05ms 0.05*986400=49320ms нужно сидеть и ждать почти минуту для того что бы просто сработал v-if и удалились все компоненты а дальше снова отрисовка новых 720 компонент и добавление подписок на изменение данных, как писал выше ~300ms
@@JavaScriptNinja но при этом ему приходится делать операцию github.com/vuejs/vue/blob/b51430f598b354ed60851bb62885539bd25de3d8/src/core/observer/dep.js#L28. ~1000000 раз
Прошу прощения, а какие "нормальные знания" java script необходимы для изучения vue js (не расслышал 21:21)? Learn java script throttle 2 первые части и синхронность?
Я считаю что TypeScript даёт *ложную* уверенность в типах - его типизация недостаточно строга и эти полумеры зачастую приводят к тому, что надёжность страдает
@@IronGhostYT Общие впечатления от использования TypeScript 1) Часто приходится писать костыли с типами при интеграции нескольких библиотек, а иногда просто на ровном месте. Один из примеров - github.com/microsoft/TypeScript/issues/36390 2) Не у всех библиотек есть вариант для TypeScript, поэтому иногда будет выбор - брать другую или самому писать для нее типы. А есть такие, как pikaday, которые по умолчанию не требуют momentjs, но если подключаешь "стандартные" типы, то получаешь несколько сотен килобайт в бандл. 3) TypeScript - статический типизатор, а мир данных динамический и, зачастую, мы получаем данные с сервера или другого хранилища, и их все равно придется проверять. 4) TypeScript не скажет на сколько хорошо написан ваш код, а вот тесты, в какой-то мере, могут дать ответ на этот вопрос. 5) Помимо всего прочего еще увеличивается время разработки JavaScript хороший язык. Единственное, что ему не хватает - нормального хранения вещественных чисел. Но это проблема встречается во многих языках программирования.
Я не понял в чем разница vue и react, когда ты говорил, что рендер в react это выполнение комманд/функций, которые что-то рендерят по очередно. А vue, это некий скрипт, которые имеет параметры. Нарисуй item in items. Вопрос. Разве это не одно и тоже? У react рендер опреденного элемента - это вызов комманды. Как ты сказал. У vue рендер опреденного элемента, тоже вызов команды. Просто у него имеется, как ты уже ранее сказал "сахар". Вместо написания какого-то React.render(). Мы пишем v-for item in items. При вызове этого цикла, Vue там у себя под капотом вызывает и другие команды. Которые точно такие же, как react. Разве нет? Я всё еще не понял, в чем разница шаблонизации. Визуально да, написание разное. А выполнение я считаю одно и тоже под капотом. Я не на что не претендую, это только мои догадки, под капот react и vue я не лез
Может быть я немного не понимаю, но насчет примера codesandbox.io/s/vuex-lagging-getter-forked-n2stm при изменении локации вешается sleep (setTimeout), который вешает всю систему на каждый элемент отрисовки... при первичной отрисовке слотов функция setLocation не дергает этот метод, соответственно при изменении в шаблоне false -> true мы получаем данные, а не зависание. Поправьте пожалуйста, если я неверно высказался
в vuex-се существует подписка по аналогии с обсервеблами rx. по привычке оверюзал первое время) У меня на текущем проекте пользуется популярностью eventBus в качестве решения для емита/подписки событий между компонентами не имеющих свзязь чайлд-родитель. В ангулар подобную коммуникацию покрывали сервисы. Насколько популярен подобный подход во вью и будет ли пару комментариев по нему в курсе?
@@MrGlorianну все таки между стором и басом, кмк, весомая концептуальная разница. Первый про данные, второе про события. Я бы не мешал. Спасибо за provide/inject, они как то обошл меня стороной.
Всем привет, каюсь новичок, не как не пойму, как получать данные, если Мы не как не интегрируемся с Vue, как тогда будет корректно получать не реактивные данные ?
Насчет кода в сендбоксе: Упростите его пожалуйста, чтобы новички тоже смогли потыкать. А то там декомпозиция, плохо отформатированные стрелочные функции, куча условий с шорткатами, все это повышает когнитивную сложность. Уберите вот это "ЦПАУ" и прочее, сделайте максимально простые примитивы, по типу tabs, items
Приношу извинения за лёгкую статику от микрофона. Источник шума будет найден и безжалостно принесён в жертву во славу Vue до следующей трансляции!
Сложилось ощущение что это от кулера
@@yedilkazyseiitkazy2687 нет, у меня на трансляциях ноуту запрещено включать кулер (стримит не ноут)
Да все нормально. Слышно хорошо и содержание так увлекает, что не замечаешь ничего.
Во славу Vue!
Хм, а я и не заметил ничего...
Илья, этот курс - просто бомба! Очень похоже на лекции в университете, где опытный профессор прямо рукой вкладывает в черепушку студента, полную мусора, хорошо структурированные и действительно нужные вещи! Спасибо вам! Для русскоязычного сегмента сообщества это действительно событие!
мысли читаете )
Это будет лучший курс про Vue на просторах рунета!
Он уже таким является)
@@P1oN4ik жаль, что забуксовал
Дякую за класний контент, кажуть це найкращий курс по Vue 3)))
отличное видео. Спасибо за контент. Илья, реально, от всей души, выражаю благодарность за твою работу, за старание донести ЦЕННЫЕ знания в массу.
Столько повторяющихся вопросов в чате. Предлагаю выводить на экран ответы на них для опоздавших и не только.
1. Запись будет)
2. Курс бесплатный
3. 3-5 месяцев
Еще можно сделать гист с конфигом, какой там у тебя линукс, клавиатура, IDE, шампунь для волос и т.д.
шампунь для волос xD
Спасибо за такой труд всем, кто причастен к этому проекту! Как раз необходимо изучить, но к сожалению джс хромает. Надеюсь справлюсь с челленджами.
У тебя всё получится)
Великолепный курс! Такого больше нигде нет. Огромное спасибо!
Супер! Большущее спасибо! Гораздо больше понимания, чем на платных дооооолгих курсах🤩
Подобного материала как раз и не хватало в процессе изучения Vue: цельного поэтапного подхода к изложению материала. Благодарю!
Спасибо за курс. Посмотрел все уроки.
Некоторые видео несколько раз пересматривал.
Продолжаю учить:)
Это просто эталон. У вас преподавательский дар.
Запредельная крутизна и полезность
Я безмерно благодарен Вам за этот лайв и весь курс в целом! Надеюсь смогу понять этот курс, т.к. я глупый и всё так тяжело запоминается - опыт понимания JS показывает мой уровень "мозгов"... Пытаюсь, стараюсь, плачу и очень верю, что смогу! Еще раз спасибо, что даёте возможность учиться таким как я.
Благодарю автора за данный материал.
Ещё давно его советовали «более старшие» разрабы, сейчас понимаю что это топ в сфере данной тематики.
Пример на codesandbox отлично демонстрирует необходимость понимания как и когда срабатывают неявные вызовы функций во Vue. Справедливости ради стоит отметить, что это не проблема Vue, а плохое решение прикладной задачи, где не подумали о производительности. Точно на такие же грабли можно наступить и в реакте и в ангуляре и вообще без фреймворка.
Еще бы подобных примеров и пояснения для React и Angular.
Это потрясающий урок. Спасибо огромное! Более доходчивого объяснения разницы между реактом и вью я не встречала. А теперь сделал свой выбор. Спасибо 👻
Илья, большое спасибо за видео! Поднимем его в выдаче!
Ты большой молодец. Спасибо, было приятно провести с тобой время и учиться.
Реактивность - это способность системы реагировать на изменения данных, вбилось в голову как 2+ 2
как 22? :)
@@АлексейЧухланцев-л5г норм)
Спасибо! Очень корректный лектор. Инфа зашла)
Я подумал учить Vue потому что ты записал уроки ))
Мне как ангуляристу с 4 летним стажем сейчас правда больше по душе реакт. Люблю его за низкоуровневость.
"мне, как ангулярщику, больше нравится реакт, но рншил учить вью..." - это шизофрения, браток
@@sergioostanioni5390 та не буду я учить Vue. Говно примерно такого же типа как Ng. А реакт реально говно иного сорта
а я ушел с реакта на ангуляр и не жалею, ангуляр хорош)
Спасибо за контент Илья! Очень хочу вырасти с джуна на мидла, уверен курс сильно с этим поможет.
Я как раз попал на проект на Вью после Реакта) Твой контент прям бальзам на душу) Спасибо тебе!
Посмотрел 15 минут , задание мне понарвилось , буду участвовать )
Ставлю колокол, откидываюсь на спинку кресла, готовлю чай! ^^
твой канал, мега мощный) спасибо большое за то, что делишься своими знаниями! объясняешь максимально понятно и доступно!
Добрый день, меня зовут Сергей. Я только сегодня начал знакомство с вашим каналом и vue.js Я сам с Харькова но сейчас вынужден жить в Словакии с семьей, изучал четыре месяца html/css/js. Хотел выразить вам признательность за курс.
vue js курс просто бомба, только нашел, буду проходить
Очень классная подача материала! Спасибо Илья!
Заранее спасибо за курс.
Спасибо! Подача материала отличная. Я с вами.
Спасибо большое за ваш курс! Это просто шедевр!
Большое спасибо за лайв, узнал много нового!
Очень круто! Спасибо за такую работу! 🙏🏻
Спасибо за твои знания!
дуже круто, дякую!
3:33 Hectorino Martinez - Run не благодарите
Пишу на реакте, пока вся инфа хорошо ложится несмотря на то, что курс по Vue. Вот бы такой курс по реакту ещё, эхх)
Спасибо за лайв, очень прошу аполло🙏
Спасибо большое. Очень доступно и понятно.
Это просто потрясающе!) спасибо
Спасибо за курс!
Очень интересный курс, поднимаются такие темы которые не получить от курсов где тебе просто доку пересказывают
Отличный курс 😉
Спасибо, большое очень полезно было)
Чёткая музычка в начале)
Илья, будет ли в курсе затронут вопрос - Где во Vue писать бизнес-логику? Для новичка этот вопрос совершенно непонятен. Видел примеры, где бизнес-логика пишется в компоненте, но тогда возникает вопрос как переиспользовать этот компонент если его поведение должно как-то отличаться от исходного. Во Vuex, тоже под вопросом, тем более что вы говорите, что зачастую можно обойтись без него. Кому интересен этот же вопрос, лайкните, чтобы поднять повыше.
Будет, об этом говорилось в водном ролике.
Супер!
оо, как хорошо, что бэк на ноде. Я немного знаком с ним )
стек вызова переполнен, js - это один поток - одна операция в единицу времени... При изменении данных срабатывают eventListeners всех элементов интерфейса, которые до этого напихали в стек функций обратного вызова. Поскольку источник мутации один, то он запускает цепочку обратных вызовов, которые будут обрабатываться в порядке очереди из за однопоточной природы js
Нет
@@JavaScriptNinja уже интересно )) хоть с ем связано, сам попытаюсь )
@@michaeldeoz существует понятие task и thread. Multitasking и multithreading это разные вещи. js is multitasking != multithreading
Большое спасибо! Это прям годнота какая-то)
О, то что мне не хватало)) колокол накрутил на максиму))
Разгадал codesandbox.
В тот момент, когда создаются computed переменные, на все реактивные переменные, а точнее поля, к которым происходит обращение в этот момент (в данном случае это availabilityData[k].*planned* и *isAvailable*) создаются вотчеры.
Если внимательно посмотреть на пример, то "заморозка" происходит НЕ в момент создания страницы, а в момент уничтожения.
Каждый компонент разрушается и должен "подтереть" за собой свой мусор - свои вотчеры (ну или что-то вроде этого, я уже досконально все шаги не отслеживал).
Короче, список длиннющий и его очищение занимает существенное время.
У availabilityData[k].* нету много вотчеров
@@JavaScriptNinja проблема в вычисляемом свойстве availableSlots. Оно может измениться с каждым появлением новой ячейки таблицы. Что приведет к перерендеру уже отрисованных (возможно к изменению свойства availableSlots - тут не разобрался. но так как все генериться на лету то скорее всего.) ячеек. что возвращает нас к началу процесса и так по кругу в рекурсии. для решения проблемы данные стоит генерировать до отрисовки и посчитать availableSlots. буду рад коментариям и критике.
@@jonicj4973 availableSlots и так кешируется вью. Можно проверить консоль логом
Я во Vue нулевой. Код завис потому, что переменная зависит (связана реактивно) с количеством ячеек, или чего там, на странице. Vue видит, что переменную нужно посчитать, смотрит, что она зависит от страницы, значит нужно пересчитать страницу, а она зависит от переменной... Что-то вроде того, если в React в рендере setState сделать.
Мы коснемся virtual Dom? С ваших слов я уверен будет намного понятнее,чем у остальных
РЕСПЕКТ
Основная фишка Vue 3 как по мне поддержка typescript, будет ли курс на typescript, или чистый JS ?
Поздравляем нави :)
Ну хотя бы в речи звучит слово запрос, а не request. Часто слышу надо сделать реквест, еще часто мне предлагают кейс какой то купить в ВК.
Что самое интересное, кто такими словами общается, те сами по себе мало опыта имеют. Т.е. они говорят о том что не понимают, а поэтому называют это так как пишут в коде.
ух огонь=)) спасибо
6:18 начало
огонььь курс
Немного неуместная тема, но не могу не сказать.
Илья очень много говорит про культуру в гитлабе. Прям чувствуется что в компании культура, коммуникация, удовлетворение от работы очень важные аспекты.
я думаю многим было бы послушать мнение Ильи о том самом issue 555 про ненаем в штат сотрудников из определенных стран.
Может на каком-нибудь офтопик стриме когда про вью уже все всё буду и знать от и до =)
Ишью прекрасный пример испорченного телефона. Найм ограничен только на одно семейство позиций (не программисты). У нас есть список стран, в которых мы не нанимаем по юридическим причинам (к примеру гитлаб не знает как платить так чтобы следовать законодательству этих стран), и это уже существует несколько лет
@@JavaScriptNinja насколько я знаю ненаем был и остаётся связан с доступом к персональным данным для резедентов "не дружественных" стран.
Конечно всем понятно, что есть давление извне, заказчики, стейкхолдеры итд.
Но на мой взгляд, выглядит это немного странно что компания пропагандирующая свободу равенство и братство так легко согласилась с тем что действительно суппорт инженер из России или Китая с большей вероятностью сохранит данные на флешку и передаст их товарищу майору. Двойные стандарты на мой взгляд.
@@Klimdos Я с вами не соглашусь. Во-первых, как я уже сказал - в ряде стран "ненайм" связан с совершенно другими юридическими особенностями (пример - Ирландия). Что же касается требований - GitLab (в том числе облаком), пользуются клиенты, у которых такие требования. GitLab признал, что на данный момент у нас нет инструментов аудита и контроля данных для таких клиентов и единственное как мы можем гарантировать выполнение их требований - вот так. При этом это не значит что средства аудита не разрабатываются. Я как раз работаю в Manage stage, Manage:Access - одна из наших команд
@@JavaScriptNinja Илья, спасибо за ответы. Я догадываюсь что предпосылки, мотивы и следствия в реальности совершенно не совпадают с тем что обсуждается в публичном пространстве и как это преподносят.
Но все же подтверждение из фактически первых уст очень радует.
Дело в том что я действительно не раз слышал об идейности в гитлабе и что там действительно люди (включая руководство) стремятся не просто заработать баксы, но и оставить какой-то след. И то событие было достаточно сильным ударом по моим убеждениям, я тогда думал - ну что? и даже эти? Реально говорят одно, а делают другое?
Но по всей видимости не стоит разачаровыватся в людях. Ещё остались те кто могут сказать, - курс полностью бесплатный, у меня другой курс напокупали столько что я могу (и хочу) сделать что-то для комьюнити. Это по линусоторвальдски. Спасибо
@@Klimdos О предпосылках я могу только догадываться - с нами (инженерами) естественно никто не делится. У меня нету чего-нибудь по этой теме, чего бы я не мог рассказать другим. Гитлаб не идеален, это точно
Спасибо за то, что вы делаете!!! Вопрос - не помешает ли это, если паралельно изучаешь бэкенд или будет только плюсом? Может есть какие подводные камни? Опять же тоже филосовский, в некотором роде, вопрос!
merci au TOP Super Nickel Parfait
Шикарные уроки! это вообще легально? !!!
- Сэр, итц тайм ту ти. Элэвэн оклок.
- да, приготовь, пожалуйста.
- а вы попросите меня на языке вью, хе хе.
- во, мл, зараза, mkdir tea
cd tea/
touch tea.js. Сам на JS-е приготовлю.
куда поставить второй Лайк!
Здрасти . Я только начинающий и только сегодня наткнулся на ваше видео . Будет ли полезен и понятен этот курс для тех кто даже ещё не Джуниор ? Я сам ещё учусь и мы дошли до vue но на уроках толком не объясняют почему так и нельзя вот так . Просто повторяем за преподавателем и всё.
Спасибо!
Спасибо
Если в данном курсе не предполагается пересказывать доки, то будете ли вы в конце видео указывать на необходимость прочтения определенных глав перед следующим занятием? Либо же предполагается, что зритель уже знаком с vue и мы будем говорить только языком абстракций?
а про тестирование vue компонентов что-нибудь будет?
Очень поверхностно. Тестирование компонентов это настолько сложная тема (а в случае с Vue - еще и специфичная из-за vue-test-utils) что про это у меня отдельные мастер-классы - слишком много материала
@@JavaScriptNinja мастер-классы уже готовые? их где-то уже можно посмотреть?
@@uniquenickname они платные. javascript.ninja
@@JavaScriptNinja то есть если я щас оплачу мастер-класс по тестированию JS, то доступ получу сразу, а к видео по vue только после 6-го?
@@uniquenickname 1 да. 2 теорию по вью сразу, а 6 лайв будет
интересно, а если х будет web components (пользовательские элементы) как их подружить или все таки это глупая идея, приложение уже существует на ПЭ, но это как написать сервис на С++ можно но дорого?
Не знаю - может ли быть круче?!
А в проекте с фильмами будет авторизация вы сказали. А где пользователь будет хранится? Бд?
И еще вопросик, будет ли функционал "забыл пароль"? Хочется узнать как это делать и попробовать
Забыл пароль? В бэке по логину ищешь пользователя, меняешь ему пароль на некоторый рандомный, затем отправляешь ему на почту этот пароль. Потом в личном кабинете пользователь через форму меняет пароль.
@@redhook777 Это так не работает, по стандарту пароль остаётся не тронутым, а пароль меняется по ссылке из письма.
комментарий для продвижения канала
А запись будет? что? да у меня такие же рефлексы как у всех!!! Кстати а курс бесплатный??? уфф сказал а то мне было бы плохо))))
по поводу лагов в расписании:
36 интервалов времени * количество дней (20) и того 720 компонент, из за того что при переключении срабатывает v-if то каждый раз при переключении чекбокса убиваем 720 компонент и создаем новые 720 компонент в каждом мы обращаемся к vuex, далее во vuex есть стейт `availability.data` обьект который содержит обьекты (его размер зависит от времени вашего компьютера) если это вечер то минимальное 684 свойства выйдет, соответственно сам объект реактивен и все объекты внутри так же реактивны а теперь посчитаем
1 компонент делает 2 подписки на изменение (computed и updated(render) ) = 720 * 2 = 1440 подписок
у нас 684 объекта + 1 родительский объект в котором находятся эти объекты = 685 объектов
в каждом из объектов мы сделали(добавили в масив (простая операция)) 1440 подписок, и того мы делаем 685 * 1440 = 986400 подписок
так как добавление достаточно быстрое то и отрисовка достаточно быстрая (~300ms на моем железе)
после изменения чекбокса начинается имитация загрузки и срабатывает v-if 720 компонент уничтожается по очереди, то есть удалить из каждого из 685 объектов из массива подписок (подписок там ~1440) по 1-й подписке (которая находятся в произвольном порядке) и так все 986400 подписок
PS: на самом деле подписок будет немного больше, не учтены еще N других
на моем железе:
удаление 1 подписки ~0.05ms
0.05*986400=49320ms нужно сидеть и ждать почти минуту для того что бы просто сработал v-if и удалились все компоненты
а дальше снова отрисовка новых 720 компонент и добавление подписок на изменение данных, как писал выше ~300ms
Если вы добавите вывод id подписок, то увидите что на странице не 1000000 подписок. Вью это достаточно серьезно оптимизирует
@@JavaScriptNinja но при этом ему приходится делать операцию github.com/vuejs/vue/blob/b51430f598b354ed60851bb62885539bd25de3d8/src/core/observer/dep.js#L28. ~1000000 раз
Прошу прощения, а какие "нормальные знания" java script необходимы для изучения vue js (не расслышал 21:21)? Learn java script throttle 2 первые части и синхронность?
Илья, почему ты не сторонник TypeScript?
Я считаю что TypeScript даёт *ложную* уверенность в типах - его типизация недостаточно строга и эти полумеры зачастую приводят к тому, что надёжность страдает
У Ильи есть по этим вопросам целые лекции, которые есть на просторах Ютуба
@@IronGhostYT там не на самом канале, а например Холи джс
@@JavaScriptNinja согласен, мне больше нравится все описывать в jsdoc, да и после книжки ' вы не знаете жс ' больше полюбил жс с его типизацией
@@IronGhostYT Общие впечатления от использования TypeScript
1) Часто приходится писать костыли с типами при интеграции нескольких библиотек, а иногда просто на ровном месте. Один из примеров - github.com/microsoft/TypeScript/issues/36390
2) Не у всех библиотек есть вариант для TypeScript, поэтому иногда будет выбор - брать другую или самому писать для нее типы. А есть такие, как pikaday, которые по умолчанию не требуют momentjs, но если подключаешь "стандартные" типы, то получаешь несколько сотен килобайт в бандл.
3) TypeScript - статический типизатор, а мир данных динамический и, зачастую, мы получаем данные с сервера или другого хранилища, и их все равно придется проверять.
4) TypeScript не скажет на сколько хорошо написан ваш код, а вот тесты, в какой-то мере, могут дать ответ на этот вопрос.
5) Помимо всего прочего еще увеличивается время разработки
JavaScript хороший язык. Единственное, что ему не хватает - нормального хранения вещественных чисел. Но это проблема встречается во многих языках программирования.
Увертюра супер
Рекомендации по библиотекам (с реактивностью и без) относится только к vue или к nuxt, также? Например, @nuxtjs/axios.
ИМХО: всегда лучше пользоваться "чистыми" библиотеками. При желании и небольшом количестве времени можно из них самостоятельно сделать плагин к Vue.
Доброго времени суток. Нет ли макета данного проекта?
Толковый
Я не понял в чем разница vue и react, когда ты говорил, что рендер в react это выполнение комманд/функций, которые что-то рендерят по очередно.
А vue, это некий скрипт, которые имеет параметры. Нарисуй item in items.
Вопрос. Разве это не одно и тоже?
У react рендер опреденного элемента - это вызов комманды. Как ты сказал.
У vue рендер опреденного элемента, тоже вызов команды.
Просто у него имеется, как ты уже ранее сказал "сахар".
Вместо написания какого-то React.render().
Мы пишем v-for item in items.
При вызове этого цикла, Vue там у себя под капотом вызывает и другие команды. Которые точно такие же, как react.
Разве нет?
Я всё еще не понял, в чем разница шаблонизации. Визуально да, написание разное. А выполнение я считаю одно и тоже под капотом.
Я не на что не претендую, это только мои догадки, под капот react и vue я не лез
Может быть я немного не понимаю, но насчет примера codesandbox.io/s/vuex-lagging-getter-forked-n2stm при изменении локации вешается sleep (setTimeout), который вешает всю систему на каждый элемент отрисовки... при первичной отрисовке слотов функция setLocation не дергает этот метод, соответственно при изменении в шаблоне false -> true мы получаем данные, а не зависание. Поправьте пожалуйста, если я неверно высказался
В javascript не бывает синхронных sleep :)
@@JavaScriptNinja именно. Значит вопрос был больше к js спецам, чем ко vue`шникам?
@@deluxenew1 нет, проблема именно во vue. Ваша теория неверна
Ребята, напишите почему лагает то) Есть опыт коммерческой разработки на vue 1 год, но я без понятия
после быстрого просмотра кода обнаружился запуск кучи промисов с таймаутом
@UCv_qXtblMjlg9FPzn9NirLw тогда функциональные компоненты должны это исправить
Странно, что пример даже c false нормально работает только в Firefox, в хроме и эдже задержка где-то секунду
в vuex-се существует подписка по аналогии с обсервеблами rx. по привычке оверюзал первое время) У меня на текущем проекте пользуется популярностью eventBus в качестве решения для емита/подписки событий между компонентами не имеющих свзязь чайлд-родитель. В ангулар подобную коммуникацию покрывали сервисы. Насколько популярен подобный подход во вью и будет ли пару комментариев по нему в курсе?
EventBus - антипаттерн, по крайней мере в мире vue.
@@MrGlorian И какая альтернатива тогда?
@@user-ug1fk8ob3q provide/inject, vuex как пример.
@@MrGlorianну все таки между стором и басом, кмк, весомая концептуальная разница. Первый про данные, второе про события. Я бы не мешал. Спасибо за provide/inject, они как то обошл меня стороной.
Басы даже не небольшом проекте охренеешь ковырять и читать что-куда-откуда.
А можно узнать почему передача данных из компонента а в компонент б через vuex в большинстве случаев не правильное решение?
Потому что есть более простое решение, которое не требует тащить целую либу в проект, я полагаю.
Если компоненты на соседнем уровне иерархии, то достаточно props и $emit
В большинстве случаев - правильное решение, так как в большинстве случаев компоненты не являются родителем-потомком
в предыдущих видео было немного сравнения с реактом, будет ли подобное с ангуляром?
Было на практике (5 видео)
@@JavaScriptNinja спасибо, еще не добрался туда)
Всем привет, каюсь новичок, не как не пойму, как получать данные, если Мы не как не интегрируемся с Vue, как тогда будет корректно получать не реактивные данные ?
Здравствуйте, а у вас есть на канале курс по чистоту js для новичков?
Слой данных - это Vuex?
Насчет кода в сендбоксе:
Упростите его пожалуйста, чтобы новички тоже смогли потыкать.
А то там декомпозиция, плохо отформатированные стрелочные функции, куча условий с шорткатами, все это повышает когнитивную сложность. Уберите вот это "ЦПАУ" и прочее, сделайте максимально простые примитивы, по типу tabs, items
Этот код не является обучающим и был создан для иллюстрации совсем другой проблемы. Я показал его просто, чтобы показать одну из болей Vue
Как разобраться во всех этих словах и аббревиатурах программистских или не стоит заморачиваться и это придет с опытом?
Придет со временем. Иногда будет полезно погуглить
Приложение не упало, просто большие вычисления.
В плейлист забыли добавить
Добавим, спасибо