• «Сбер» режет косты
• Все, пора увольняться: что я поняла после работы в токсичных командах
• Чем Cloud-инженер отличается от DevOps-инженера и что между ними общего
• Правда или вымысел? Разоблачаем мифы о профессии технического писателя
• 5 видов усталости в IT… и не только
Please open Telegram to view this post
VIEW IN TELEGRAM
throttle в JavaScript и зачем он используется?Throttle — это техника ограничения частоты вызова функции до определённого интервала времени. Это полезно для обработки часто происходящих событий, таких как прокрутка или изменение размеров окна, не перегружая производительность.function throttle(func, delay) {
let lastCall = 0;
return (...args) => {
const now = Date.now();
if (now - lastCall >= delay) {
lastCall = now;
func(...args);
}
};
}
const handleScroll = throttle(() => {
console.log('Прокрутка страницы');
}, 1000);
window.addEventListener('scroll', handleScroll);🗣️ В этом примере функция handleScroll вызывается не чаще одного раза в секунду, даже если пользователь прокручивает страницу интенсивно. Throttle помогает оптимизировать производительность и уменьшить количество вызовов функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend Teсh Lead
Lead Frontend Developer
Frontend Tech Lead
Lead Frontend-разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья рассматривает случаи стандартизированного нейминга переменных и функций. Примеры сгруппированы по категориям для лучшей наглядности и помогут улучшить читаемость и согласованность кода.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Технический долг копится, как грязная посуда в раковине. Кажется, что решишь его «когда-нибудь», но это «когда-нибудь» не наступает.
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend Developer
Senior Frontend Developer (Vue.JS)
Senior Frontend Engineer
Senior Next.js Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье мы подводим итоги 2024 года и делимся нашими прогнозами на 2025 год. Приводим мнение трех экспертов по ключевым трендам фронтенд‑разработки и фреймворков, которые будут актуальными в следующем году.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте поле для ввода пароля и кнопку "Показать/Скрыть". При нажатии на кнопку символы пароля должны переключаться между скрытым (type="password") и видимым (type="text") состоянием.
Требования:
• Кнопка переключает тип поля ввода пароля между "password" и "text".• Текст кнопки меняется в зависимости от текущего состояния видимости пароля.Решение задачи
<input type="password" id="password" placeholder="Введите пароль">
<button id="toggleBtn">Показать</button>
const password = document.getElementById('password');
const toggleBtn = document.getElementById('toggleBtn');
toggleBtn.addEventListener('click', () => {
const isHidden = password.type === 'password';
password.type = isHidden ? 'text' : 'password';
toggleBtn.textContent = isHidden ? 'Скрыть' : 'Показать';
});
Please open Telegram to view this post
VIEW IN TELEGRAM
• Как устроен Next.js: разбираем ключевые особенности фреймворка на примере небольшого pet-проекта
• Всего несколько строк CSS для плавных переходов между страницами
• 5 полезных фреймворков и библиотек для начинающего фронтенд-разработчика на конец 2024 года. Часть 2
• Проектная работа «Оно тебе надо» от Яндекс практикума
• Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: «Какие знаешь псевдо-классы?»
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Статья знакомит с фреймворком Next.js, рекомендованным командой React для новых проектов. На примере pet-проекта рассматриваются базовые возможности и преимущества использования Next.js.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте кнопку, при нажатии на которую появляется анимация загрузочного индикатора (спиннера) на 3 секунды. После завершения загрузки спиннер исчезает, а на кнопке отображается текст "Готово!".
Решение задачи
<button id="loadButton">Начать загрузку</button>
<div id="spinner" class="spinner" style="display: none;"></div>
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
.spinner {
margin-top: 10px;
width: 30px;
height: 30px;
border: 4px solid#ccc ;
border-top: 4px solid#007bff ;
border-radius: 50%;
animation: spin 1s linear infinite;
}@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
const button = document.getElementById('loadButton');
const spinner = document.getElementById('spinner');
button.addEventListener('click', () => {
button.disabled = true;
button.textContent = 'Загрузка...';
spinner.style.display = 'block';
setTimeout(() => {
button.textContent = 'Готово!';
spinner.style.display = 'none';
button.disabled = false;
}, 3000);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Начинающий Typescript Fullstack разработчик (NestJS, React)
Frontend-разработчик
Frontend-разработчик React, Canvas, WebGL, Pixi.js, Skia
JavaScript-разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Кнопка с вылетающими конфетти при нажатии. Сделана на CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Event delegation — это техника, позволяющая обрабатывать события на родительском элементе вместо установки обработчиков на каждый дочерний элемент. Это особенно полезно, если дочерние элементы динамически добавляются или их много.// Родительский элемент
const parent = document.querySelector('#parent');
// Используем делегирование
parent.addEventListener('click', (event) => {
if (event.target.matches('.child')) {
console.log(`Клик по элементу: ${event.target.textContent}`);
}
});
// Динамическое добавление дочерних элементов
const newChild = document.createElement('div');
newChild.className = 'child';
newChild.textContent = 'Новый элемент';
parent.appendChild(newChild);
🗣️ В этом примере обработчик событий на родительском элементе обрабатывает клики по дочерним элементам, включая добавленные динамически. Это упрощает код и повышает производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
Middle Frontend Developer
• React, JavaScript, TypeScript, Webpack, Git, Jira, Confluence• Уровень дохода не указан | 1–3 годаReact Native Developer
• React Native, JavaScript, TypeScript, Redux, Git, CI/CD, GraphQL, REST API• до 300 000 ₽ на руки | 3–6 летФронтенд-разработчик (Vue.js / React)
• JavaScript, TypeScript, Vue.js, React, Sass, Less, Git, Vite, Docker, CI/CD• от 190 000 ₽ на руки | 3–6 летPlease open Telegram to view this post
VIEW IN TELEGRAM
Обсуждаем миграцию с jQuery на React. В статье — реальный опыт, причины перехода, основные шаги и способы преодоления сложностей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте поле ввода и список элементов. При вводе текста в поле должны отображаться только те элементы списка, которые содержат введённый текст. Игнорируйте регистр символов.
Требования:
• При вводе текста выполняется фильтрация: сравниваем введённую строку с каждым элементом списка.• Элементы, соответствующие фильтру, остаются видимыми, остальные скрываются.Решение задачи
<input type="text" id="filterInput" placeholder="Фильтр...">
<ul id="items">
<li>Яблоко</li>
<li>Банан</li>
<li>Апельсин</li>
<li>Груша</li>
</ul>
const input = document.getElementById('filterInput');
const listItems = document.querySelectorAll('#items li');
input.addEventListener('input', () => {
const filter = input.value.toLowerCase();
listItems.forEach(li => {
li.style.display = li.textContent.toLowerCase().includes(filter) ? '' : 'none';
});
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Центрирование без боли, улучшенный тёмный режим, анимация скрытых элементов и даже решения математических задач — меньше сложностей, больше возможностей.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Сцена с эффектом сломанного стекла в месте клика. Сделана на CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior Frontend разработчик
Senior Frontend Developer
Frontend-разработчик
Senior Frontend-разработчик JavaScript/React
Please open Telegram to view this post
VIEW IN TELEGRAM