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
Новая мажорная версия Vite от 26 ноября 2024 года — первый релиз после анонса VoidZero. Рассмотрим ключевые изменения и будущие векторы развития инструмента для сборки приложений.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Shadow DOM — это ключевая часть технологии Web Components, которая позволяет создавать инкапсулированные области DOM с собственным стилем и поведением. Теневые DOM-деревья изолированы от остального документа, что предотвращает конфликты стилей и упрощает создание переиспользуемых компонентов.
// Создание элемента с Shadow DOM
const host = document.createElement('div');
const shadowRoot = host.attachShadow({ mode: 'open' });
// Добавление стилей и контента
shadowRoot.innerHTML = `
<style>
p {
color: blue;
}
</style>
<p>Это текст внутри Shadow DOM</p>
`;
document.body.appendChild(host);
console.log(document.querySelector('p')); // null (элемент скрыт из глобального DOM)
🗣️ В этом примере текст внутри Shadow DOM изолирован. Стили из Shadow DOM не влияют на остальную страницу, и наоборот. Shadow DOM полезен для создания самодостаточных UI-компонентов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Lead React Native Developer
Lead Frontend Developer (React)
Ведущий Motion 3D / Front End Разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🎨 8 лучших коллекций ресурсов для фронтендеров
Лучшие наборы инструментов, которые содержат все необходимое для современной фронтенд-разработки.
Читать...
Лучшие наборы инструментов, которые содержат все необходимое для современной фронтенд-разработки.
Читать...
Фронтенд-разработчик
Frontend-разработчик
Frontend-разработчик сайтов на WordPress / Верстальщик сайтов / PHP программист
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья объясняет ограничения TypeScript 5.7 в работе с расширением типов, демонстрирует проблему интерсекции с одинаковыми свойствами и предлагает утилиту Extend для корректной обработки таких случаев.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает массив и возвращает новый массив, содержащий только уникальные значения из исходного массива.
Пример:
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = getUniqueValues(numbers);
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
Решение задачи
function getUniqueValues(arr) {
return [...new Set(arr)];
}
// Пример использования
const numbers = [1, 2, 2, 3, 4, 4, 5];
const uniqueNumbers = getUniqueValues(numbers);
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
Please open Telegram to view this post
VIEW IN TELEGRAM
• RUINSWORLD: Многопользовательский шутер с открытым миром для браузера на js/ts, Three и Vue. Бета-версия
• Рецепты TypeScript: простое тестирование типов
• Как я создала приложение, которое решает, что мне есть
• Vite 6.0: Новые возможности и будущее веб-разработки
• Наиболее эффективные методы улучшения Core Web Vitals
Please open Telegram to view this post
VIEW IN TELEGRAM
Как защитить веб-страницы паролем без серверной поддержки? Инструменты StatiCrypt и Portable Secret помогут зашифровать HTML с использованием AES-256. Статические страницы остаются безопасными даже на публичном хостинге.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Создайте простую страницу с таймером обратного отсчёта. Пользователь вводит количество секунд, нажимает кнопку "Старт", и таймер начинает обратный отсчёт до нуля. После окончания таймера на экране отображается сообщение "Время вышло!".
Решение задачи
<input type="number" id="timeInput" placeholder="Введите секунды">
<button id="startButton">Старт</button>
<div id="timer">0</div>
const input = document.getElementById('timeInput');
const button = document.getElementById('startButton');
const timerDisplay = document.getElementById('timer');
let timerId;
button.addEventListener('click', () => {
const seconds = parseInt(input.value, 10);
if (isNaN(seconds) || seconds <= 0) {
timerDisplay.textContent = 'Введите корректное число!';
return;
}
clearInterval(timerId);
let remainingTime = seconds;
timerDisplay.textContent = remainingTime;
timerId = setInterval(() => {
remainingTime -= 1;
if (remainingTime <= 0) {
clearInterval(timerId);
timerDisplay.textContent = 'Время вышло!';
} else {
timerDisplay.textContent = remainingTime;
}
}, 1000);
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend-разработчик junior +
Frontend-разработчик (Vue.js)
Junior React Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Анимированная загрузка в виде точек и куба. Сделана на чистом CSS.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
== и === в JavaScript?В JavaScript операторы
== и === используются для сравнения, но ведут себя по-разному. == выполняет нестрогое сравнение, при котором JavaScript может преобразовать типы данных для сопоставления значений. В отличие от него, === выполняет строгое сравнение, проверяя как значение, так и тип данных, без приведения типов.console.log(5 == '5'); // true, так как '5' преобразуется к числу
console.log(5 === '5'); // false, так как разные типы данных
console.log(null == undefined); // true, при нестрогом сравнении они считаются равными
console.log(null === undefined); // false, строгий оператор учитывает типы данных
🗣️ Использование === рекомендуется для избегания ошибок, связанных с преобразованием типов. Это помогает сделать код более предсказуемым и читаемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Наставник на онлайн-курс "Frontend-разработчик"
• Angular, HTML, CSS, JavaScript, Node.js, Webpack, JQuery, TypeScript• от 25 000 ₽ на руки | 1–3 годаReact разработчик
• React, Redux, TypeScript, Material-UI, Webpack• Уровень дохода не указан | 1–3 годаMiddle React Developer
• React, Next.js, TypeScript, Effector, TailwindCSS, WebSockets, Семантическая и валидная верстка• от 150 000 ₽ на руки | 1–3 годаPlease open Telegram to view this post
VIEW IN TELEGRAM