JSer.info #583 - React 18 RCがリリースされました。
React 18 RCではIEのサポートが終了しています。
ReactDOMのrender APIをDeprecatedとし、createRoot APIの利用が推奨となっています。
SSR APIのrenderToNodeStreamを非推奨化し、SuspenseをサポートしたrenderToPipeableStreamとrenderToReadableStreamが追加されています。
setStateなどのステート更新を自動的にバッジ処理するようにし、React 17の挙動を再現するためのflushSyncAPIが追加されています。
また、ReduxなどのReact外でステート管理するライブラリ向けにuseId/useSyncExternalStore/useInsertionEffect APIを追加。
その他には、開発時の<StrictMode>ではunmountとmountでの再マウントをテストするように挙動を変更されています。global.IS_REACT_ACT_ENVIRONMENTでテスト環境かどうかを判定するように変更されています。
playwright 1.20.0がリリースされました。
playwright 1.20.0では、スクリーンショットAPIにアニメーションの無効化、特定の箇所を隠すmaskオプションの追加されています。
expect().toMatchSnapshot()がanomymouse snapshotsのサポート、maxDiffPixelsとmaxDiffPixelRatioオプションの追加されています。
また、テストファイルのテストケースごとに並列化をするfullyParallelモードのオプションが追加されています。
New WebKit Features in Safari 15.4 | WebKitでは、Safari 15.4の変更点についてまとめられています。
かなり色々な機能追加がありますが、主に次のような変更が含まれています。
<dialog>要素のサポート- CSSの
:has()擬似クラス - Cascade Layers
- CSS Containmentのサポート。
- Viewport Unitsとして
lvhやsvhなどのサポート :focus-visible擬似クラスのサポートcalc()でのmath functionのサポート- 非標準な
-webkit-prefixをいくつかのCSSプロパティから削除 - BroadcastChannelのサポート
window.scrollのscroll-behaviorプロパティのサポートstructuredCloneAPIのサポート- File System Access APIのサポート
- ES2022の
at()メソッドとObject.hasOwn()メソッドのサポート - Stage 3のECMAScript Proposalである
findLast()メソッドのサポート Intlの実装を仕様に準拠するように更新- Web App Manifestの対応改善
navigationPreloadのサポートなどrequestVideoFrameCallback()のサポート- CSP Lv3のサポート改善
- XSS Auditorの削除
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
How to Upgrade to the React 18 Release Candidate – React Blog
reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html
React 18 RCリリース。
IEのサポートを終了。
ReactDOMのrender APIをDeprecatedとし、createRoot APIの利用を推奨するように。
SSR APIのrenderToNodeStreamを非推奨化し、SuspenseをサポートしたrenderToPipeableStreamとrenderToReadableStreamを追加。
setStateのステート更新を自動的にバッジ処理するようにし、オプトアウト用のflushSyncAPIを追加。
また、ReduxなどのReact外でステート管理するライブラリ向けにuserId/useSyncExternalStore/useInsertionEffect APIを追加。
開発時は<StrictMode>でunmountとmountでの再マウントをテストするように挙動を変更。
global.IS_REACT_ACT_ENVIRONMENTでテスト環境かどうかを設定できるように。
Node v17.7.0 (Current) | Node.js
nodejs.org/en/blog/release/v17.7.0/
Node.js v17.7.0リリース。
net.Socketとnet.ServerにnoDelay/keepAlive/keepAliveInitialDelayオプションの追加など
Release v8.0.0 · vueuse/vueuse
github.com/vueuse/vueuse/releases/tag/v8.0.0
vueuse v8.0.0リリース。
@vueuse/core/nuxtを削除し、代わりに@vueuse/nuxtを公開。
useTimeoutPoll/useDateFormat/useGamepad/useFileSystemAccess/useChangeCaseの追加など
Release v8.0.0 · breejs/bree
github.com/breejs/bree/releases/tag/v8.0.0
JobスケジューラーのBree 8.0.0リリース。
Release v1.20.0 · microsoft/playwright
github.com/microsoft/playwright/releases/tag/v1.20.0
playwright v1.20.0リリース。
スクリーンショットAPIにアニメーションの無効化、特定の箇所を隠すmaskオプションの追加。
expect().toMatchSnapshot()がanomymouse snapshotsのサポート、maxDiffPixelsとmaxDiffPixelRatioオプションの追加。
テストの設定にテストケースごとの並列化もするfullyParallelモードを追加など
New WebKit Features in Safari 15.4 | WebKit
webkit.org/blog/12445/new-webkit-features-in-safari-15-4/
Safari 15.4の変更点について。
<dialog>要素のサポート、CSSの:has()擬似クラス、Cascade Layers、CSS Containmentのサポート。
Viewport Unitsとしてlvhやsvhなどのサポート、:focus-visible擬似クラスのサポート、calc()でのmath functionのサポート。
非標準な-webkit- prefixをいくつかのCSSプロパティから削除。
BroadcastChannel、window.scrollのscroll-behaviorプロパティ、structuredClone、File System Access APIのサポート。
ES2022のat()メソッドとObject.hasOwn()メソッド、Stage 3のProposalであるfindLast()メソッドのサポートなど。
Intlの実装を仕様に準拠するように更新、Web App Manifestの対応改善、navigationPreloadのサポートなど。
requestVideoFrameCallback()のサポート、CSP Lv3のサポート改善、XSS Auditorの削除など
アーティクル
Learn PWA
PWAについて学べるチュートリアル。
Typed Ember is now the Ember TypeScript Core Team!
blog.emberjs.com/typed-ember-is-now-the-ember-type-script-core-team/
EmberのTypeScriptサポートをコアのサブチームとして進めるという話。
Ember CLIへの統合、Glintでのテンレプーと型チェック、Ember自体の型定義の改善、RFCのTypeScriptへの影響調査などを行うチーム
A Proposal For Type Syntax in JavaScript - TypeScript
devblogs.microsoft.com/typescript/a-proposal-for-type-syntax-in-javascript/
TypeScriptチームが、実行時には消去可能なコメントとしての型構文をECMAScriptのProposalとして提案するという話
JavaScript naming conflicts: How existing code can force proposed features to be renamed
2ality.com/2022/03/naming-conflicts.html
ECMAScriptの新しいProposalが既存のWebを壊すbreak the webがどのように起きるかについての解説記事。
ビルトインのprototoypeの変更、プロパティ名の競合、グローバル名の衝突、withによる衝突など
WebGPU — All of the cores, none of the canvas — surma.dev
WebGPUについて解説記事。
WebGLはOpenGLのラッパーであるが、WebGPUは独自の抽象化レイヤーを持っている、またWGSLというWebGPUのシェーディング言語について
ソフトウェア、ツール、ライブラリ関係
daisyUI — Tailwind CSS Components
UIコンポーネントの見た目を提供するTailwindプラグイン。
クラス名にコンポーネントの指定することでUIを定義し、カスタムはクラス名にTailwindのUtilityを指定することで行う
書籍関係
Micro State Management with React Hooks | Packt
www.packtpub.com/product/micro-state-management-with-react-hooks/9781801812375
Reactでのステート管理について書籍
