Frontend-разработчик React / Vue.js / Nuxt.js (Middle-Senior)
Системный аналитик на frontend и mobile в Т-Инвестиции
Frontend-разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья анонсирует сборку браузера Chromium — Ultimatum. Браузер обходит техники трекинга, позволяет устанавливать расширения с любых сайтов и перехватывать сетевые запросы для их полной подмены.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте простой список задач, где пользователь может добавлять новые задачи через текстовое поле и удалять существующие задачи по кнопке "Удалить" рядом с каждой из них.
Ожидаемое поведение:
• Пользователь вводит текст задачи в поле и нажимает кнопку "Добавить".• Новая задача добавляется в список с кнопкой "Удалить" рядом с ней.• При нажатии на кнопку "Удалить" задача исчезает из списка.Решение задачи
<div>
<input type="text" id="taskInput" placeholder="Введите задачу" />
<button id="addButton">Добавить</button>
</div>
<ul id="taskList"></ul>
const taskInput = document.getElementById('taskInput');
const addButton = document.getElementById('addButton');
const taskList = document.getElementById('taskList');
addButton.addEventListener('click', () => {
const taskText = taskInput.value.trim();
if (taskText === '') return; // Не добавляем пустые задачи
const listItem = document.createElement('li');
listItem.textContent = taskText;
const deleteButton = document.createElement('button');
deleteButton.textContent = 'Удалить';
deleteButton.style.marginLeft = '10px';
deleteButton.addEventListener('click', () => {
taskList.removeChild(listItem);
});
listItem.appendChild(deleteButton);
taskList.appendChild(listItem);
taskInput.value = ''; // Очищаем поле ввода
});
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Статья рассказывает о создании раздела с календарем и задачами с использованием библиотеки FullCalendar. Разбираются её возможности, преимущества и опыт интеграции для внутренних проектов.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Анимированная кнопка с эффектом при наведении. Сделана на SVG, CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
React Native разработчик
• React Native, TypeScript, HTML, CSS, React• от 150 000 до 200 000 ₽ | 1–3 годаWeb Разработчик / Fullstack
• PHP8, MySQL, JavaScript, Node.js, Git, Linux• от 300 000 до 700 000 ₽ | 5+ летTech Lead (Senior PHP-разработчик)
• PHP, Yii framework, Symfony, PostgreSQL, JSON, Git, ООП, Docker, CI/CD• Уровень дохода не указан | 5+ летPlease open Telegram to view this post
VIEW IN TELEGRAM
• Мои Red-Flags при устройстве в IT-компании: Как не стать гребцом. Часть 2
• Циничные заметки о карьере в IT от «гейткипера»
• Язык как проект: как продакт-менеджеру учить английский
• Всероссийский рейтинг IT-брендов работодателей 2024
• Моя петиция EB-1A на грин-карту талантов, одобренная с первой попытки
Please open Telegram to view this post
VIEW IN TELEGRAM
Сколько бы раз я ни смотрел RoadMap для начинающих фронтендеров, всегда натыкаюсь на одну проблему: RoadMap, как правило, — просто свалка технологий, которую можно описать одной фразой: "Учи всё, что есть". Но так ли это? Нужно ли учить всё это в самом начале? Давайте отбросим большую схему с технологиями в сторону и поговорим начистоту.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Intersection Observer в JavaScript и зачем он используется?Intersection Observer — это API, которое позволяет отслеживать, когда элемент появляется или исчезает из области видимости (viewport). Он полезен для ленивой загрузки изображений, бесконечной прокрутки и анимаций при прокрутке.const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
console.log('Элемент видим:', entry.target);
}
});
});
// Наблюдаемый элемент
const target = document.querySelector('.observe-me');
observer.observe(target);🗣️ В этом примере Intersection Observer отслеживает элемент .observe-me и выполняет код, когда элемент появляется в области видимости. Это позволяет избежать постоянного использования события scroll, улучшая производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья раскрывает идеи и обсуждения, связанные с развитием сборки Хромиума Ultimatum. Автор стремится понять реальные запросы пользователей и обсудить востребованные функции.
Читать...
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
Full Stack Developer (Node.js, React)
Angular Developer
Full Stack Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
В этой статье мы подводим итоги 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
Обсуждаем миграцию с jQuery на React. В статье — реальный опыт, причины перехода, основные шаги и способы преодоления сложностей.
Читать...
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
Junior Frontend-разработчик Vue
Junior PHP Backend Developer Yii2
Младший фронтенд разработчик (JS/Vue)
Please open Telegram to view this post
VIEW IN TELEGRAM
Центрирование без боли, улучшенный тёмный режим, анимация скрытых элементов и даже решения математических задач — меньше сложностей, больше возможностей.
Читать...
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