Вебня
4.7K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Доступна альфа-версия React 18

https://medium.com/stackanatomy/react-18-is-out-this-is-what-you-need-to-know-3a64f443daed

Новое:
- batch update состояний везде (не только в DOM)
- улучшения Strict Mode (Strict Effects + поддержка Offscreen API)
- новое Root API как замена React.render
- Concurrent Mode
- startTransition и useTransition для продвинутого управления приоритетом изменения состояния
- хук useDeferredValue для отложенных значений
- SuspenseList
- Suspense теперь является стабильным API
- потоковый Server-Side Rendering

Стабильная версия React 18 выйдет в конце 2021 - первой половине 2022.
Forwarded from Deno Fanatic
⚡️Deno появился на страницах MDN

Недавно Deno начал проходить большинство тестов WPT, и теперь можно смело обновлять browser-compat-data

https://deno.com/blog/deno-on-mdn
До ближайшей встречи #TC39 ещё неделя, а тем для обсуждения уже набралось на 12 часов (из восьми доступных), так что агенда достаточно плотная. В ней присутствуют как новые пропозалы, так и некоторые долгожданные для многих.
React render tracker

Новый инструмент React render tracker помогает обнаруживать в React приложениях непреднамеренные (лишние) ререндеры и отмонтирование компонент, что может быть причиной багов и проблем с производительностью. Проект в стадии MVP/proof of concept, но кое-что уже умеет. В будущем ождается возможность записывать логи рендеров на CI для анализа, получать отчеты для прикладывая в задачи/PR и технические документы, и др. (туду лист)
Forwarded from Wild Wild Web
🎉 Релиз TypeScript 4.4 🎉

Вы можете подумать, а чего я тут фейерверки устраиваю? А потому что они таки улучшили то, с чем я уже довольно долго воюю. Надеюсь, они и дальше будут улучшать эти моменты. А какие именно, давайте обсудим в комментариях позже 🙂

Вчера команда TypeScript выпустила новую версию компилятора, в которой есть несколько интересных мест. Давайте подчеркнём самые интересные, по моему мнению:

- Улучшили Control Flow Analysis. Теперь, так называемые type guards, можно выносить в отдельные переменные и TypeScript не потеряет эту информацию по пути. Например, вы хотите проверить что что-то строка const isString = typeof someParam === 'string' и дальше вы можете писать просто if(isString) {}, TypeScript такое скушает (раньше это было ошибкой компиляции). И таких примеров побольше, можете почитать у них в посте.

- Все catch блоки по умолчанию приводятся к unknown типу (за флагом strict). Unknown тип это более безопасный вариант неизвестного типа, по сравнению с any. Я об этих типах, как раз, недавно писал. С этим релизом, TypeScript будет ошибки в catch блоках неявно приводить к unknown. И вам, собственно, нужно будет проверить что ошибка это та ошибка, которую вы ожидаете или нет.

- С этим релизом добавилась возможность иметь "inlay hints". Я с таким часто встречаюсь при разработке на Rust и, если честно, меня это немного бесит. Но, знаю людей, которым это очень даже заходит. Речь идёт о том, что в IDE у вас будут добавляться имена параметров к вашим аргументам или выведенный тип возврата функции будет добавлен как "inlay hint" возле вашей функции и так далее. Насколько я знаю, такое есть давно в Intelliji и им активно пользуются. А в этом релизе они добавили это на уровне компилятора.

Все остальные моменты, по моему мнению, не такие уж и большие, но, безусловно, интересные и для кого-то могут оказаться нововведением "вовремя". Вы можете почитать более подробно об изменениях в этой версии в их блог посте.
👍1
React Native 0.65 и Hermes 0.8.1

17 августа вышел React Native 0.65, в котором JavaScript движок Hermes обновлён до версии 0.8.1. Новая версия движка поддерживаем процессоры Apple M1, добавляет улучшенную компрессию SMI и новый конкурентный сборщик мусора Hades, а также добавляет поддержку ECMAScript Internationalization API прямо в движок, что позволяет избавиться от локальных полифиллов.
Новое в Chrome 94 Beta

Главные изменения:
- WebCodecs
- WebGPU (под origin trail), о котором также появилась статья на web.dev; планируется, что в Chrome 97 (релиз намечен на 4 января 2022) новый API будет включен по умолчанию
- scheduler.postTask() — метод для управления приоритезацией (с режимами user-blocking, user-visible и background)

Остальные изменения можно посмотреть вот тут. Релиз ожидается 21 сентября.
⚡️ Первая новость с 85й встречи #TC39 (идёт прямо сейчас): метод .at() отправляется на stage 4
⚡️ Object.hasOwn() также отправляется на stage 4!
⚡️ Class static initiallization blocks тоже отправляется на stage 4!
⚡️ Пропозал Change Array by copy переходит на stage 2
⚡️ Pipeline operator отправляется на stage 2! 🎉
⚡️ String is USV String берёт stage 1
⚡️ Array.asyncFrom также берёт stage 1
⚡️ BigInt Math берёт stage 1
⚡️ Get Intrinsic переходит на stage 1
⚡️ Fixed shape objects переходит на stage 1
Сегодня вечером должен состояться релиз Safari 15 (о новых фичах можно почитать тут), а пока я напишу в следующих сообщениях о релизах браузеров, которые состоялись за время моего отсутствия.
Safari Technology Preview 131 (1 сентября)

Релиз включает улучшения Web Inspector, минорные исправления и улучшения CSS, начальную поддержку для COEP/COOP (добавление которых должно помочь в будущем включить поддержку SharedArrayBuffer и потоков в #WebAssembly!), исправления различных Web API, ускорение и улучшения обработки строки и регулярок, улучшения WebRTC, исправления медиа.

https://webkit.org/blog/11962/release-notes-for-safari-technology-preview-131/
Samsung Internet 16.0 Beta (1 сентября)

В этой версии улучшен UX поиска и добавлены новые возможности сохранения приватности пользователей. Новая версия основывается на Chromium 92, а это также означает, что добавилась поддержка position: sticky.

https://medium.com/samsung-internet-dev/introducing-the-samsung-internet-16-0-beta-9ec45f1412c2