В статье описывается, как NgRx помогает управлять состоянием приложения, работать с асинхронными операциями, улучшать производительность и упрощать масштабирование. Рассматриваются случаи, когда его внедрение наиболее оправдано.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается о нововведениях в Chrome 130: улучшенные возможности управления окнами "picture-in-picture", вложенные объявления в CSS для сложных случаев и настройка декораций для элементов в несколько строк.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Рабочая группа CSS выпустила новый модуль Values and Units Level 5: меньше кода, больше возможностей – звучит как мечта? Давайте вместе разберемся, как эти новшества изменят нашу работу и сделают веб красивее.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Небольшая подборка малоизвестных техник для HTML, CSS и JavaScript.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию
mergeDeep, которая рекурсивно объединяет два объекта. Если свойства обоих объектов являются объектами, их нужно объединить. При конфликте значений свойства второго объекта перезаписывают значения первого.Пример кода:
const obj1 = { name: "Alice", info: { age: 25 } };
const obj2 = { info: { age: 30, city: "NY" } };
const merged = mergeDeep(obj1, obj2);
console.log(merged); // { name: "Alice", info: { age: 30, city: "NY" } }Решение задачи
function mergeDeep(obj1, obj2) {
const result = { ...obj1 };
for (let key in obj2) {
if (obj2[key] && typeof obj2[key] === 'object') {
result[key] = mergeDeep(result[key], obj2[key]);
} else {
result[key] = obj2[key];
}
}
return result;
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Отказавшись от неэффективных практик программирования на JavaScript, вы всегда будете писать удобный и легко читаемый код. Это сэкономит вам и вашей команде много времени и обеспечит долгую жизнь вашим продуктам.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Подробное пошаговое руководство по созданию бессерверного приложения для того, чтобы повеселиться в хорошей компании.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Apache Superset — популярный инструмент для визуализации данных с открытым кодом. Но при его использовании можно столкнуться с ограничениями. В статье обсуждается, как с помощью шаблонов Handlebars и Jinja решать эти проблемы, включая интеграцию web-верстки в дашборды и обход ограничений системы.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Даны строковые представления двух целых чисел. Напишите функцию, которая возвращает строковое представление суммы этих чисел. Необходимо, чтобы решение работало с очень большими числами, которые не помещаются в стандартные типы данных.
Пример:
sumStrings('123', '456'); // => '579'
sumStrings('999999999999999999', '1'); // => '1000000000000000000'Решение задачи
function sumStrings(a, b) {
let carry = 0, result = '';
a = a.padStart(Math.max(a.length, b.length), '0');
b = b.padStart(Math.max(a.length, b.length), '0');
for (let i = a.length - 1; i >= 0; i--) {
let sum = parseInt(a[i]) + parseInt(b[i]) + carry;
carry = Math.floor(sum / 10);
result = (sum % 10) + result;
}
if (carry) result = carry + result;
return result.replace(/^0+/, '');
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Frontend-разработчик / верстальщик (стажер, junior)
Верстальщик / Junior Frontend-разработчик
Верстальщик HTML (Junior Frontend)
HTML верстальщик / Junior Frontend разработчик
Разработчик веб-приложений / фронтенд / верстальщик HTML (Junior)
Please open Telegram to view this post
VIEW IN TELEGRAM
Интересная анимация спирального текста. Сделана на CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Замыкания позволяют функции запоминать переменные из своей внешней области видимости даже после завершения выполнения внешней функции.
function makeCounter() {
let count = 0;
return function() {
return ++count;
};
}
const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2🗣️ Замыкания полезны для создания функций с внутренним состоянием, например, счётчиков или настройки приватных данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
HTML-верстальщик
Frontend разработчик - верстальщик (HTML CSS)
Frontend-разработчик / верстальщик (Тула)
Web программист Битрикс, Bitrix24
HTML-верстальщик / Junior Frontend-разработчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Узнайте о новейшем и одновременно старейшем стандарте React для доступа к данным формы, а также о том, как использовать его с TypeScript.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию
throttle, которая ограничивает количество вызовов переданной функции. Функция должна вызываться не чаще, чем один раз в указанный временной интервал. Это полезно для оптимизации производительности, например, при обработке событий скроллинга или ресайза окна.Пример кода:
log('Hello'); // Вызовется сразу
log('World'); // Игнорируется, т.к. прошло меньше 1000msРешение задачи
function throttle(func, delay) {
let lastCall = 0;
return function(...args) {
const now = new Date().getTime();
if (now - lastCall >= delay) {
lastCall = now;
return func(...args);
}
};
}
// Примеры использования
const log = throttle(console.log, 1000);
log('Hello'); // Вызовется сразу
log('World'); // Игнорируется, т.к. прошло меньше 1000ms
setTimeout(() => log('Again'), 1500); // Вызовется через 1.5 секунды
Please open Telegram to view this post
VIEW IN TELEGRAM
Интерактивный фон с эффектом при перемещении курсора. Сделан на CSS и JavaScript.
Открыть код...
Please open Telegram to view this post
VIEW IN TELEGRAM
Верстальщик Webflow и Tilda
Senior HTML-верстальщик
Графический дизайнер-верстальщик
Дизайнер-верстальщик (гибрид)
Senior Frontend Developer (Vue.JS)
Please open Telegram to view this post
VIEW IN TELEGRAM
Если ты хочешь стать настоящим мастером API, тебе нужно знать о паттерне BFF. В этой статье рассказываем, как создавать управляемую архитектуру с использованием BFF, избегая избыточной сложности и головной боли при поддержке.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
z-index управляет тем, как элементы накладываются друг на друга в трёхмерном пространстве веб-страницы. Элементы с большим значением z-index будут отображаться поверх тех, у которых значение меньше.
z-index: 1:.element1 {
position: relative;
z-index: 1;
}
.element2 {
position: relative;
z-index: 2;
}🗣 Важно помнить, что свойство z-index работает только с элементами, у которых установлено позиционирование (position: relative, absolute, fixed или sticky).
Please open Telegram to view this post
VIEW IN TELEGRAM