Илья, просьба есть: Размещать план задания, что будет сделано в видео, чтобы перед тем как тебя услышать можно было подумать и попытаться придумать свое решение Возможно не всегда это нужно, но вот мне почему-то кажется, что в этом может быть смысл
Моё решение: смотрю весь урок, записывая изменения, напр: added handleDelete method, после того как закончил, смотрю в список и пытаюсь делать всё сам. Мне кажется, что это оптимально
Относительно того, почему полоски графика не появляются за первые несколько кругов интервала: тут проблема в том, что на первых нескольких кругах maxValue и minValue равны, соответственно, в формуле (price - minValue) * 100 / (maxValue - minValue) - в знаменателе оказывается ноль, что в свою очередь приводит общий результат вычисления к NaN. Поэтому пока не появится разница у max и min - полоски не генерятся.
Не используйте переменные вроде "t" и "sell". Даже если кажется что участок кода небольшой, скоро он станет больше и вы будете тратить больше времени на запоминание предназначения переменных. И будете регулярно ошибаться. И будут ошибки. "ticket" не сильно длиннее, но значительно красноречивее.
Илья, если позволите, чуть-чуть критики (ни в коем разе не указываю что и как Вам делать). К предыдущему видео был один комментарий: "...непривычно рваный поток информации...". Я поймал себя на этой же мысли. И это при том, что я вью знаю, а смотрю курс ради интереса, равно как и у других ютюберов что-нибудь да посматриваю. Я старался смотреть, как новичок во вью и, не знаю как, но в какой-то момент, я уже терял мысль - где мы находимся и чего мы хотим, не говоря уже о слежениями за всякими там переменными с данными. Если бы я учил вью, то наверно сейчас бы я свесил голову "вью - это не моё". Мне кажется, что "Криптономикон" - не удачный ввод учеников в начало работы со вью. Извините, это лишь моё мнение.
Выживают сильнейшие, те, кто реально захочет учится - будет смотреть и учиться, будет пересматривать и вникать, так как сейчас есть отличная возможность, а все другие как раз таки и будут ныть, мол Vue - это не моё, лично моё мнение - я узнал больше, чем раньше, уже до этапа начала разработки, хотя раньше я что-то да писал толковое на VUe
Я новичок во вью, не заметил такого что прям ой не... не мое... Но примерно понимаю о чем вы, вроде как мозг привык ожидать всегда последовательные действия, а тут иногда идут перескакивания в виде отступлений или пояснений и те кто не привык держать все в голове может путаться. Но с другой стороны, это заставит ученика перемотать и пересмотреть видео, ну и возможно будет тренировать память )
@@JavaScriptNinja Очень интересно как тебе удастся это сделать, как по мне нужно сначала понять что значит "рваный поток" и почему у кого то возникает такой эффект. Я бы предпочел не упрощать, тк все эти "перескакивания" важны для понимания нюансов.
Если вдуматься, то при обновлении котировки монеты (newTicker.price = data.USD), реально обновляется локальная переменная функции add, а именно объект newTicker (ок, даже одно св-во просто в нем обновляется). А реактивны у нас данные в секции data и поэтому, обновляя локальную переменную, реактивность не случается, вроде бы все логично. А вот файндом уже же мы по тому самому реактивному массиву tickers (объявлен в секции data как раз) пробегаемся и меняем значение, реактивность тут как тут )
Если кому то интересно как сделана нормализация высота графика у Ильи. Вот ссылка на формулу: en.wikipedia.org/wiki/Feature_scaling#Rescaling_(min-max_normalization)
я новичок, делаю конспекты по каждому видео, читаю разделы документации, которые прилагаются в домашке, даже прохожу learning to learn по совету Ильи, что-то учу сам. Не знаю как дальше, но на этом видео мой мозг отказывается понимать, в голове как-будто вырванные из контекста куски информации. Видимо мне нужно сильнее разобраться в js и vue, чтобы приступить к этому курсу.
Для выделения одинаковых частей кода в файле можете использовать комбинацию клавиш "Ctrl + D" и выбрать по очереди все, что нужно заменить, что бы вручную не кликать по каждому фрагменту. Или воспользоватьсялокальным поиском по файлу с автозаменой "Ctrl + H"
Да, я тоже это заметил. Если выбрать Demo2, и уже ПОТОМ нажать "Удалить", то в sel по-прежнему останется значение, и график никуда не пропадёт. Нужно дописать метод handleDelete() добавив в него строку this.sel = null;
@@fenix_63 при озвучивании, что мы должны сейчас сделать, пытался реализовать сначала сам. В данном случае понял, что есть всплытие но забыл про stop. Решил добавлять график если в массиве есть текущий ticker. Понимаю что не правильно бегать по всему массиву особенно если массив объемный. Но данной проблемы остатка sel не было. Со stop конечно реализация намного лучше. Но добавить this.sel = null не достаточно, так как удаление графика будет при любом удалении ticker. Нужна проверка tickerRemove===this.sel
Не слишком ли вы резко пошли вперёд? Мне кажется, что можно было более детально рассмотреть,как vue работает с API. Да и нужен ли он в самом начале курса, когда даже база ещё не рассмотрена?
Спасибо за курс. Самое главное что я узнал, это о существовании '?.' this.sel?.name. Откуда такой оператор? Я даже сейчас не могу найти про него информацию))
Это оператор опциональной последовательности developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Optional_chaining Но важно понимать, что он может поддерживаться не всеми даже не самыми древними браузерами caniuse.com/mdn-javascript_operators_optional_chaining
@@KEHU008 браузеры не нужно обновлять, с vue cli идёт штуки которые после npm run build соберут вам такую версию которая будет работать не зависимо от поддержки этой конкретной фичи
@@murchenko99 Забавно только что попробовал, не работает, стоит Vue 2 и 14 нода, выбивает ошибку: Module parse failed: Unexpected token (11:18) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See webpack.js.org/concepts#loaders | let user = {}; // пользователь без адреса | > console.log( user?.address?.street ); // undefined (без ошибки) | Вебпак не поддерживает.
Все работает прекрасно, НО... Если добавить 2 валюты, потом выбрать одного, график работает отлично и запрос отправляется каждые 3 сек. Но если удалить эту валюту, приложение не прекратить отправлять запрос на эту валюту и в консоли выводится ошибка, что data.USD не может быть записан в price отсутствующего объекта. И эту попытку записать, приложение наверно не прекратит никогда. Как с этим быть?
Илья, подскажите вашу цветовую схему в Visual Studio Code. Это что-то стороннее? Перебрал все доступные в настройках, но так и не нашел совпадения с вашей.
У меня почему то style height с процентами к полоскам применяется не сразу, а может пройти 3-10 полосок графика, а только потом применяется стиль, может у кого то эта проблема вылазила?
Относительно того, почему полоски графика не появляются за первые несколько кругов интервала: тут проблема в том, что на первых нескольких кругах maxValue и minValue равны, соответственно, в формуле (price - minValue) * 100 / (maxValue - minValue) - в знаменателе оказывается ноль, что в свою очередь приводит общий результат вычисления к NaN. Поэтому пока не появится разница у max и min - полоски не генерятся.
Будет объяснение, как надо реализовать это же приложение, но правильно? Или мы будем знакомиться с концепциями я нюансами и мы сами поймем, какие плохие практики есть в написанном коде?
Не сочтите за нахальство, но слушать немножко тяжело. Заметно, что этот урок - что-то вроде стрима, а не заготовленный и смонтированный ролик. Порой вы изъясняетесь туманно: "как же нам это сделать?", "нажал кнопку "удалить, а выбралось"... Пришлось пересматривать несколько раз, просто чтобы уследить за мыслью. Материал безусловно один из лучших на ютубе, но подача конкретно в этом ролике - в не самых лучших традициях вузовских лекций. И еще: я еще не смотрел следующих видео, но именования типа "sel" и "t" уже заставляют страдать. :) Может быть так и задумано. В любом случае, спасибо вам большое за благотворительность.
Я может туплю, но я не въехала в смысл работы графика. Я думала, что там будет отображаться значение выбранной валюты, меняющееся с течением времени. Если взять к примеру биткоин, то оно совсем незначительно менялось со временем, а высота так скакала от 100% до 16%. Хотя там изменения были менее 5% по сути... МОжет график несет какой-то другой смысл
Мне не понятно другое. Почему данные продолжают обновляться во всех тикерах, если мы новые тикеры добавляем? Правильно ли я понял, что вызывая add(), мы как-бы новый объект класса создаем? Ведь, во-первых, для ранее созданных тикеров add() продолжает выполняться (запросы мы для каждого тикера свои отправляем, и данные соответственно получаем тоже разные). Во-вторых, if (this.sel?.name === currentTicker.name) здесь currentTicker тоже существует как отдельный объект.
Эти грабли вроде больше к js относятся) если добавить 20 валют - у нас будет 20 интервалов независимых крутиться и вроде при удалении валюты они остаются болтаться...)) но мы не новый объект класса создаем, а просто добавляем объект с данными в массив возможно более опытные ребята меня поправят)
Не очень понятно. Если код плохой. То "во vue можно делать так" это тоже плохо? Что в уроке правильная практика? Или все не правильная? Конечно, есть очевидные вещи. Но что касается конкретно vue не такие.
Одна из немногих вещей, которая меня раздражает во Vue это необходимость каждый раз не забывать ставить запятую после нового метода или computed свойства
Мне кажется это будет позже, с выделением отдельного компонента и методами жизненного цикла. При создании компонента создаём интервал, а при удалении чистим.
Вряд ли. Ответы DNS-сервера кэшируются ОС обычно. Поэтому при очередных запросах запись уже берется из кэша, а не заново резолвится. Т.е. если запрос один раз прошел успешно (а он прошел, т.к. в примере данные получаются, но ответы срываются хаотично). Скорее всего там сервер не справляется с запросами.
@@ИванГоденов-и7д Да, но посмотрите что пишет в логах. Как раз о ошибке DNS, и кешируется, но если поиграть с WireShark, станет понятно что кеишируется на короткий промежуток
По-моему ничего хорошего в том, чтобы показывать написание говно кода нет. Прогресса не будет так и так, если самостоятельно не заниматься, а тут ещё и знания неверные запоминаются. Наоборот было бы интересно посмотреть эффективные и правильные решения, а страдать и биться головой о камни уже самостоятельно.
Здесь не рассказывают основы или пересказ документации, так как ожидают что уже некоторые разделы документации предварительно прочитаны учеником. Если вам нужен пересказ документации в видео то это Минин, если же нужно понимать что и когда правильно использовать, из того что есть документации, то подойдут эти видео.
Внимание дисклеймер - большинство кода, который вы будете писать в продакшэне будет не достаточно хорош для продакшэна)
не обезнадёживай
Круто про toPrecision узнал)
Илья, просьба есть:
Размещать план задания, что будет сделано в видео, чтобы перед тем как тебя услышать можно было подумать и попытаться придумать свое решение
Возможно не всегда это нужно, но вот мне почему-то кажется, что в этом может быть смысл
Моё решение: смотрю весь урок, записывая изменения, напр: added handleDelete method, после того как закончил, смотрю в список и пытаюсь делать всё сам. Мне кажется, что это оптимально
Вы так и не посмотрели видимо как учится как и про парное программирование :)
@@Romadryud А ты видимо не уловил самого смысла...
Работа с массивами вышла на новый уровень 😀
Относительно того, почему полоски графика не появляются за первые несколько кругов интервала: тут проблема в том, что на первых нескольких кругах maxValue и minValue равны, соответственно, в формуле (price - minValue) * 100 / (maxValue - minValue) - в знаменателе оказывается ноль, что в свою очередь приводит общий результат вычисления к NaN. Поэтому пока не появится разница у max и min - полоски не генерятся.
Там наверное можно добавить if (max === min) return 50. Тогда если значения в начале одинаковые то и график по середине.
Не используйте переменные вроде "t" и "sell". Даже если кажется что участок кода небольшой, скоро он станет больше и вы будете тратить больше времени на запоминание предназначения переменных. И будете регулярно ошибаться. И будут ошибки.
"ticket" не сильно длиннее, но значительно красноречивее.
Илья, если позволите, чуть-чуть критики (ни в коем разе не указываю что и как Вам делать).
К предыдущему видео был один комментарий: "...непривычно рваный поток информации...". Я поймал себя на этой же мысли.
И это при том, что я вью знаю, а смотрю курс ради интереса, равно как и у других ютюберов что-нибудь да посматриваю.
Я старался смотреть, как новичок во вью и, не знаю как, но в какой-то момент, я уже терял мысль - где мы находимся и чего мы хотим, не говоря уже о слежениями за всякими там переменными с данными.
Если бы я учил вью, то наверно сейчас бы я свесил голову "вью - это не моё". Мне кажется, что "Криптономикон" - не удачный ввод учеников в начало работы со вью.
Извините, это лишь моё мнение.
Конечно можно, спасибо за отзыв :)
Что же касается "рваного потока" :) - посмотрим что можно сделать
Выживают сильнейшие, те, кто реально захочет учится - будет смотреть и учиться, будет пересматривать и вникать, так как сейчас есть отличная возможность, а все другие как раз таки и будут ныть, мол Vue - это не моё, лично моё мнение - я узнал больше, чем раньше, уже до этапа начала разработки, хотя раньше я что-то да писал толковое на VUe
а что с ним не так ? а какой удачный?
Я новичок во вью, не заметил такого что прям ой не... не мое... Но примерно понимаю о чем вы, вроде как мозг привык ожидать всегда последовательные действия, а тут иногда идут перескакивания в виде отступлений или пояснений и те кто не привык держать все в голове может путаться. Но с другой стороны, это заставит ученика перемотать и пересмотреть видео, ну и возможно будет тренировать память )
@@JavaScriptNinja Очень интересно как тебе удастся это сделать, как по мне нужно сначала понять что значит "рваный поток" и почему у кого то возникает такой эффект. Я бы предпочел не упрощать, тк все эти "перескакивания" важны для понимания нюансов.
Агонь пример, ржал несколько раз)))) Илья просто приколист!
Большое спасибо за урок! Мой мозг по мере накопления материала, слабого знания JS отказывается понимать некоторые вещи :(
Бесконечно благодарен
Если вдуматься, то при обновлении котировки монеты (newTicker.price = data.USD), реально обновляется локальная переменная функции add, а именно объект newTicker (ок, даже одно св-во просто в нем обновляется). А реактивны у нас данные в секции data и поэтому, обновляя локальную переменную, реактивность не случается, вроде бы все логично.
А вот файндом уже же мы по тому самому реактивному массиву tickers (объявлен в секции data как раз) пробегаемся и меняем значение, реактивность тут как тут )
Все не так просто ;) этот код по разному работает во вью2 и вью3, что мы разберем
Если кому то интересно как сделана нормализация высота графика у Ильи.
Вот ссылка на формулу:
en.wikipedia.org/wiki/Feature_scaling#Rescaling_(min-max_normalization)
я новичок, делаю конспекты по каждому видео, читаю разделы документации, которые прилагаются в домашке, даже прохожу learning to learn по совету Ильи, что-то учу сам. Не знаю как дальше, но на этом видео мой мозг отказывается понимать, в голове как-будто вырванные из контекста куски информации. Видимо мне нужно сильнее разобраться в js и vue, чтобы приступить к этому курсу.
Согласен
Как успех? Перешёл к этому курсу в итоге?
да, чуть тоска обуревает))
я тоже годик назад подзавис на этом видео.. но я трудоустроился уже.. вот вернулся подкрепить знания
@@ГармонистВитюша сколько времени учил вью до трудоустройства?
Для выделения одинаковых частей кода в файле можете использовать комбинацию клавиш "Ctrl + D" и выбрать по очереди все, что нужно заменить, что бы вручную не кликать по каждому фрагменту. Или воспользоватьсялокальным поиском по файлу с автозаменой "Ctrl + H"
спасибо за видос полезная инфа
6:20 Это было не событие клика на другой блок, а штука повеселее. Вы удалили "DEMO2" из массива но в "sel" DEMO2 все еще жив и график связан с "sel".
Да, я тоже это заметил. Если выбрать Demo2, и уже ПОТОМ нажать "Удалить", то в sel по-прежнему останется значение, и график никуда не пропадёт. Нужно дописать метод handleDelete() добавив в него строку this.sel = null;
@@fenix_63 при озвучивании, что мы должны сейчас сделать, пытался реализовать сначала сам. В данном случае понял, что есть всплытие но забыл про stop. Решил добавлять график если в массиве есть текущий ticker. Понимаю что не правильно бегать по всему массиву особенно если массив объемный. Но данной проблемы остатка sel не было. Со stop конечно реализация намного лучше. Но добавить this.sel = null не достаточно, так как удаление графика будет при любом удалении ticker. Нужна проверка tickerRemove===this.sel
Ты большой молодец! Полезно и так приятно тебя слушать
да жесть), особенно эти все эти логические выражения всякие
Не слишком ли вы резко пошли вперёд? Мне кажется, что можно было более детально рассмотреть,как vue работает с API. Да и нужен ли он в самом начале курса, когда даже база ещё не рассмотрена?
Это все в документации есть. Смысл видео не в этом.
мне одному кажется, что график на первых минутах весьма символичен?
Отличный урок! Благодарю тебя за работу!
там же утечка памяти - мы постоянно генерируем счетчики.... поэтому запросы летят как из пушки
Кто может объяснить про кавычки - `` . Почему не обычные? И зачем используем ${} ?
Почитайте про шаблонные строки.
это интерполяция совмещает строку и выражение переменные . то есть конкатенация не нужен
Обратил внимание на простановку точки-запятой в конце выражений. Вроде как стиль VUE диктует работу без них. Это привычка или позиция?
Спасибо за курс. Самое главное что я узнал, это о существовании '?.' this.sel?.name. Откуда такой оператор? Я даже сейчас не могу найти про него информацию))
Это оператор опциональной последовательности developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Optional_chaining
Но важно понимать, что он может поддерживаться не всеми даже не самыми древними браузерами
caniuse.com/mdn-javascript_operators_optional_chaining
@@AlbertMaximov Спасибо. Пусть обновляют браузеры))
@@KEHU008 браузеры не нужно обновлять, с vue cli идёт штуки которые после npm run build соберут вам такую версию которая будет работать не зависимо от поддержки этой конкретной фичи
@@murchenko99 Забавно только что попробовал, не работает, стоит Vue 2 и 14 нода, выбивает ошибку:
Module parse failed: Unexpected token (11:18)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See webpack.js.org/concepts#loaders
| let user = {}; // пользователь без адреса
|
> console.log( user?.address?.street ); // undefined (без ошибки)
|
Вебпак не поддерживает.
!круто))
Все работает прекрасно, НО...
Если добавить 2 валюты, потом выбрать одного, график работает отлично и запрос отправляется каждые 3 сек. Но если удалить эту валюту, приложение не прекратить отправлять запрос на эту валюту и в консоли выводится ошибка, что data.USD не может быть записан в price отсутствующего объекта. И эту попытку записать, приложение наверно не прекратит никогда. Как с этим быть?
clearInterval
Илья, подскажите вашу цветовую схему в Visual Studio Code. Это что-то стороннее? Перебрал все доступные в настройках, но так и не нашел совпадения с вашей.
Тема cobalt2
Якщо у вас помилка при надсиланні запиту, спробуйте стерти api_key і його значення (тобто без ключа)
У меня почему то style height с процентами к полоскам применяется не сразу, а может пройти 3-10 полосок графика, а только потом применяется стиль, может у кого то эта проблема вылазила?
Относительно того, почему полоски графика не появляются за первые несколько кругов интервала: тут проблема в том, что на первых нескольких кругах maxValue и minValue равны, соответственно, в формуле (price - minValue) * 100 / (maxValue - minValue) - в знаменателе оказывается ноль, что в свою очередь приводит общий результат вычисления к NaN. Поэтому пока не появится разница у max и min - полоски не генерятся.
@@jjk2137 а я что то не понял почему 5% и 95% илья тогда писал
Будет объяснение, как надо реализовать это же приложение, но правильно? Или мы будем знакомиться с концепциями я нюансами и мы сами поймем, какие плохие практики есть в написанном коде?
Конечно. Будут разборы и мы вместе сделаем его хорошим
А как в стрелочную функцию this передался?
Замкнулся в момент определения
.stop не сработало, что может быть?
мне на видео не понятно, как там сработало. У меня тоже так не работает. Решил добавлением в функцию удаления sel=null
@@yuriybichkov7988 тоже самое! Не разобрались почему?
тоже самое! Не разобрались почему?
Как сделать автоматическое открытие дебагера при нажатии на ошибку в консоле хрома как у Вас?(
19:56 пример
@@agroshev90 Он через сочетание клавиш Ctrl+Shift+I открыл панель DevTools. Оно автоматом не вылезает.
спасибо. я уже набила пару шишек попыткой скомбинировать v-if and v-for. приняла на веру, что так не нужно делать, но объяснение увидела здесь.
на 3:20 все равно цвет добавляется ко всем,все перепроверил уже,что делать?
В самом классе элемента перепроверь нет ли border-4
Фууух, было сложно!)
Вот это скорость роста!.. в видео у Ильи биткоинт по 47к дол., а у меея через полтора месяца уже по 59. За полтора месяца больше 10 к прироста!
36)
17к)
28
Не сочтите за нахальство, но слушать немножко тяжело. Заметно, что этот урок - что-то вроде стрима, а не заготовленный и смонтированный ролик. Порой вы изъясняетесь туманно: "как же нам это сделать?", "нажал кнопку "удалить, а выбралось"... Пришлось пересматривать несколько раз, просто чтобы уследить за мыслью. Материал безусловно один из лучших на ютубе, но подача конкретно в этом ролике - в не самых лучших традициях вузовских лекций.
И еще: я еще не смотрел следующих видео, но именования типа "sel" и "t" уже заставляют страдать. :) Может быть так и задумано.
В любом случае, спасибо вам большое за благотворительность.
Вы серию досмотрите (про sel и t в частности :) )
вёрстка, я правильно понял - Tailwind CSS ?
Да, автор уточнял это.
Помню в реакте при навешиванием событий на дивы в Firefox они не отрабатывали
скорее в сафари, а не лисе)
Я может туплю, но я не въехала в смысл работы графика. Я думала, что там будет отображаться значение выбранной валюты, меняющееся с течением времени. Если взять к примеру биткоин, то оно совсем незначительно менялось со временем, а высота так скакала от 100% до 16%. Хотя там изменения были менее 5% по сути... МОжет график несет какой-то другой смысл
Потому что график не от нуля :) как и большинство графиков акций
@@JavaScriptNinja Вам нужно было объяснить это более подробно в видео, чтобы было понимание, рисунок сделать, а не просто формула и всё.
Мне не понятно другое. Почему данные продолжают обновляться во всех тикерах, если мы новые тикеры добавляем?
Правильно ли я понял, что вызывая add(), мы как-бы новый объект класса создаем? Ведь, во-первых, для ранее созданных тикеров add() продолжает выполняться (запросы мы для каждого тикера свои отправляем, и данные соответственно получаем тоже разные). Во-вторых, if (this.sel?.name === currentTicker.name) здесь currentTicker тоже существует как отдельный объект.
Эти грабли вроде больше к js относятся) если добавить 20 валют - у нас будет 20 интервалов независимых крутиться и вроде при удалении валюты они остаются болтаться...)) но мы не новый объект класса создаем, а просто добавляем объект с данными в массив возможно более опытные ребята меня поправят)
Так работают замыкания
@@JavaScriptNinja Спасибо. Почитал по замыканиям. Очень интересно. В принципе я это себе так и представил. Очень на ООП похоже.
таумкрафт рулит)
?
Реактивность при редактировании внутри массива и объекта не работает. Нужно использовать Vue.set метод.
Вы не поверите, внутри вью2 работает ;) смотрите следующее видео
Не очень понятно. Если код плохой. То "во vue можно делать так" это тоже плохо? Что в уроке правильная практика? Или все не правильная?
Конечно, есть очевидные вещи. Но что касается конкретно vue не такие.
Пока все неправильно :)
@@JavaScriptNinja и даже это @click="вызов метода" или :key="id" ? Извиняюсь если это глупый вопрос.
@@АнтонВолков-щ1ъ Везде есть нюансы, мы детально разберем их в следующем видео
@@JavaScriptNinja большое спасибо.
Для получения этих данных нет необходимости указывать ключ
Попутно тестирую теже примеры в ангуляре, в примере с реактивностью там никаких проблем нет =)
Одна из немногих вещей, которая меня раздражает во Vue это необходимость каждый раз не забывать ставить запятую после нового метода или computed свойства
Ух ты какой чувствительный
это js
криптокомпейр отдаёт курсы без ключа хД ))
Ще є один момент: при видаленні валюти треба також робити clearInterval операції оновлення цього елемента.
Мне кажется это будет позже, с выделением отдельного компонента и методами жизненного цикла. При создании компонента создаём интервал, а при удалении чистим.
"наш злобный z шник". В 2022 по другому заиграло :)
Анатидаефобия в действии?)
можна замість ' ', ставити null, працює також
То что работает не повод это делать. Пусть всегда будет строкой
typescript не согласен)) присвоение null для значений, в которых предполагается строка, грозит геморроем с типизацией
Проблема в Fetch была из-за неотризолвенного домена (ошибка DNS)
Вряд ли. Ответы DNS-сервера кэшируются ОС обычно. Поэтому при очередных запросах запись уже берется из кэша, а не заново резолвится. Т.е. если запрос один раз прошел успешно (а он прошел, т.к. в примере данные получаются, но ответы срываются хаотично). Скорее всего там сервер не справляется с запросами.
@@ИванГоденов-и7д Да, но посмотрите что пишет в логах. Как раз о ошибке DNS, и кешируется, но если поиграть с WireShark, станет понятно что кеишируется на короткий промежуток
ошибка в консоли каждые 3 секунды cccagg_or_exchange market does not exist for this coin pair
С чем связано? Сделал все верно.
Аналогично , решил её ?
@@easyway3436 да. Но не помню как уже)
@@easyway3436 Если это чем-то поможет, тут используются шаблонные строки, значит, нужны не одинарные кавычки, а апострофы(обратные кавычки)
@@ХобтаВладислав спасибо большое ) будем знать )
Биток по 47к... было же дело
Кроха сын к отцу пришёл, и спросила кроха:
- что такое хорошо, а что такое плохо?...
Ну иакоеее. Илья не подготовился и потому занял у нас всех так много времент.
Прошлое видео было хорошее, всё разжёвано, тут какая-то халтура.
По-моему ничего хорошего в том, чтобы показывать написание говно кода нет. Прогресса не будет так и так, если самостоятельно не заниматься, а тут ещё и знания неверные запоминаются. Наоборот было бы интересно посмотреть эффективные и правильные решения, а страдать и биться головой о камни уже самостоятельно.
А как вы тогда поймёте что это плохой код и почему? :) А знание что код плохой куда важнее, чем знание что код хороший
Курс владилена куда более понятен и структурирован.а тут какая-то каша.
Здесь не рассказывают основы или пересказ документации, так как ожидают что уже некоторые разделы документации предварительно прочитаны учеником. Если вам нужен пересказ документации в видео то это Минин, если же нужно понимать что и когда правильно использовать, из того что есть документации, то подойдут эти видео.
@@germanmalinovsky1719 Так он вначале каждого видео говорит что этот код неправильный
Ну смотри его в чём проблема.
а почему не работает this.tickets.find((t) => newTicket == t).price? вроде тот же объект, но ничего не находит. Когда фильтровали работало
потому что один прокси, второй нет
там же утечка памяти - мы постоянно генерируем счетчики.... поэтому запросы летят как из пушки