Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
22.8K subscribers
2.32K photos
137 videos
38 files
4.73K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
加入频道
🥰 Топ-вакансий для фронтендеров за неделю

Senior JavaScript developer — от 300 000 ₽, удаленно (Москва)

JS-разработчик — удаленно (Москва)

Разработчик 3D-продукта (JS/WebGL) — от 130 000 до 145 000 ₽ , гибрид (Екатеринбург)

Vue Frontend-разработчик (Senior) — от 270 000 ₽, удаленно

Angular Developer — от 230 000 ₽, удаленно (Москва)

➡️ Еще больше топовых вакансий — в нашем канале Javascript jobs

🐸 Библиотека фронтендера

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 Как реализовать безопасный ввод с помощью валидации на стороне клиента

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

Почему важно:

📍 Защищает от XSS и SQL-инъекций

📍 Предотвращает отправку некорректных данных

📍 Повышает UX за счет быстрой обратной связи

Как внедрить:

1. Делаем проверку на пустое поле:


const form = document.querySelector('form');
const input = document.querySelector('input[name="username"]');

form.addEventListener('submit', (event) => {
if (!input.value.trim()) {
event.preventDefault();
alert('Поле не может быть пустым!');
}
});


2. Проверяем корректность email:


const emailInput = document.querySelector('input[name="email"]');

form.addEventListener('submit', (event) => {
const email = emailInput.value;
const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;

if (!regex.test(email)) {
event.preventDefault();
alert('Введите корректный email!');
}
});


3. Ограничиваем длину пароля:


const passwordInput = document.querySelector('input[name="password"]');

form.addEventListener('submit', (event) => {
if (passwordInput.value.length < 6) {
event.preventDefault();
alert('Пароль должен быть не менее 6 символов!');
}
});


4. Используем атрибуты HTML5 для валидации:


<form>
<input type="email" name="email" required>
<input type="password" name="password" minlength="6" required>
<button type="submit">Отправить</button>
</form>


5. Экранируем пользовательский ввод для защиты от XSS:


function escapeHtml(text) {
const element = document.createElement('div');
if (text) {
element.innerText = text;
element.textContent = text;
}
return element.innerHTML;
}

const userInput = '<script>alert("XSS")</script>';
const safeInput = escapeHtml(userInput);
console.log(safeInput);


💡 Применение этих методов поможет обезопасить вводимые данные и защитить приложение от популярных угроз.

🐸 Библиотека фронтендера

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌟 Оптимизация интерфейса: как сделать сайт более отзывчивым и плавным

В первой части мы обсудили, как ускорить загрузку: сократить запросы, оптимизировать файлы и стили. Теперь время улучшить отзывчивость и плавность.

В карточках рассказываем:

➡️ Как контролировать работу DOM и избежать лишних перерисовок

➡️ Почему важно правильно работать с событиями и изменениями

➡️ Как асинхронность помогает избежать блокировки интерфейса

➡️ Как добиться плавности без фреймворков и сложных решений

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

🔗 Полный текст — по ссылке

🐸 Библиотека фронтендера

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💔AI vs Developer: who wins?

Бигтех уже режет найм разработчиков. Вайб-кодинг повсюду. Джуны не нужны. Но так ли это на самом деле?

Мы хотим разобраться, как ИИ влияет на рынок труда в IT. В реальности, а не в головах CEO или HR. Поэтому приглашаем пройти опрос.

Результаты нашего исследования позволят выяснить, сколько разработчиков потеряли работу из-за ИИ? Какие навыки сейчас ценятся больше всего? Кто зарабатывает больше — те, кто использует ИИ или игнорирует?

👾 Расскажите свою историю, чтобы помочь комьюнити: https://clc.to/aFntFw
⚙️ Инструмент недели: как заменить ESLint и Prettier одним пакетом

Biome — это современный линтер и форматтер для JavaScript и TypeScript, родившийся из проекта Rome. После разделения команды часть разработчиков решила создать новый проект с открытой разработкой и фокусом на стабильности.

Зачем нужен:

🔵 Один инструмент вместо нескольких — Biome заменяет связку ESLint + Prettier, и при этом быстрее их обоих.

🔵 Максимальная скорость — благодаря Rust лентинг и форматирование выполняются мгновенно, даже на больших репозиториях.

🔵Официально выпускает и поддерживает свой плагин для VSCode. Линтинг и автофиксы работают прямо во время набора кода.

🔵 Умеет форматировать JSON, YAML и TOML, а не только JS/TS.

Как использовать:

1️⃣ Установите Biome в проект:


npm install --save-dev @biomejs/biome


2️⃣ Инициализируйте конфиг:

npx biome init


3️⃣ Проверьте и отформатируйте код:


npx biome format


4️⃣ Установите официальный плагин VSCode — подсказки и автоисправления будут работать прямо в редакторе.

5️⃣ Добавьте Biome в pre-commit хуки через Husky или lint-staged — чтобы код всегда проходил проверку до пуша.

Что важно знать:

— Biome не делает сборку кода — его задача: проверять, анализировать и форматировать исходники. Для сборки используйте Vite, Webpack или SWC.

— Проект развивается очень активно, с прозрачным роадмапом и постоянными обновлениями.

— Хорошо подходит для монорепозиториев и крупных проектов, где важна скорость проверок.

🔗 Анонс последней версии

🐸 Библиотека фронтендера

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM