JSer.info #395 - Chrome 69 Betaがリリースされました。
- Chromium Blog: Chrome 69 Beta: CSS tricks, and more
- Audio/Video Updates in Chrome 69 | Web | Google Developers
- Deprecations and removals in Chrome 69 | Web | Google Developers
- Chrome Platform Status
CSS conic gradients、CSS scroll snap、CSS env()
functionのサポートなどCSSの変更が多く行われています。
またOffscreenCanvasや
ReportingObserver API、Keyboard Map APIのサポートなどが行われています。
メディア系のアップデートはAudio/Video Updates in Chrome 69 | Web | Google Developersにまとめられています。
React 16.4.2でSSR(サーバサイドレンダリング)時に発生するXSSが修正されています。
あまりないパターンだと思いますが、タグ文字列を含む任意の値を属性値として使っている場合に、SSR時にその属性値がタグとして出力されてしまう問題が修正されています。
let userProvidedData = '></div><script>alert("hi")</script>';
let props = {};
props[userProvidedData] = "hello";
let element = <div {...props} />;
let html = ReactDOMServer.renderToString(element);
// <div ></div><script>alert("hi")</script>
VueとPreactの同様の問題がReactチームによって報告されており、同時に修正がリリースされています。
This issue affected Preact (-compat & -render-to-string) as well. It's been patched in versions 3.18.1 / 3.7.1 of those libraries. Cheers to the React folks for the easy disclosure process. https://t.co/pN9nnMBDEC
— Jason Miller 🦊⚛ (@_developit) August 1, 2018
Fix for the same issue has been released in Vue 2.5.17. (only affects SSR). Thanks to the React team for coordinating this with us! https://t.co/WnKS79FjfW
— Vue.js (@vuejs) August 1, 2018
Preact 8.3.0がリリースされました。
React v16.3.0で追加された
getDerivedStateFromProps
とgetSnapshotBeforeUpdate
に対応しています。
またmoduleを.mjs
で出力するように、setState
の挙動をReactに近づけるように修正などが行われています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Node v10.8.0 (Current) | Node.js
nodejs.org/en/blog/release/v10.8.0/
Node v10.8.0リリース。
npm 6.2.0が同梱されるようになった。
React v16.4.2: Server-side vulnerability fix - React Blog
reactjs.org/blog/2018/08/01/react-v-16-4-2.html
React 16.4.2リリース。
SSRにおいてユーザー入力をコンポーネントの属性名に渡せるとXSSが発生する問題を修正。
minorごとに同様のpatchリリースが公開されている。
VueとPreactも同様の問題があり、合わせてsecurity fixがリリースされた。
Release Notes for Safari Technology Preview 62 | WebKit
webkit.org/blog/8384/release-notes-for-safari-technology-preview-62/
Safari Technology Preview 62リリース。
ITPデバッグモードの試験的追加、JSON.stringify
の修正、HLSストリームのキャッシュを無効化、CSS Gridのgap
プロパティにおけるcalc
が動くように修正など
TestCafe v0.21.0 Released | TestCafe
devexpress.github.io/testcafe/blog/testcafe-v0-21-0-released.html
TestCafe v0.21.0リリース。
テストページをHTTPSでアクセスできるように、スクリーンショットのパスに変数を使えるようになるなど
Dojo Version 3.0 | Dojo
dojo.io/blog/2018/07/27/2018-07-27-Dojo-version-3-release/
Dojo 3.0リリース。
パッケージが細かく別れていたものを@dojo/framework
に統合して利用できるように変更。マイグレーションスクリプトも公開されている。
ESLint v5.3.0 released - ESLint - Pluggable JavaScript linter
eslint.org/blog/2018/08/eslint-v5.3.0-released
ESLint 5.3.0リリース。
正規表現に関するルールが2つ、Async Functionに関するルールが2つ追加された。
- ESLint v5.3.0 - Qiita
- Promise のコンストラクタに渡した async function 内で throw しても rejected な Promise は作られない(常に fulfilled になる) - Humanity
Release 8.3.0 · developit/preact
github.com/developit/preact/releases/tag/8.3.0
Preact 8.3.0リリース。
getDerivedStateFromProps
とgetSnapshotBeforeUpdate
に対応。moduleを.mjs
で出力するように、setState
の挙動をReactに近づけるように修正など
Chromium Blog: Chrome 69 Beta: CSS tricks, and more
blog.chromium.org/2018/08/chrome-69-beta-av1-video-decoder-css.html
Chrome 69βリリース。 CSS conic gradients、CSS scroll snap、CSS env()
functionのサポート。
ReportingObserver API、Keyboard Map APIのサポートなど
- Audio/Video Updates in Chrome 69 | Web | Google Developers
- Deprecations and removals in Chrome 69 | Web | Google Developers
- Chrome Platform Status
アーティクル
Vue.js で XSS を作り込まないために気を付けること - SSTエンジニアブログ
techblog.securesky-tech.com/entry/2018/08/01/110000
Vue.jsでXSSが発生するポイントについての解説。
v-html
、href
のバインディグ、サーバサイドのテンプレートとCSRでのエスケープ漏れなどについて
JSDocで型チェックする - Qiita
qiita.com/shisama/items/016288d38165d542fffd
TypeScriptのallowJs
とcheckJs
を使ったJavaScriptでの型チェックについて。
JSDocで書いた型アノテーションや型定義ファイルを元に型チェックを行う方法について
The Cost Of JavaScript In 2018 – Addy Osmani – Medium
medium.com/@addyosmani/the-cost-of-javascript-in-2018-7d8950fbb5d4
JavaScriptのパフォーマンスコストについての記事。
ファイルサイズ、ロード時間、インタラクティブになるまでの時間、モバイルや低スペックマシンでのコスト。
またパフォーマンスを改善するパターンなどについて
I created the exact same app in React and Vue. Here are the differences.
VueとReactで同じTodoアプリを作って比較する記事。
処理ごとにそれぞれのやり方を比較して紹介している。
ちゃんと理解するCode Splitting - Qiita
qiita.com/seya/items/06b160adb7801ae9e66f
webpackにおけるCode Splittingの動作の解説。Code Splittingのメリットとデメリット。
Code SplittingするUIのパターンやDynamic Import、webpackPrefetch
オプション、VueやReactでの対応についてなど
スライド、動画関係
Storybook Tutorial
Storybookのチュートリアル。
React、Angular、Vueに対応したStirybookでのコンポーネント開発やChromaticを使ったビジュアルテストなどについて書かれている
サイト、サービス、ドキュメント
Frontend News
フロントエンドに関する1週間に1つのTipsについてを更新するサイト
ソフトウェア、ツール、ライブラリ関係
Fusion.js Documentation
UberのプラグインベースなBrowser/Node.jsウェブフレームワーク。コアにプラグインの仕組みとDIの仕組みを持ち、ReactやRedux、KoaなどUberがよく利用しているものをプラグインとして導入できる。
webpackやbabelなどをラップするcliがあり、create-react-appのように設定ファイルを触らずに開発ができる。
sasha240100/between.js: Lightweight JavaScript (ES6) tweening engine
github.com/sasha240100/between.js
AからBへ値の変化を扱えるライブラリ。
Tweening animationのような特定のイージングやループでの値の変化を扱う。