Событие beforeunload
Когда пользователь уходит со страницы, мы можем спросить его, точно ли он хочет уйти. За это отвечает обработка события beforeunload.
Событие происходит перед событием выгрузки страницы unload.
Есть страницы, на которых выполняется некоторая работа. Если эта работа не сохраняется, например, в localStorage, стоит защитить пользователя от фрустрации при возможной потере. В этом нам поможет обработка события beforeunload.
Обработка с помощью addEventListener:
Как оно выглядит в вашем браузере можно проверить с помощью демо ниже.
👉 @frontendInterview
Когда пользователь уходит со страницы, мы можем спросить его, точно ли он хочет уйти. За это отвечает обработка события beforeunload.
Событие происходит перед событием выгрузки страницы unload.
Есть страницы, на которых выполняется некоторая работа. Если эта работа не сохраняется, например, в localStorage, стоит защитить пользователя от фрустрации при возможной потере. В этом нам поможет обработка события beforeunload.
Обработка с помощью addEventListener:
window.addEventListener('beforeunload', function (event) {
// Отменяем поведение по умолчанию
event.preventDefault();
// Chrome требует наличия returnValue
event.returnValue = '';
})
При обработке этого события браузер покажет всплывающее окно, в котором нужно будет подтвердить своё намерение покинуть страницу.Как оно выглядит в вашем браузере можно проверить с помощью демо ниже.
👉 @frontendInterview
TypeScript быстро
В книге разбираются актуальные для каждого программиста задачи, объясняется синтаксис языка и описывается разработка нескольких приложений, в том числе нетривиальных — так вы сможете понять, как использовать TypeScript с популярными библиотеками и фреймворками.
👉 @frontendInterview
В книге разбираются актуальные для каждого программиста задачи, объясняется синтаксис языка и описывается разработка нескольких приложений, в том числе нетривиальных — так вы сможете понять, как использовать TypeScript с популярными библиотеками и фреймворками.
👉 @frontendInterview
String insert values
Вам дана строка и объект(или массив). Подставьте значения свойств объекта, названия которых присутствуют в строке и окружены фигурными скобками.
Примеры:
👉 @frontendInterview
Вам дана строка и объект(или массив). Подставьте значения свойств объекта, названия которых присутствуют в строке и окружены фигурными скобками.
Примеры:
var s = 'Hello {foo} - make me a {bar}';
var o = {
foo : 'Jack',
bar : 'sandwich'
};
format(s, o); // "Hello Jack - make me a sandwich"
var s = 'Hello {0} - make me a {1}';
var a = ['Jack', 'sandwich'];
format(s, a); // "Hello Jack - make me a sandwich"👉 @frontendInterview
Что такое гриды?
Гриды — это удобная технология для раскладки элементов на веб-страницах. В отличие от флексбоксов, одновременно работающих только с одним измерением, гриды дают возможность работать одновременно с двумя: горизонталью и вертикалью.
Принцип работы гридов чем-то похож на таблицы. Вместо работы только с рядами или только с колонками с помощью гридов можно работать с так называемыми грид-ячейками, позиционируя элементы по вертикали и горизонтали одновременно.
Основные термины:
- Грид-контейнер: родительский элемент, к которому применяется свойство display: grid.
- Грид-элемент: дочерний элемент, прямой потомок грид-контейнера. Подчиняется правилам раскладки гридов.
- Грид-линия: разделительная линия, формирующая структуру грида. Может быть как вертикальной (грид-линия колонки), так и горизонтальной (грид-линия ряда). Располагается по обе стороны от колонки или ряда.
- Грид-ячейка: пространство между соседними грид-линиями. Единица грид-сетки.
- Грид-полоса: пространство между двумя соседними грид-линиями. Может быть проще думать о грид-полосе как о ряде или колонке.
- Грид-область: область, ограниченная четырьмя грид-линиями. Может состоять из любого количества ячеек как по горизонтали, так и по вертикали.
👉 @frontendInterview
Гриды — это удобная технология для раскладки элементов на веб-страницах. В отличие от флексбоксов, одновременно работающих только с одним измерением, гриды дают возможность работать одновременно с двумя: горизонталью и вертикалью.
Принцип работы гридов чем-то похож на таблицы. Вместо работы только с рядами или только с колонками с помощью гридов можно работать с так называемыми грид-ячейками, позиционируя элементы по вертикали и горизонтали одновременно.
Основные термины:
- Грид-контейнер: родительский элемент, к которому применяется свойство display: grid.
- Грид-элемент: дочерний элемент, прямой потомок грид-контейнера. Подчиняется правилам раскладки гридов.
- Грид-линия: разделительная линия, формирующая структуру грида. Может быть как вертикальной (грид-линия колонки), так и горизонтальной (грид-линия ряда). Располагается по обе стороны от колонки или ряда.
- Грид-ячейка: пространство между соседними грид-линиями. Единица грид-сетки.
- Грид-полоса: пространство между двумя соседними грид-линиями. Может быть проще думать о грид-полосе как о ряде или колонке.
- Грид-область: область, ограниченная четырьмя грид-линиями. Может состоять из любого количества ячеек как по горизонтали, так и по вертикали.
👉 @frontendInterview
This media is not supported in your browser
VIEW IN TELEGRAM
fill
CSS-свойство fill, как и у одноимённого SVG-атрибута, используется для оформления цвета заливки SVG-элемента. По умолчанию — black.
Помимо стандартных форматов: именованного цвета (orange, rebeccapurple и др.), RGB(A), HEX и HSL(A), fill поддерживает формат ссылки на SVG-элемент, который будет как паттерн заполнять площадь элемента.
Пример:
Через CSS-свойство можно управлять цветом заливки SVG-элементов с помощью других возможностей CSS, например, при наведении курсора:
👉 @frontendInterview
CSS-свойство fill, как и у одноимённого SVG-атрибута, используется для оформления цвета заливки SVG-элемента. По умолчанию — black.
Помимо стандартных форматов: именованного цвета (orange, rebeccapurple и др.), RGB(A), HEX и HSL(A), fill поддерживает формат ссылки на SVG-элемент, который будет как паттерн заполнять площадь элемента.
Пример:
Через CSS-свойство можно управлять цветом заливки SVG-элементов с помощью других возможностей CSS, например, при наведении курсора:
.pacman {
fill: url(#pattern);
}
.pacman:hover {
fill: yellow;
}👉 @frontendInterview
Согласно аналитике Platforma, количество вакансий в IT увеличилось на 85%, а количество резюме — всего на 5%
В программировании нужны профессионалы, и новый формат образования «буткемп» (интенсивная подготовка) позволяет получить нужные знания, навыки и работу менее чем за полгода. Так ребята в Elbrus Coding Bootcamp обучают программированию за 3 месяца. У них уже более 750 выпускников, а 93% получили желанное трудоустройство за 3 месяца после обучения.
Спойлер: Легко не будет, но именно поэтому результат вас удивит.
Фокус обучения — практика: написание кода с 9 утра до 7 вечера 5 дней в неделю и реализации проектов, которые можно положить в портфолио. Плюс прокачка навыков, чтобы найти свою первую работу в IT. В конце обучения — Карьерная неделя, когда коуч помогает составить резюме и подготовиться к вопросам на интервью. Из приятных бонусов: обучение в группе с менторами-преподавателями, а не тренажер или записанные видео.
Если вы ждали особенного знака, чтобы вдохновиться на карьерные перемены — это он. Заходите на День открытых дверей и расспросите выпускников сами.
Или записывайтесь на бесплатный мастер-класс, чтобы не терять зря драгоценное время.
В программировании нужны профессионалы, и новый формат образования «буткемп» (интенсивная подготовка) позволяет получить нужные знания, навыки и работу менее чем за полгода. Так ребята в Elbrus Coding Bootcamp обучают программированию за 3 месяца. У них уже более 750 выпускников, а 93% получили желанное трудоустройство за 3 месяца после обучения.
Спойлер: Легко не будет, но именно поэтому результат вас удивит.
Фокус обучения — практика: написание кода с 9 утра до 7 вечера 5 дней в неделю и реализации проектов, которые можно положить в портфолио. Плюс прокачка навыков, чтобы найти свою первую работу в IT. В конце обучения — Карьерная неделя, когда коуч помогает составить резюме и подготовиться к вопросам на интервью. Из приятных бонусов: обучение в группе с менторами-преподавателями, а не тренажер или записанные видео.
Если вы ждали особенного знака, чтобы вдохновиться на карьерные перемены — это он. Заходите на День открытых дверей и расспросите выпускников сами.
Или записывайтесь на бесплатный мастер-класс, чтобы не терять зря драгоценное время.
React и альтернативы
В мире фронтенда много различных фреймворков для разработки одностраничных приложений. Большинство из них различаются подходами к разработке и инструментами, которыми они обладают. Но в основе всех этих фреймворков часто лежат одни и те же концепции.
Чтобы облегчить поиск изменений в приложении и работу с DOM браузера, некоторые фреймворки используют Virtual DOM. Virtual DOM – объект, который хранит структуру дерева компонентов и их текущее состояние.
React использует Virtual DOM для отслеживания изменений. После каждого изменения состояния React создаёт новый Virtual DOM и сравнивает его с предыдущим, чтобы узнать, какие части приложения изменились.
Vue использует Virtual DOM и специальные объекты Proxy, чтобы узнавать, когда изменились данные.
Angular не использует Virtual DOM, но модифицирует браузерный DOM API, чтобы иметь возможность следить за изменением данных. Таким образом, если пользователь взаимодействует со страницей, то Angular проверяет, не изменились ли какие-то данные приложения.
Svelte не использует Virtual DOM, но во время компиляции приложения формирует функции, которые следят за изменением данных и обновляют соответствующие DOM-элементы.
Концепции и различия подробнее рассмотрены в статье.
👉 @frontendInterview
В мире фронтенда много различных фреймворков для разработки одностраничных приложений. Большинство из них различаются подходами к разработке и инструментами, которыми они обладают. Но в основе всех этих фреймворков часто лежат одни и те же концепции.
Чтобы облегчить поиск изменений в приложении и работу с DOM браузера, некоторые фреймворки используют Virtual DOM. Virtual DOM – объект, который хранит структуру дерева компонентов и их текущее состояние.
React использует Virtual DOM для отслеживания изменений. После каждого изменения состояния React создаёт новый Virtual DOM и сравнивает его с предыдущим, чтобы узнать, какие части приложения изменились.
Vue использует Virtual DOM и специальные объекты Proxy, чтобы узнавать, когда изменились данные.
Angular не использует Virtual DOM, но модифицирует браузерный DOM API, чтобы иметь возможность следить за изменением данных. Таким образом, если пользователь взаимодействует со страницей, то Angular проверяет, не изменились ли какие-то данные приложения.
Svelte не использует Virtual DOM, но во время компиляции приложения формирует функции, которые следят за изменением данных и обновляют соответствующие DOM-элементы.
Концепции и различия подробнее рассмотрены в статье.
👉 @frontendInterview
GraphQL in Action
Язык запросов GraphQL упрощает взаимодействие с веб-серверами, позволяя выполнять эффективные запросы к API. В данной книге вы узнаете, как добавить эти преимущества в свои собственные API, предоставляя вашим клиентам возможность запрашивать именно то, что им нужно, с вашего сервера. Практическая и основанная на примерах книга, учит всему, что нужно для начала работы с GraphQL - от принципов проектирования и синтаксиса до оптимизации производительности.
👉 @frontendInterview
Язык запросов GraphQL упрощает взаимодействие с веб-серверами, позволяя выполнять эффективные запросы к API. В данной книге вы узнаете, как добавить эти преимущества в свои собственные API, предоставляя вашим клиентам возможность запрашивать именно то, что им нужно, с вашего сервера. Практическая и основанная на примерах книга, учит всему, что нужно для начала работы с GraphQL - от принципов проектирования и синтаксиса до оптимизации производительности.
👉 @frontendInterview