Pull to refresh

Заметка о хуке useSyncExternalStore

Level of difficulty Hard
Reading time 7 min
Views 2.3K
Timeweb Cloud corporate blog Website development *JavaScript *ReactJS *TypeScript *
Review
Translation


Hello, world!


Представляю вашему вниманию перевод этой замечательной статьи.


useSyncExternalStore — это один из хуков, представленных в React 18. Наряду с хуком useInsertionEffect, он считается хуком для библиотек (library hook):


Следующие хуки предназначены для авторов библиотек для глубокой интеграции библиотек в модель React. Как правило, они не используются в коде приложения


В списке изменений React 18 речь также идет о библиотеках:


Добавлен useSyncExternalStore для помощи в интеграции с React библиотек внешних хранилищ (external store libraries)

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 1

React: интересная схема работы с формами

Level of difficulty Hard
Reading time 14 min
Views 2.1K
Timeweb Cloud corporate blog Website development *JavaScript *ReactJS *TypeScript *
Tutorial


Hello, world!


В этой статье я хочу рассказать о схеме (назовем ее так) работы с формами в React, которая на сегодняшний день кажется мне наиболее эффективной. Эта схема предполагает использование React Hook Form для обработки форм и Zod для валидации пользовательских данных. Применение данной схемы имеет несколько существенных преимуществ по сравнению с использованием других решений или реализацией необходимого функционала вручную. Главными преимуществами являются минимизация количества шаблонного кода и автоматическое выведение типов (type inference).


Для тех, кого интересует только код, вот ссылка на соответствующий репозиторий.


Интересно? Тогда прошу под кат.

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 3

Create react app умирает?

Level of difficulty Easy
Reading time 4 min
Views 4.5K
Website development *JavaScript *ReactJS *
Review

Зайдя на официальный сайт React я не сразу понял, что произошло.

Когда мы заходим на страницу документации React в раздел установки, мы можем увидеть различные предложенные варианты установки фреймворков React, а именно Next.js, Remix, Expo, Gatsby. Но при этом нет явного варианта установки самого React в чистом виде. Неужели React сдает позиции.

На самом деле это не так. Давайте разберемся, что же происходит в настоящее время и что собираются делать разработчики.

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 7

Facebook и Google выпустили Yarn, новый менеджер пакетов для JavaScript

Reading time 2 min
Views 41K
JavaScript *Programming *


Вчера вечером Facebook официально анонсировала новый пакетный менеджер для JavaScript под названием Yarn. На одной из стадии разработки к проекту подключились компании Google, Exponent и Tilde.

«Самый популярный менеджер пакетов JavaScript — это NPM. Он обеспечивает доступ более чем к 300 тысячам пакетов. Используют его более 5 миллионов разработчиков, а ежемесячно к нему обращаются для загрузки более 5 миллиардов раз.

Мы успешно использовали NPM в Facebook в течение многих лет, но так как объем нашего кода и число разработчиков выросло, мы столкнулись с проблемами последовательности, безопасности и производительности. После попытки решить все эти вопросы, мы пришли к намерению создать собственное решение, чтобы обеспечить надежность управления разработкой. Итогом этой работы стал Yarn — быстрая, надежная и безопасная альтернатива клиенту NPM», — говорится в официальном блоге Facebook о новинке.
Читать дальше →
Total votes 50: ↑42 and ↓8 +34
Comments 115

Linux Foundation запустил «перезагрузку» JavaScript-сообщества

Reading time 2 min
Views 16K
Open source *JavaScript *Node.JS *


Linux Foundation объявила о масштабном проекте по поддержке JS-сообщества. Новая организация JS Foundation (бывший jQuery Foundation) станет площадкой для сотрудничества и развития открытых проектов, связанных с использованием языка JavaScript. Целью проекта также является продвижение высококачественных стандартов разработки как серверных, так и клиентских JS-проектов.

Руководство нового организации также будет опираться на стандарты W3C, WHATWG, и ECMA TC39, которые приняты разработчиками и вендорами во всем мире.

Более того, JS Foundation запускает программу наставничества (Mentorship Program), которая как раз поможет достичь поставленных целей: она позволит укрепить сообщество и активизировать сотрудничество между JS-разработчиками.
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Comments 20

Завершён перевод «Современного учебника JavaScript»

Reading time 1 min
Views 32K
Website development *JavaScript *Programming *Professional literature *
Многие разработчики изучали JavaScript по известному учебнику Ильи Кантора — learn.javascript.ru. Однако до недавнего времени в нём была недостаточно современная информация: учебник развивался, но на английском языке. Он доступен по адресу javascript.info. Несколько месяцев мы занимались переводом этого учебника на русский язык, и сегодня я рад анонсировать перевод — он опубликован на learn.javascript.ru. Так что теперь самая современная версия учебника доступна и на английском, и на русском.

Теперь в учебнике используется современный стандарт языка ES 2019 и учтены некоторые stage 3 proposals (они помечены в тексте).

Вот некоторые хабрапользователи, которые принимали активное участие в переводе:


Разумеется, это только небольшая часть команды. Все, кто сделал вклад от 10 строк, перечислены прямо на сайте учебника.
Читать дальше →
Total votes 55: ↑55 and ↓0 +55
Comments 9

MSK VUE.JS meetup #3 в Mail.ru Group – 19 сентября

Reading time 2 min
Views 2.2K
VK corporate blog JavaScript *VueJS *


19 сентября Mail.ru Group проводит совместный с сообществом MSK VUE.JS митап, посвященный прогрессивному фреймворку Vue.js.

Вас ждут три технических доклада, розыгрыш билетов на осенние мероприятия и много полезного общения: спикеры поделятся опытом разработки, участники сообщества обсудят перспективы развития фреймворка. Описание докладов и ссылка на страницу события по катом. Регистрируйтесь сами и приглашайте коллег!
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 0

Mozilla усилила защиту пользователей Firefox от вредоносного кода

Reading time 2 min
Views 5.1K
Firefox Information Security *JavaScript *Browsers
imageФото: Doug Belshaw/Flickr

Mozilla расширила защиту пользователей браузера Firefox от атак с попытками внедрения вредоносного кода. Разработчики сосредоточились на удалении «потенциально опасных артефактов» в исходном коде Firefox.

Под артефактами подразумеваются встроенные скрипты и функции типа eval(). Mozilla рассчитывает улучшить защиту встроенных служебных страниц «about:» за счет удаления таких кусков кода.
Читать дальше →
Total votes 24: ↑20 and ↓4 +16
Comments 12

AST, автоматизации, оптимизации или как прошла PiterJS conf #1

Reading time 6 min
Views 1.8K
Website development *JavaScript *Programming *Conferences
image

Прошло 2 месяца после первой (но конечно же не последней) конференции PiterJS conf. Для активистов сообщества это был своего рода праздник, к которому долго готовишься и столько же отходишь. В этой статье хочу подвести итоги, анонсировать публикацию докладов, понастальгировать и чуть-чуть похвастаться.

Total votes 7: ↑7 and ↓0 +7
Comments 1

В Москве пройдет дружеское соревнование по JavaScript — International Team Coding Party

Reading time 2 min
Views 1.5K
VK corporate blog JavaScript *


Приглашаем на International Team Coding Party по JavaScript. Вечером 20 ноября в дружеской схватке сойдутся разработчики из Англии, Франции, Испании и России.

Участники соберутся в Лондоне, Мадриде, Париже и Москве. Московская команда собирается в офисе Mail.ru Group. Каждая команда (город) должна будет выполнить несколько заданий на JS, разной степени сложности: от Новичка до Эксперта. Задания выполняются на платформе Kodiri, поэтому для достижения лучших результатов рекомендуется ознакомиться с их интерфейсом и правилами.

В конце игры мы сравним результаты команд. Результат каждой команды рассчитывается как арифметическое среднее от результатов ее участников. Для каждого уровня сложности результаты подводятся независимо.
Читать дальше →
Total votes 21: ↑21 and ↓0 +21
Comments 5

Cloudflare: библиотеки JavaScript практически никогда не обновляются после установки

Reading time 2 min
Views 4.9K
Website development *JavaScript *Programming *jQuery *Research and forecasts in IT *


Cloudflare, американская компания, которая предоставляет услуги CDN и защиту от DDoS-атак, опубликовала пост на своём сайте с результатами анализа частоты обновления библиотек Javascript, используемых на сайтах. Для этого эксперты компании собрали данные из запросов сети доставки контента CDNJS.
Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Comments 8

В начале этого года Python сместил Java и стал вторым по популярности языком программирования среди разработчиков

Reading time 2 min
Views 27K
ITSumma corporate blog Python *Programming *Statistics in IT
Согласно отчету RedMonk за январь 2020 года, Python стал вторым по популярности языком программирования после Java Script. Ранее эту позицию на протяжении длительного времени уверенно удерживал Java, однако в начале года этот ЯП сместился на третью строчку рейтинга, который формируется на базе информации репозиториев GitHub. Если быть точными, то пара Java Script и Java удерживали топ-2 популярности языков программирования с момента начала формирования указанного рейтинга, то есть с 2012 года.



Популярность JS и Java и их топовые позиции в рейтинге ожидаемы. Java Script — основной язык веб-разработки уже долгие годы, когда как Java — стандарт в разработке под Android и в сфере корпоративных приложений.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Comments 35

Клиент Discord модифицировали для кражи аккаунтов

Reading time 2 min
Views 16K
Information Security *Development for Windows *
imageФото: www.bleepingcomputer.com

В клиенте Discord начало распространяться новое вредоносное ПО NitroHack. Оно позволяет красть учетные записи. Распространение этого ПО стало возможным благодаря изменениям файлов JavaScript, используемых клиентом.
Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 14

Barclays Bank уличили в использовании «Архива Интернета» в качестве CDN

Reading time 2 min
Views 5.3K
Information Security *JavaScript *Finance in IT
image

Barclays Bank использовал цифровой архив World Wide Web, основанный «Архивом Интернета», в качестве сети доставки содержимого.
Total votes 18: ↑16 and ↓2 +14
Comments 14

27 августа приглашаем на онлайн-митап Hot Frontend

Reading time 2 min
Views 1.3K
Information Security *Website development *VK API *Conferences Game design *
Всем привет! В июле мы провели в Краснодаре первый митап по Backend-технологиям – а теперь самое время обсудить Frontend. Приглашаем на онлайн-митап с разработчиками SimbirSoft. Как всегда, участие бесплатное, а за самые интересные вопросы спикеры подарят полезные подарки.

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Comments 0

24 октября приглашаем на онлайн-митап Hot Frontend в Казани

Reading time 1 min
Views 1.1K
Website development *CSS *JavaScript *Canvas *ReactJS *
Всем привет! Приглашаем разобрать «горячие» вопросы Frontend-разработки на новом онлайн-митапе. Эксперты представят несколько кейсов из практики и ответят на вопросы слушателей. За самые интересные вопросы мы, как всегда, вручим полезные подарки. Ждем вас 24 октября, участие бесплатное.

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Comments 0

Демка MONOSPACE, победитель Assembly ONLINE 2020, умещается в 1021 байт

Reading time 3 min
Views 4K
JavaScript *Computer Animation *Sound


Первое место в соревновании разработчиков Assembly ONLINE 2020 в категории «Online 1k intro» заняла демка MONOSPACE. Программа размером в 1021 байт после сжатия написана на JavaScript. Автор демки — креативный кодер и демосценер-оптимизатор Mathieu 'p01' Henri.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 2

Систему Google reCAPTCHA раскритиковали за приватность

Reading time 3 min
Views 4.1K
Website development *Google API *IT-companies


Разработчик и соучредитель компании Victory Medium, занимающейся веб-аналитикой, Зак Эдвардс обнаружил в конце октября 2020 года, что сервис Google reCAPTCHA (через gstatic.com) обновил свой javascript код. Теперь он выполняет дополнительный запрос на синхронизацию пользовательских файлов cookie с сайтом google.com.
Total votes 12: ↑11 and ↓1 +10
Comments 7