Руслан Куянец | Reactify – Telegram
Руслан Куянец | Reactify
5.86K subscribers
705 photos
52 videos
39 files
289 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
На выходных выйдет еще одно видео с пагинацией. Будем дозировать контент с сервера, переключать страницы. Собственно для этого мы и делали скелетон, чтобы при переключении страниц и получении новых новостей наш контент не скакал😄
👍6
Нативные и Host-объекты

1️⃣Нативные объекты:

Это основные "строительные блоки" языка JavaScript, которые всегда доступны, независимо от того, где вы запускаете свой код.

🔹Object: Основной объект, на котором построено большинство других объектов.
🔹Date: Объект для работы с датами и временем.
🔹Math: Предоставляет математические функции и константы.
🔹parseInt, eval: И другие глобальные функции и свойства.

Преимущества нативных объектов:

📖Они являются частью стандарта ECMAScript и предоставляют основные функции языка.
🔑Где бы вы ни запускали код на JavaScript, нативные объекты будут доступны.

2️⃣Host-объекты (или объекты хоста):

Эти объекты предоставляются окружением выполнения (например, браузером) и не являются частью самого языка JavaScript.

Примеры в браузерной среде:

🔹window: Глобальный объект для браузера.
🔹document: Объект, представляющий текущую веб-страницу.
🔹XMLHttpRequest: Для выполнения асинхронных запросов к серверу.
🔹setTimeout: Позволяет выполнять код через заданный интервал времени.

Что нужно знать про host-объекты:

🛠Они могут сильно отличаться в разных средах выполнения. Например, в Node.js будут другие host-объекты, чем в браузере.
📌Они дополняют возможности языка в конкретной среде, предоставляя доступ к уникальным для этой среды функциям.

Понимание различий между нативными объектами и объектами хоста поможет вам писать более гибкий и устойчивый код, особенно когда дело доходит до работы в разных средах выполнения.

#ОбучающийПост #JavaScript #Objects
Если вы используете делегирование событий и в родительском элементе есть разные типы дочерних элементов, как определить, на каком конкретном элементе произошло событие?

#JavaScript #quiz #DOM
Anonymous Quiz
13%
Проверяя свойство event.targetClass
5%
Проверяя атрибут name элемента
8%
Проверяя свойство event.type
Хочу вам посоветовать очень крутой ресурс для обучения JavaScript. Это онлайн учебник

https://learn.javanoscript.ru

Этот учебник всегда в моем браузере во вкладках и в свободное время я перечитываю темы.

Тут вся актуальная теория, так как учебник постоянно обновляется и дополняется.

#book #JavaScript
👍10😁1
Деструктуризация и Рест оператор в JavaScript:

Призваны обеспечивать гибкость и элегантность при работе с данными, делая код более понятным и кратким. Их корректное использование может значительно повысить читаемость и эффективность вашего кода.

🔹Деструктуризация позволяет локализованно и явно извлекать значения из массивов или свойства из объектов.

🔹Рест оператор позволяет собирать "остаточные" элементы в массив или свойства объекта в новый объект.

Различия:

🎯Назначение: Деструктуризация извлекает и присваивает индивидуальные элементы или свойства, в то время как рест оператор собирает "оставшиеся" элементы или свойства.
📖Синтаксис: Деструктуризация использует конструкции {} или [] в зависимости от типа данных. Рест оператор начинается с ....

#JavaScript #ОбучающийПост
👍8
Спред оператор в JavaScript:

Спред оператор — это мощный инструмент, призванный обеспечивать гибкость при манипулировании данными, делая ваш код более универсальным и читаемым.

🔹Спред оператор позволяет "распространять" элементы массива или свойства объекта, делая их индивидуальными элементами или свойствами.

Особенности:

🎯Назначение: В отличие от рест оператора, который "собирает" элементы или свойства, спред оператор "расширяет" или "распространяет" их.
📖Синтаксис: Спред оператор также начинается с троеточия (...), но используется в слегка иных контекстах.

#JavaScript #обучающийПост
👍7
AJAX, стоящий за аббревиатурой "Asynchronous Javanoscript And XML", представляет собой революционный метод обращения к серверу без необходимости полной перезагрузки страницы. Эта технология обогатила пользовательский опыт, делая веб-приложения быстрыми, плавными и похожими на приложения для рабочего стола.

🚀 Ключевые особенности:

1️⃣Быстрый отклик: Благодаря AJAX, пользователь может видеть обновленные данные на странице без длительного ожидания.

2️⃣Динамичная подгрузка: AJAX позволяет подгружать данные в реальном времени, что идеально подходит для деревьев меню, где содержание узлов подгружается при их раскрытии.

3️⃣Живой поиск: Современные веб-приложения активно используют AJAX для мгновенного поиска, предоставляя результаты по мере ввода запроса.

4️⃣Универсальность данных: Несмотря на присутствие "XML" в названии, AJAX может работать с различными форматами данных, включая JSON, HTML, простой текст и даже бинарные файлы.

📌 Применение AJAX:

🔹Интерактивные элементы: AJAX позволяет создавать кнопки и формы, которые обрабатывают пользовательский ввод без перезагрузки страницы. Примеры таких элементов - кнопки "Добавить в корзину" в интернет-магазинах или кнопка "Подписаться" на новостные рассылки.

🔹Динамическая загрузка контента: С AJAX можно динамически подгружать новый контент или данные на страницу без необходимости её перезагрузки. Это особенно полезно для сайтов с большим количеством информации, например, каталогов товаров или онлайн-галерей.

🔹Мгновенный поиск: AJAX используется для создания функций "живого поиска", где результаты начинают отображаться сразу при вводе запроса пользователем, без необходимости нажимать кнопку "Поиск".

#AJAX #ОбучающийПост #JavaScript
🔥4👍2
1️⃣Мы добавляем обработчик событий для всего документа, который будет отслеживать клики.

2️⃣Если элемент, по которому был совершен клик, имеет класс 'add-to-cart', это означает, что пользователь нажал на кнопку добавления товара в корзину.

3️⃣Из этой кнопки мы извлекаем атрибут data-product-id, который содержит уникальный идентификатор товара, который пользователь хочет добавить в корзину.

4️⃣Функция addToCart отвечает за отправку AJAX-запроса на сервер для добавления выбранного продукта в корзину.

🔹Создаем новый экземпляр объекта XMLHttpRequest, который будет использоваться для выполнения асинхронного запроса.

🔹Мы устанавливаем метод запроса как POST и указываем URL-адрес сервера, куда будет отправлен запрос. Устанавливаем заголовок Content-Type как application/json;charset=UTF-8, указывая, что мы будем отправлять данные в формате JSON.

🔹Далее мы указываем функцию, которая будет вызвана, когда сервер ответит на наш запрос. При успешном ответе сервера мы обновляем содержимое корзины на странице.

🔹После, мы конвертируем объект с идентификатором продукта в строку JSON и отправляем его на сервер.

#AJAX #ОбучающийПост #JavaScript
🤯5👍2
С момента своего появления, AJAX революционизировал веб, предоставив разработчикам мощный инструмент для создания интерактивных веб-приложений без необходимости перезагружать страницу. Но как и всё в мире технологий, пришло время для новых изменений.

🌐 Что пришло на смену AJAX?

🚀 Fetch API:

Нативное средство для отправки асинхронных HTTP-запросов, введенное в ES6.
Гораздо более гибкий и модульный, поддерживает промисы, что упрощает работу с асинхронным кодом.
Не просто "обертка", а стандартный API, предоставляемый современными браузерами, заменяя устаревший XMLHttpRequest.

📚 Axios:

Популярная библиотека JavaScript, которая может работать поверх Fetch API или XMLHttpRequest.
Автоматическое преобразование ответов в JSON.
Улучшенная обработка ошибок, что позволяет разработчикам легче реагировать на различные сценарии.
Также использует промисы, делая код более структурированным и понятным.

Стандарты веба и потребности пользователей быстро меняются. Fetch и Axios предоставляют более современные, эффективные и гибкие решения для общения с сервером. Они делают код чище, упрощают обработку ошибок и интеграцию с современными фреймворками и библиотеками.

#ОбучающийПост #AJAX #JavaScript #fetch #axios
🔥5
Поднятие переменных в JavaScript

Понимание механизма поднятия переменных (или "hoisting") — ключевой элемент для эффективной работы с JavaScript. Этот процесс часто может вводить в заблуждение, особенно новичков, поэтому давайте разберемся, что это такое.

Что такое поднятие (hoisting)?

Поднятие — это особенность JavaScript, когда объявления переменных "поднимаются" или перемещаются в верхнюю часть текущей области видимости. Но здесь важно понимать: поднимается только объявление, а не инициализация (присвоение значения).

🔍 Что еще стоит знать?

Поднятие также затрагивает объявления функций: полное объявление функции "поднимается" вверх.
У функциональных выражений (когда переменной присваивается функция) поднимается только объявление переменной, но не её значение.

💡 Поднятие переменных — это механизм, с которым каждый разработчик на JavaScript сталкивается, независимо от уровня опыта. Понимание этого явления поможет избежать ненужных ошибок и написать более чистый и предсказуемый код.

#JavaScript #ОбучающийПост #hoisting
👍4
Поднятие переменных в JavaScript

#JavaScript #code #hoisting
🔥4
📜 Почему на собеседованиях задают вопросы о "устаревших" технологиях?

На собеседованиях по программированию часто спрашивают о технологиях или практиках, которые кажутся устаревшими или редко используемыми в современном разработчике? Например, AJAX, var вместо let/const, или методы жизненного цикла устаревших версий популярных фреймворков. Вот несколько причин, по которым это происходит:

1️⃣Оценка фундаментальных знаний: Изучение и понимание основ технологии дает представление о том, насколько кандидат понимает принципы, лежащие в основе современных инструментов. Например, знание AJAX может помочь понять, как работают современные HTTP-запросы на более глубоком уровне.

2️⃣Историческая перспектива: Технологии эволюционируют, и то, что считается устаревшим сегодня, когда-то было новинкой. Понимание этой эволюции может помочь разработчикам лучше адаптироваться к изменениям в будущем.

3️⃣Работа с устаревшим кодом: Многие компании все еще используют старые системы или имеют устаревший код в своих проектах. Знание "старых" технологий может быть весьма полезным, если требуется внести изменения или обновления в такие системы.

4️⃣Оценка глубины знаний: Спрашивая об устаревших или менее популярных аспектах технологии, интервьюер может пытаться определить, насколько глубоко кандидат изучал материал и разбирался в нем.

5️⃣Логика и решение проблем: Вопросы на собеседовании не всегда о том, "что ты знаешь", но иногда о "как ты думаешь". Иногда решение проблемы с использованием устаревших технологий может показать ваш процесс мышления и аналитические навыки.

💡 Независимо от того, используете ли вы эти технологии в повседневной работе или нет, понимание их может оказаться ценным активом в вашей карьере разработчика. И помните, что за каждым вопросом на собеседовании стоит определенная цель или причина, даже если она не всегда очевидна на первый взгляд!

#ОбучающийПост
На такое мероприятие собираюсь на выходных✌️

Пока что времени не хватает готовиться к выступлениям, но в планах начать тоже выступать, хотел бы выступить на конференции. Да и на хакатон хотел бы сходить😄 Но у меня свой хакатон дома, работа -> ютуб -> телега -> свой сервис -> обучение🙃

В Краснодаре часто хакатоны проводятся, с приличными призовыми и интересными темами. В будущем обязательно посоревнуюсь💪🏻
👍3
Декларативный и императивный — это два основных подхода к программированию. Они представляют собой разные методы описания того, что и как программа должна делать.

🟢 Декларативное программирование в JavaScript:

Описывает, что программа должна делать, не углубляясь в детали реализации.

Использование методов массивов, например map(). Нам не нужно знать, как работает .map() внутри; мы просто говорим, что хотим сделать.

Преимущества: Читаемость и краткость. Простота изменений и отладки.

🔴 Императивное программирование в JavaScript:

Описывает, как программа должна выполнять действия.

Использование циклов, написание логики методов самостоятельно. Здесь мы явно используем цикл for для итерации по каждому элементу массива и делаем какую либо логику, например такую же как и при использовании метода map().

Преимущества: Полный контроль над выполнением. Может быть более производительным в некоторых ситуациях (хотя не всегда).

📚Сравнение:

Читаемость: Декларативный код в JavaScript часто короче и проще для чтения.
Контроль: Императивный код дает больше контроля над деталями выполнения.
Производительность: Императивный код может быть оптимизирован для конкретных задач, но современные движки JavaScript часто оптимизируют декларативный код так же эффективно.

#JavaScript #обучающийПост
Какой из следующих элементов является примером декларативного подхода в программировании?

#JavaScript #quiz
Anonymous Quiz
17%
Цикл for для обхода массива
71%
Метод filter для отбора элементов массива
2%
Журналирование ошибок
10%
Написание рекурсивной функции
Вспоминая мои первые шаги в изучении React, я с теплом вспоминаю видеокурс "Путь Самурая". В нем Димыч создавал социальную сеть, объясняя все доступно и логично.

На протяжении 100 серий я ежедневно усваивал материал, писал конспекты и дополнял знания из официальной документации React. Этот курс был похож на увлекательный сериал, который ждёшь с нетерпением. Несмотря на то что курс уже давно не обновлялся, он дал мне ценную основу. Особенно запомнился момент, когда мы создавали Redux с нуля, чтобы затем заменить его на официальную библиотеку. Это помогло понять механизмы работы Redux.

К сожалению, второй сезон, который был анонсирован, так и остался незавершенным. Когда я начал свою первую работу, опыт, полученный из этого курса, оказался очень полезным.

Сейчас есть много бесплатных видеокурсов, но старые курсы, такие как "Путь Самурая", остаются незабываемыми.🥲

Олды помнят

Вот то приложение (я сделал по курсу) - https://mirgradr.github.io/chat-app
Для входа:
Логин: free@samuraijs.com
Пароль: free

Стоит ли проходить? -Нет
Но возможно вы вдохновитесь и начнете создавать свое приложение по типу социальной сети, или любое другое

Сам видеокурс
https://youtu.be/gb7gMluAeao?si=r4I4uzacYArIDMSm
🫡6
Прикол ребята. Если что рекламу не заказывал😄
9🔥3