console.lealog();

@leader22のWeb系に関する勉強めもブログですのだ

WebRTC Meetup Tokyo #18 に行ってきたメモ #webrtcjp

WebRTC Meetup Tokyo #18 : ATND

台風な中、今回も海外スピーカーの多い回やった。

YouTubeでの配信もあったしアーカイブも公開されてるので、今からでも見れます!

WebRTC Meetup Tokyo #18 #webrtcjp - YouTube

続きを読む

MobX 5.0.0 について

出ました!

リリースブログもあるけど、どことなくポエミーなので、おとなしくChangeLog見たほうがいいかも・・w

mobx/CHANGELOG.md at master · mobxjs/mobx · GitHub

3行まとめ

  • v4移行してればやることない
  • `Proxy` ベースになったので、古い環境は要Polyfill
  • コードベースがES5からES6(ES2015)になったので、古い環境は(ry

v4移行についてはこちらもどうぞ。

MobX 4.0.0 について - console.lealog();

基本的にv4とv5のAPIにそこまで違いはなく、中身の実装が違うだけでパフォーマンス的にもそこまで差はないとのこと。

Proxyベースになって変わったこと

v5からは、内部的な実装が`Proxy`を使ったものに変わりました。`immer`で培ったノウハウですね。

Object

これまでのMobXは、宣言時点でマークされてないプロパティはObservableではなかったので、そのあたりの扱いがやや面倒だった。

const { observable, autorun } = mobx;

const obj = observable({ x: 1 });

autorun(() => {
  console.log(Object.keys(obj));
})

obj.y = 1; // <-

v4までは、`obj.y`が増えても検知できなくて、それ用のAPIを使ってた or `Map`でがんばってた。

しかしついにこれがv5では検知できるように!やった!

Array

const { observable } = mobx;

const arr = observable([1, 2, 3]);

Array.isArray(arr); // <-

v4までは、これが`false`だった。
なのでMobX界の外に出るときは、`.slice()`するなり`toJS()`したりしてた。

しかしこれがv5では`true`になります!!Proxy最高!

v4 -> v5移行

  • v4時点でDepricatedだったものを確実に消す
  • 上記のObjectとArrayのワークアラウンドがあれば消す
    • ただし、ObservableArrayに対して`.reverse()`と`.sort()`を呼んでるところは、`.slice()`したままに
  • `mobx-react`と一緒に使ってる場合は、そっちのバージョンも上げる

これだけ。

Jestとの組み合わせでバグがあったっぽいけど、すでに解消済み。

`toEqual` does not treat non-enumerable properties equally · Issue #6392 · facebook/jest · GitHub

`master`にはマージ済みなので、`23.1.1`のリリース待ち。

react-native-web と react-native-dom

`react-native-web`は去年くらいに話題になってたと思うけど、最近は`react-native-dom`なる別のやつが取り沙汰されてて、これらは何が違うの?

という人へ。

ずばりコレではあるものの、それでもわからんよって人のためへのメモ書きです。

例のごとくなんか間違ってたら教えてください。

続きを読む

Node学園 30時限目 に行ってきたメモ #tng30

Node学園 30時限目 - connpass

\祝30回/

リクルートの41F、いっつも2回目のエレベーター乗り換えあたりで迷子になりそうになる・・。

続きを読む

webrtc/adapterのコードを読んだメモ

GitHub - webrtc/adapter: Shim to insulate apps from spec changes and prefix differences. Latest adapter.js release:

  • 界隈で脊髄反射的に必要って言われてる気がする
  • 個人的にはお世話になったことはない
    • SkyWayのJS-SDKでもサンプルでも使ってないし(いちおうメンテナしてるけど)
    • なので余計にフロントエンドでいうjQueryと同じノリを感じる
  • なので、実際に何やってるのか読んで調べてみて、その確証を得たい

ちなみに、2018/04/23時点での`master`ブランチの内容。

続きを読む