JSer.info #506 - Moment.jsのウェブサイトにProject Statusが追加されています。
Moment.jsに新しい機能の追加などはしないメンテンスモードであることが書かれています。
互換性保ちつつ新しい機能や仕組みを入れるのは難しい状態であるため、別のライブラリの利用を推奨しています。
代替となるライブラリとしてLuxon、Day.js、js-joda、date-fnsについて紹介されています。
また、Intl
APIや現在策定中のTemporalについても書かれています。
このプロジェクトステータスの明示の発端は、Chrome Dev ToolsのLighthouseにmoment.js利用の警告を表示したことに起因しています。
If JavaScript libraries are proving costly, replace them with smaller alternatives.
— Addy Osmani (@addyosmani) September 12, 2020
Lighthouse in @ChromeDevTools now recommends smaller libraries that improve bundle size. pic.twitter.com/VFe8TFV9Y5
We're working on adding a statement to the website. Will likely merge tomorrow.https://t.co/jq0m56Kynf
— Matt Johnson-Pint (@mattjohnsonpint) September 13, 2020
今まで、Moment.jsのステータスは少し暗黙的でしたが、今回の件でLuxonなどの後継や代替ライブラリがあることを示して、Moment.jsを新しく使うことは非推奨であることを明示するようになりました。
関連
JavaScriptでCSSを変換/拡張するツールであるPostCSS 8.0.0がリリースされました。
Node.js 8以下のサポート終了、ES2015のコードをそのまま配布するように、postcss.vendor
APIの削除などが行われています。
また、PostCSS Plugin APIの変更、パーサの改善、Source Mapサポートの改善、TypeScriptのサポートなども行われています。
Plugin APIの変更とマイグレーションについてはついては、次の記事で解説されています。
また、PostCSS 8.0.0に対応したAutoprefixer 10.0もリリースされています。
Vue 3.0.0が正式にリリースされました。
コードベースをTypeScriptで書き直し、コアモジュールのパッケージ化が行われています。
新しくComposition API、Teleport、Fragmentsのサポートをしています。
実験的なAPIとして<script setup>
と<style vars>
をサポートしています。
2.xからの破壊的な変更としてVue.*
以下のグローバルAPIをインスタンスAPIに移動、Template Directiveの挙動の変更、ライフサイクルオプション名のリネーム、Filterの削除などが行われています。
削除されたAPIや変更されたAPIについては次のマイグレーションガイドにかかれています。
また、Vue 3.0.0時点ではIE 11のサポートは含まれていませんが、今後のminorアップデートでサポートしていくようです。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Moment.js | Docs
momentjs.com/docs/#/-project-status/
Moment.jsのプロジェクトステータスについてのドキュメントが追加された。
Moment.jsに新しい機能の追加などはしないメンテンスモードであるということについてや代替となるライブラリとしてLuxon、Day.js、date-fns、js-jodaの紹介をしている。
また、ECMA-402のIntl
オブジェクトとTemporal Proposalについて紹介している
- Luxon
- Day.js · 2kB JavaScript date utility library
- Manual | js-joda
- date-fns - modern JavaScript date utility library
Release 8.0 “President Ose” · postcss/postcss
github.com/postcss/postcss/releases/tag/8.0.0
PostCSS 8.0リリース。
Node.js 8以下のサポート終了、ES2015のコードをそのまま配布するように、postcss.vendor
APIの削除。
PostCSS Plugin APIの変更、パーサの改善、Source Mapサポートの改善、TypeScriptのサポートなど
- Release 10.0 “Alis volat propriis” · postcss/autoprefixer
- PostCSS 8.0: Plugin migration guide — Martian Chronicles, Evil Martians’ team blog
Release v3.0.0 One Piece · vuejs/vue-next
github.com/vuejs/vue-next/releases/tag/v3.0.0
Vue 3.0.0リリース。
コードベースをTypeScriptで書き直し、コアモジュールのパッケージ化。
Composition API、Teleport、Fragmentsのサポート。
実験的なAPIとして<script setup>
と<style vars>
のサポート。
破壊的な変更としてVue.*
以下のグローバルAPIをインスタンスAPIに移動、Template Directiveの挙動の変更、ライフサイクルオプション名のリネーム、Filterの削除など。
また、Vue 3.0.0時点ではIE 11のサポートは含まれていない。
- Evan You // Keynote: Live Free Online Announcement // Vuejs Global Online - YouTube
- Introduction | Vue.js
Announcing TypeScript 4.1 Beta | TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-4-1-beta/
TypeScript 4.1 Betaリリース。
Template Literal Types、Mapped TypesでKeyのRemappingをサポート、再帰的なConditional Typesのサポート。
インデックスアクセス時にundefined
となる可能性を考慮するnoUncheckedIndexedAccess
オプションの追加、baseUrl
なしでpaths
オプションを指定できるように。
破壊的な変更として、new Promise
におけるresolve
関数の引数がOptionalではなくなるなど
Kea 2.2: The TypeScript Release | Kea 2.2
React向けのステート管理ライブラリであるKea 2.2リリース。
TypeScriptのサポート
アーティクル
JSchallenger
JavaScriptのテストを通るように関数を実装するJavaScriptの練習問題集
How to Simplify SVG Code Using Basic Shapes | CSS-Tricks
css-tricks.com/how-to-simplify-svg-code-using-basic-shapes/
SVGを手書きするチュートリアル
Working with JavaScript Media Queries | CSS-Tricks
css-tricks.com/working-with-javascript-media-queries/
JavaScriptでのMediaQueryの利用方法について。
window.matchMedia
の使い方、resize
イベントを見る場合とのパフォーマンスの違いについて
Introducing Source Order Viewer in the Microsoft Edge DevTools - Microsoft Edge Blog
blogs.windows.com/msedgedev/2020/09/15/source-order-viewer-edge-devtools/
MSEdge/Chrome 85に実験的な機能として要素のソースコードにおける順番を表示する機能が追加された。
CSS Grid/FlexboxなどのCSSの機能で要素の順番を変更しやすくなったため、スクリーンリーダーなどの読み上げで問題が起きるケースを分かりやすくデバッグする機能。
WCAG C27の"DOMの順序を表示順序と一致させる"の実装をデバッグする目的の機能。
- Source Order Matters | Adrian Roselli
- Source Order Viewer in Canary | Adrian Roselli
- C27: Making the DOM order match the visual order | Techniques for WCAG 2.0
- C27: DOM の順序を表示順序と一致させる | WCAG 2.0 達成方法集
How to detect fullscreen mode using CSS – Amit Merchant – A blog on PHP, JavaScript and more
www.amitmerchant.com/how-to-detect-fullscreen-mode-using-css/
CSS Media Queryを使ってブラウザがフルスクリーンであるかを判定する方法について。
display-mode: fullscreen
をMedia Queryを使い判定することでフルスクリーンとなった場合の処理やCSSを実装できる
Managing several displays with the Multi-Screen Window Placement API
web.dev/multi-screen-window-placement/
Chrome 86でOrigin Trialとして実装されているMulti-Screen Window Placement APIについて。
複数のスクリーンかの判定、それぞれのスクリーン情報の取得、スクリーン変更の検知、フルスクリーン化するスクリーンの指定についてなど
Rewriting Facebook's "Recoil" React library from scratch in 100 lines
bennetthardwick.com/blog/recoil-js-clone-from-scratch-in-100-lines/
Recoil的なObserver Patternのステート管理を実装しながら仕組みを見ていく話
サイト、サービス、ドキュメント
flareact/flareact: Edge-rendered React framework built for Cloudflare Workers
Cloudflare WorkerのEdgeで動くReactフレームワーク
ソフトウェア、ツール、ライブラリ関係
nextauthjs/next-auth: Authentication for Next.js
github.com/nextauthjs/next-auth
Next.js向けのAuthentication library。
Auth0、Apple、Facebook、Googleなどいろいろなプロバイダーに対応している。
web-padawan/vanilla-colorful: A tiny color picker custom element for modern web apps
github.com/web-padawan/vanilla-colorful
依存がないカラーピッカーの実装ライブラリ
BGJar | Free svg background image generator for your websites
SVGでパターン背景を生成するジェネレーターツール
pmndrs/jotai: 👻 Primitive, flexible state management for React
RecoilインスパイアなReact向けのステート管理ライブラリ。
プリミティブな値をAtomでwrap、unwrapするAPIをもつ。
UtilsとしてAtomを使ったHigh Level APIを提供する