Прежде всего, хочу извиниться за долгое отсутствие новостей. Даже не было времени следить за всеми ними. Киев, спасибо за гостеприимство! ❤️
Итак, насчет реакта. 17 версию не выпустили. Зато выпустили версию 16.7.0-alpha, которая добавляет новую фичу под названием hooks. Хуки позволяют решить проблемы stateful компонентов, такие как wrapper hell в React DevTools, объемные и сложные для переиспользования компоненты, а также (даже не знаю как лучше перевести) confusing classes (в частности, например, работа с this). В альфу реакта добавлены встроенные хуки для работы с состоянием и эффектами из функциональных компонентов (теперь команда реакт предлагает называть их именно так, а не stateless components):
-
-
-
-
-
-
-
-
-
-
Также имеется возможность добавлять кастомные хуки.
Подробнее можно почитать по ссылкам выше или в записи выступлений Софи Алперт, Дэна Абрамова и Райна Флоренса на React Conf 2018.
https://www.youtube.com/watch?v=dpw9EHDh2bM
Итак, насчет реакта. 17 версию не выпустили. Зато выпустили версию 16.7.0-alpha, которая добавляет новую фичу под названием hooks. Хуки позволяют решить проблемы stateful компонентов, такие как wrapper hell в React DevTools, объемные и сложные для переиспользования компоненты, а также (даже не знаю как лучше перевести) confusing classes (в частности, например, работа с this). В альфу реакта добавлены встроенные хуки для работы с состоянием и эффектами из функциональных компонентов (теперь команда реакт предлагает называть их именно так, а не stateless components):
-
useState для инициализации и изменения состояния-
useEffect для добавления сайд-эффектов -
useContext для работы с контекстом-
useReducer как альтернативу useState-
useCallback для добавления мемоизированного коллбека -
useMemo для мемоизации операций-
useRef для работы с атрибутом ref-
useImperativeMethods для пробрасывания ref родительского компонента-
useMutationEffect для создания эффектов во время фазы мутации DOM-
useLayoutEffect для создания эффектов после все мутаций DOMТакже имеется возможность добавлять кастомные хуки.
Подробнее можно почитать по ссылкам выше или в записи выступлений Софи Алперт, Дэна Абрамова и Райна Флоренса на React Conf 2018.
https://www.youtube.com/watch?v=dpw9EHDh2bM
Также не так давно выпустили Angular 7, в котором увеличена производительность, обновлен Material UI, улучшена доступность, работа с веб-компонентами и добавлены некоторые другие улучшения.
Medium
Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more
The 7.0.0 release of Angular is here! This is a major release spanning the entire platform, including the core framework, Angular Material…
Еще одна новость с React Conf — Facebook работает над тем, чтобы сделать из “React Native” просто “Native”, чтобы другие фреймворки и библиотеки могли работать поверх нативной части.
Twitter
Mike Grabowski
Okay everyone, this is the React Native announcement you were all waiting for at the React Conf! We are working on making "React Native" just "Native" and enabling other frameworks to run on top of its native part. https://t.co/gFC92gQcKv
Некоторые новости с #TPAC
#Houdini Working Group достигла консенсуса по добавлению возможности анимации кастомных свойств декларативно и без JS
Mozilla показала свою рабочую имплементацию кастомизации скроллбаров.
Транспортный протокол QUIC от Google был предложен как потенциальное расширение спецификации WebRTC.
ARIA WG обсуждали улучшения Accessibility Object Model, про которую при этом почему-то почти ничего нет в черновике телеконференции. Также там нет и про коллаборацию с MathOnWeb CG, которые очень хотели обсудить с ARIA WG доступность математических формул в вебе.
#Houdini Working Group достигла консенсуса по добавлению возможности анимации кастомных свойств декларативно и без JS
Mozilla показала свою рабочую имплементацию кастомизации скроллбаров.
Транспортный протокол QUIC от Google был предложен как потенциальное расширение спецификации WebRTC.
ARIA WG обсуждали улучшения Accessibility Object Model, про которую при этом почему-то почти ничего нет в черновике телеконференции. Также там нет и про коллаборацию с MathOnWeb CG, которые очень хотели обсудить с ARIA WG доступность математических формул в вебе.
Несколько презентаций с #TPAC по #WebAssembly
- Host Bindings от Luke Wagner
- WebAssembly/ECMAScript Module integration от Daniel Ehrenberg
- Host Bindings от Luke Wagner
- WebAssembly/ECMAScript Module integration от Daniel Ehrenberg
Вебня
До следующей встречи TC39, которая в этот раз пройдет в Apple Park, еще целый месяц, но уже появляются некоторые подробности. Google собирается продвигать пропозал Intl.NumberFormat на stage 3. Там ожидаются весьма интересные фичи, такие как новые единицы…
Еще одна небольшая новость о грядущей ноябрьской встрече #TC39: Daniel Ehrenberg расскажет о статусе ECMA402
Google Docs
ECMA-402 (Intl) status udpate, November 2018
ECMA-402 (Intl) status update Daniel Ehrenberg, ECMA-402 interim editor Igalia, in partnership with Mozilla November 2018 TC39 meeting
Новости с #TPAC про #WebAssembly:
- Tail calls перешли на stage 3
- C/C++ API перешел на stage 1
- Bulk Memory Operations перешли на stage 2
- Threads перешли на stage 2
Все апдейты уже на https://github.com/WebAssembly/proposals
- Tail calls перешли на stage 3
- C/C++ API перешел на stage 1
- Bulk Memory Operations перешли на stage 2
- Threads перешли на stage 2
Все апдейты уже на https://github.com/WebAssembly/proposals
Помните такой пропозал как Typed Objects? Не все знают, но он все еще жив (хотя и помечен как inactive), и его актуальная версия находится вот тут. Текущий статус пропозала звучит так: “Postponed: waiting for WebAssembly requirements to become clearer.”
Статья #WebAssembly Threads ready to try in Chrome 70, в которой приводится пример как скомпилировать С++ код с pthreads в WebAssembly в WebWorker’ах с разделяемой памятью
https://developers.google.com/web/updates/2018/10/wasm-threads
https://developers.google.com/web/updates/2018/10/wasm-threads
web.dev
WebAssembly Threads ready to try in Chrome 70
WebAssembly thread support has shipped in Chrome 70 under an origin-trial.
Деструктуризация массивов имеет некоторые проблемы с производительностью из-за необходимости использовать Iteration protocol. Бенедикт Мойер написал об этом статью в свете React хуков.
https://docs.google.com/document/d/1hWb-lQW4NSG9yRpyyiAA_9Ktytd5lypLnVLhPX9vamE/edit
Потенциальное решение — спекулятивные оптимизации. Движок должен понять, что в каком-то конкретном случае
https://docs.google.com/document/d/1hWb-lQW4NSG9yRpyyiAA_9Ktytd5lypLnVLhPX9vamE/edit
Потенциальное решение — спекулятивные оптимизации. Движок должен понять, что в каком-то конкретном случае
Array.prototype[Symbol.iterator] никак не используется и пропустить лишние машинные операции.Google Docs
Array destructuring for multi-value returns (in light of React hooks)
Array.prototype.sort теперь стабильная во всех основных движках (теперь и ChakraCore, в которой до недавнего времени сортировка была стабильной только для массивов длиной не выше 512 элементов). На предстоящей встрече #TC39 с докладом об этом выступит Mathias Bynens. Вот слайдыhttps://docs.google.com/presentation/d/1Io53b2Bi3_N0_wguWoA9OKuPRpHch34EVbS1H8zISes/edit
Google Docs
Array.prototype.sort update @ TC39 November 2018
Array#sort stability
А вот соответствующее нормативное изменение в спецификацию https://github.com/tc39/ecma262/pull/1340
GitHub
[Normative] Make Array.prototype.sort stable by mathiasbynens · Pull Request #1340 · tc39/ecma262
All major JavaScript engines now have a stable Array.prototype.sort implementation. Let’s update the spec accordingly.
References:
https://v8.dev/blog/array-sort
microsoft/ChakraCore@c565b12
Modda...
References:
https://v8.dev/blog/array-sort
microsoft/ChakraCore@c565b12
Modda...
Публичные и приватные поля классов близки к добавлению в JavaScriptCore. Уже готовы патчи, реализующие необходимую логику парсера, байткод и тесты, а также будет отдельно патч с изменениями JIT/DFG (и одно, и другое уже есть в git репозитории).
Svelte завели репозиторий с RFC. Первый из них называется Reactive Assignments и добавляет реактивность в Svelte на уровне языка.
Еще одна тема, которая будет обсуждаться на ноябрьской встрече #TC39 — обновления по декораторам. На каринке слайд-спойлер про возможное ближайшее будущее.
Стандарт Unicode 12.0 перешел в фазу бета тестирования. Релиз планируется на 5 марта 2019. Совсем черновой вариант обзора можно почитать вот тут:
http://unicode.org/versions/beta-12.0.0.html
http://unicode.org/versions/beta-12.0.0.html
Спецификация CSS Selectors level 3 стала Candidade Recommendation.
Добавили новый комбинатор
Добавили новый комбинатор
~, новые псевдоклассы, substring matching attribute selectors, обновили граматику. Полный список изменений тут. Большинство этих фич уже есть во всех браузерах.❗️Все слайды со встречи #WebAssembly CG на #TPAC:❗️
- Tail Calls
- C/C++ API
- Threads and Weak Memory
- CSP
- Exceptions Handling
- ES Modules Integration
- Reference Types
- Host Bindings
- Garbage Collection
- Tail Calls
- C/C++ API
- Threads and Weak Memory
- CSP
- Exceptions Handling
- ES Modules Integration
- Reference Types
- Host Bindings
- Garbage Collection
Собрал немного информации по имплементации сборщика мусора #WebAssembly в браузерах
https://github.com/WebAssembly/gc/issues/44#issuecomment-436433194
https://github.com/WebAssembly/gc/issues/44#issuecomment-436433194