|
| 1 | +--- |
| 2 | +title: "2018-04-23のJS:Chrome 66、Redux 4.0、Svelte 2.0" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date : 2018-04-23T11:03:05.776Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- chrome |
| 9 | +- Redux |
| 10 | +- svelte |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +JSer.info #380 - Chrome 66がリリースされました。 |
| 15 | + |
| 16 | +- [New in Chrome 66 | Web | Google Developers](https://developers.google.com/web/updates/2018/04/nic66 "New in Chrome 66 | Web | Google Developers") |
| 17 | +- [Chrome Platform Status](https://www.chromestatus.com/features#milestone%3D66 "Chrome Platform Status") |
| 18 | +- [Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet](https://blog.chromium.org/2018/03/chrome-66-beta-css-typed-object-model.html "Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet") |
| 19 | + |
| 20 | +ECMAScriptの仕様(proposal)の実装として、 |
| 21 | +[JavaScriptがJSONのsuperset](https://github.com/tc39/proposal-json-superset)に、[trimStart/trimEnd](https://github.com/tc39/proposal-string-left-right-trim)のサポート、[catch節の引数省略](https://github.com/tc39/proposal-optional-catch-binding)に対応しています。 |
| 22 | + |
| 23 | +CSS Typed OM、CSS Paint API、AudioWorklet、[Mediaの`autoplay`のpolicy変更](https://developers.google.com/web/updates/2017/09/autoplay-policy-changes)、Fetch APIが`keepalive`オプションをサポートなどが行われいます。 |
| 24 | + |
| 25 | +---- |
| 26 | + |
| 27 | +Reduxのメジャーアップデートとして4.0.0がリリースされました。 |
| 28 | + |
| 29 | +- [Release v4.0.0 · reactjs/redux](https://github.com/reactjs/redux/releases/tag/v4.0.0) |
| 30 | + |
| 31 | +BREAKING CHANGEについては次のIssueにまとめられていますが、TypeScriptの型改善、元々使われることを意図してない`ActionTypes`をprivateに、bundleをCommonJSとES moduleで公開するようにするといった変更が行われています。 |
| 32 | + |
| 33 | +- [Redux 4 breaking changes · Issue #1342 · reactjs/redux](https://github.com/reactjs/redux/issues/1342) |
| 34 | + |
| 35 | +またReduxのReact bindingである[react-redux](https://github.com/reactjs/react-redux)はも[Redux 4.0.0に対応済](https://github.com/reactjs/react-redux/releases/tag/v5.0.7)ですが、Reactの新しいContext APIへの対応はまだ行われいません。 |
| 36 | + |
| 37 | +- [React 16 experiment: rewrite React-Redux to use new context API by markerikson · Pull Request #898 · reactjs/react-redux](https://github.com/reactjs/react-redux/pull/898) |
| 38 | + |
| 39 | +---- |
| 40 | + |
| 41 | +コンパイルしてライブラリに依存しないJavaScriptとして動作するフレームワークであるSvelte v2がリリースされました。 |
| 42 | + |
| 43 | +- [Svelte v2 is out!](https://svelte.technology/blog/version-2) |
| 44 | + |
| 45 | +JSXを参考にテンプレートの構文が変更され、マイグレーションツールとして[svelte-upgrade |
| 46 | +](https://github.com/sveltejs/svelte-upgrade)が公開されています。 |
| 47 | +`oncreate`と`ondestroy`のライフサイクルメソッドの追加に伴い、`component.observe`が削除されています。 |
| 48 | +またコンポーネントからの値のとり方が`component.get('foo')`のような`component.get().foo`のように変更されています。 |
| 49 | + |
| 50 | +以前は`"42"`のような数字の文字列を渡すと文字列として評価されていましたが、`{1}`のようにリテラルを使って数値として渡さないと行けないように修正されています。 |
| 51 | + |
| 52 | +``` |
| 53 | +// Before – pass number string and treat as numbers |
| 54 | +<Counter start='1'/> |
| 55 | +// After – should pass as numbers |
| 56 | +<Counter start={1}/> |
| 57 | +``` |
| 58 | + |
| 59 | +---- |
| 60 | + |
| 61 | +<h1 class="site-genre">ヘッドライン</h1> |
| 62 | + |
| 63 | +---- |
| 64 | + |
| 65 | +## New in Chrome 66 | Web | Google Developers |
| 66 | +[developers.google.com/web/updates/2018/04/nic66](https://developers.google.com/web/updates/2018/04/nic66 "New in Chrome 66 | Web | Google Developers") |
| 67 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">ReleaseNote</span></p> |
| 68 | + |
| 69 | +Chrome 66リリース。 |
| 70 | +JSがJSONのsupersetに、trimStart/trimEndのサポート、catch節の引数省略に対応。 |
| 71 | +CSS Typed OM、CSS Paint API、AudioWorklet、Mediaの`autoplay`のpolicy変更、Fetch APIが`keepalive`オプションをサポートなど |
| 72 | + |
| 73 | +- [Chrome Platform Status](https://www.chromestatus.com/features#milestone%3D66 "Chrome Platform Status") |
| 74 | +- [Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet](https://blog.chromium.org/2018/03/chrome-66-beta-css-typed-object-model.html "Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet") |
| 75 | + |
| 76 | +---- |
| 77 | + |
| 78 | +## Release v4.0.0 · reactjs/redux |
| 79 | +[github.com/reactjs/redux/releases/tag/v4.0.0](https://github.com/reactjs/redux/releases/tag/v4.0.0 "Release v4.0.0 · reactjs/redux") |
| 80 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">redux</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">TypeScript</span></p> |
| 81 | + |
| 82 | +Redux 4.0.0リリース。 |
| 83 | +TypeScriptの型改善、middlewareのdispatchが複数の引数に対応、パフォーマンス改善など |
| 84 | + |
| 85 | + |
| 86 | +---- |
| 87 | + |
| 88 | +## Release v4.6.0 · webpack/webpack |
| 89 | +[github.com/webpack/webpack/releases/tag/v4.6.0](https://github.com/webpack/webpack/releases/tag/v4.6.0 "Release v4.6.0 · webpack/webpack") |
| 90 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">webpack</span> <span class="jser-tag">ReleaseNote</span></p> |
| 91 | + |
| 92 | +webpack 4.6.0リリース。 |
| 93 | +`import`のコメントでpreloadとprefetchに対応、webpackのコアコードがTypeScriptの`allowJs`と`checkJs`で型チェックされるようになるなど |
| 94 | + |
| 95 | +- [add support for link preload/prefetch by sokra · Pull Request #7056 · webpack/webpack](https://github.com/webpack/webpack/pull/7056 "add support for link preload/prefetch by sokra · Pull Request #7056 · webpack/webpack") |
| 96 | +- [Add TypeScript type checking by mohsen1 · Pull Request #6862 · webpack/webpack](https://github.com/webpack/webpack/pull/6862 "Add TypeScript type checking by mohsen1 · Pull Request #6862 · webpack/webpack") |
| 97 | + |
| 98 | +---- |
| 99 | + |
| 100 | +## Svelte v2 is out! |
| 101 | +[svelte.technology/blog/version-2](https://svelte.technology/blog/version-2 "Svelte v2 is out!") |
| 102 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">ReleaseNote</span></p> |
| 103 | + |
| 104 | +Svelte 2リリース。 |
| 105 | +テンプレートで`{{}}`ではなく`{}`を採用、マイグレーションツールの公開、Computed propertiesの引数がオブジェクトに、`component.get`の返り値の変更。 |
| 106 | +また`oncreate`/`ondestroy`のライフサイクルを追加など |
| 107 | + |
| 108 | + |
| 109 | +---- |
| 110 | + |
| 111 | +## sonarwhal is v1 🎉 – sonarwhal – Medium |
| 112 | +[medium.com/sonarwhal/sonarwhal-is-v1-4262a2f887c9](https://medium.com/sonarwhal/sonarwhal-is-v1-4262a2f887c9 "sonarwhal is v1 🎉 – sonarwhal – Medium") |
| 113 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p> |
| 114 | + |
| 115 | +ウェブサイトのLintツールであるsonarwhal 1.0リリース。 |
| 116 | + |
| 117 | + |
| 118 | +---- |
| 119 | + |
| 120 | +## NativeScript 4.0 is out! 🎉 |
| 121 | +[www.nativescript.org/blog/nativescript-4.0-is-out](https://www.nativescript.org/blog/nativescript-4.0-is-out "NativeScript 4.0 is out! 🎉") |
| 122 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">ios</span> <span class="jser-tag">Android</span></p> |
| 123 | + |
| 124 | +NativeScript 4.0リリース |
| 125 | + |
| 126 | + |
| 127 | +---- |
| 128 | + |
| 129 | +## Underscore.js |
| 130 | +[underscorejs.org/#1.9.0](http://underscorejs.org/#1.9.0 "Underscore.js") |
| 131 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 132 | + |
| 133 | +underscore 1.9.0リリース。 |
| 134 | +`_.restArguments`、`_.chunk`、`_.isSymbol`などの追加。 |
| 135 | +`_.throttle`と`_.debounce`がcancelできるように、パフォーマンス改善など |
| 136 | + |
| 137 | + |
| 138 | +---- |
| 139 | +<h1 class="site-genre">アーティクル</h1> |
| 140 | + |
| 141 | +---- |
| 142 | + |
| 143 | +## Hello wasm-pack! – Mozilla Hacks – the Web developer blog |
| 144 | +[hacks.mozilla.org/2018/04/hello-wasm-pack/](https://hacks.mozilla.org/2018/04/hello-wasm-pack/ "Hello wasm-pack! – Mozilla Hacks – the Web developer blog") |
| 145 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">Rust</span> <span class="jser-tag">console</span> <span class="jser-tag">Tools</span></p> |
| 146 | + |
| 147 | +RustでWebAssembly向けの開発するツールキット |
| 148 | + |
| 149 | + |
| 150 | +---- |
| 151 | + |
| 152 | +## DasSur.ma – Layers and how to force them |
| 153 | +[dassur.ma/things/forcing-layers/](http://dassur.ma/things/forcing-layers/ "DasSur.ma – Layers and how to force them") |
| 154 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">performance</span> <span class="jser-tag">article</span></p> |
| 155 | + |
| 156 | +要素をレイヤー化する方法として`will-change: transform`がある。 |
| 157 | +しかし、実際にtransformしていないならば`will-change: opacity`や`backface-visibility: hidden`を使ったほうが良いという話。 |
| 158 | +`backface-visibility`の動作についての解説 |
| 159 | + |
| 160 | + |
| 161 | +---- |
| 162 | + |
| 163 | +## Dependencies Done Right | Yarn Blog |
| 164 | +[yarnpkg.com/blog/2018/04/18/dependencies-done-right/](https://yarnpkg.com/blog/2018/04/18/dependencies-done-right/ "Dependencies Done Right | Yarn Blog") |
| 165 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">yarn</span> <span class="jser-tag">article</span></p> |
| 166 | + |
| 167 | +pacakge.jsonの`dependencies`、`devDependencies`、`peerDependencies`の意味や使い分けについて。 |
| 168 | +バージョンの異なるものが混ざると`instanceof`の問題やファイルサイズが増える問題などについて |
| 169 | + |
| 170 | + |
| 171 | +---- |
| 172 | + |
| 173 | +## Node.js v10の変更点まとめ - 技術探し |
| 174 | +[blog.hiroppy.me/entry/node10](http://blog.hiroppy.me/entry/node10 "Node.js v10の変更点まとめ - 技術探し") |
| 175 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">node.js</span> <span class="jser-tag">article</span></p> |
| 176 | + |
| 177 | +Node.js 10で予定される変更点について |
| 178 | + |
| 179 | + |
| 180 | +---- |
| 181 | + |
| 182 | +## Traversing the DOM with JavaScript | Zell Liew |
| 183 | +[zellwk.com/blog/dom-traversals/](https://zellwk.com/blog/dom-traversals/ "Traversing the DOM with JavaScript | Zell Liew") |
| 184 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">DOM</span> <span class="jser-tag">article</span></p> |
| 185 | + |
| 186 | +DOMトラバーサルについての記事。 |
| 187 | +DOM APIを使ってどのように要素を取得、辿っていくかについて |
| 188 | + |
| 189 | + |
| 190 | +---- |
| 191 | +<h1 class="site-genre">スライド、動画関係</h1> |
| 192 | + |
| 193 | +---- |
| 194 | + |
| 195 | +## Progressive Web App Roadshow - YouTube - YouTube |
| 196 | +[www.youtube.com/playlist?list=PLNYkxOF6rcICnIOm4cfylT0-cEfytBtYt](https://www.youtube.com/playlist?list=PLNYkxOF6rcICnIOm4cfylT0-cEfytBtYt "Progressive Web App Roadshow - YouTube - YouTube") |
| 197 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">PWA</span> <span class="jser-tag">video</span> <span class="jser-tag">google</span> <span class="jser-tag">opinion</span></p> |
| 198 | + |
| 199 | +Progressive Web App(PWA)の概要や何を解決しようとしているものなのか、実装にはなにが必要なのかなどを解説してるシリーズ動画。 |
| 200 | + |
| 201 | + |
| 202 | +---- |
| 203 | +<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1> |
| 204 | + |
| 205 | +---- |
| 206 | + |
| 207 | +## aweary/react-copy-write: ✍️ Immutable state with a mutable API |
| 208 | +[github.com/aweary/react-copy-write](https://github.com/aweary/react-copy-write "aweary/react-copy-write: ✍️ Immutable state with a mutable API") |
| 209 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span></p> |
| 210 | + |
| 211 | +immerを使ってmutableな操作でstateを更新できるReact Contextを使ったステート管理ライブラリ。 |
| 212 | + |
| 213 | + |
| 214 | +---- |
| 215 | +<h1 class="site-genre">書籍関係</h1> |
| 216 | + |
| 217 | +---- |
| 218 | + |
| 219 | +## krasimir/react-in-patterns: A free book that talks about design patterns/techniques used while developing with React. |
| 220 | +[github.com/krasimir/react-in-patterns](https://github.com/krasimir/react-in-patterns "krasimir/react-in-patterns: A free book that talks about design patterns/techniques used while developing with React.") |
| 221 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">デザインパターン</span> <span class="jser-tag">book</span></p> |
| 222 | + |
| 223 | +Reactのパターンについての電子書籍 |
| 224 | + |
| 225 | + |
| 226 | +---- |
| 227 | + |
| 228 | +## React、Angular、Vue.js、React Nativeを使って学ぶ はじめてのフロントエンド開発 | 原 一浩, taisa, 小松 大輔, 永井 孝, 池内 孝啓, 新井 正貴, 橋本 安司, 日野 洋一郎 |本 | 通販 | Amazon |
| 229 | +[www.amazon.co.jp/dp/4774197068/](https://www.amazon.co.jp/dp/4774197068/ "React、Angular、Vue.js、React Nativeを使って学ぶ はじめてのフロントエンド開発 | 原 一浩, taisa, 小松 大輔, 永井 孝, 池内 孝啓, 新井 正貴, 橋本 安司, 日野 洋一郎 |本 | 通販 | Amazon") |
| 230 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">book</span></p> |
| 231 | + |
| 232 | +2018年5月10日発売。 |
| 233 | +各フレームワークの紹介とSlackライクなサンプルをベースに解説する書籍 |
| 234 | + |
| 235 | + |
| 236 | +---- |
| 237 | + |
| 238 | +## Rediscovering JavaScript: Master ES6, ES7, and ES8: Venkat Subramaniam: 9781680505467: Amazon.com: Books |
| 239 | +[www.amazon.com/dp/1680505467/](https://www.amazon.com/dp/1680505467/ "Rediscovering JavaScript: Master ES6, ES7, and ES8: Venkat Subramaniam: 9781680505467: Amazon.com: Books") |
| 240 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">book</span></p> |
| 241 | + |
| 242 | +2018年10月25日発売 ES2015以降についての扱う書籍 |
| 243 | + |
| 244 | + |
| 245 | +---- |
| 246 | + |
| 247 | +## Amazon.com: Node.js Microservices - Second Edition: Develop, deploy, and scale microservices with Node 8 eBook: Diogo Resende: Kindle Store |
| 248 | +[www.amazon.com/dp/B079SCMR6T/](https://www.amazon.com/dp/B079SCMR6T/ "Amazon.com: Node.js Microservices - Second Edition: Develop, deploy, and scale microservices with Node 8 eBook: Diogo Resende: Kindle Store") |
| 249 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">node.js</span> <span class="jser-tag">Microservices</span> <span class="jser-tag">book</span></p> |
| 250 | + |
| 251 | +2018年8月9日発売 |
| 252 | +Node.jsのマイクロサービスについての書籍 |
| 253 | + |
| 254 | + |
| 255 | +---- |
0 commit comments